As we continue our journey to modernise and open up the mainframe ecosystem, Open Mainframe Project’s Zowe 3.5 introduces updates that aim to make enterprise development and operations smoother, more transparent, and easier to contribute to.
Zowe 3.5 is available to download via zowe.org/download, through the relevant marketplaces for Explorer for VS Code, Explorer for IntelliJ and from npm for CLI.
Let’s take a look at what’s new — and what’s coming next. The full recording of the system demo and planning is available on Zoom.
🌐 Community Pulse
Zowe continues to grow at a stable pace. The CLI is nearing half a million downloads, and Explorer for VS Code now has approximately 238,000 active users. Explorer for IntelliJ shows steady, consistent growth.
On the contribution front, there are 17 active repositories with 730 pull requests merged this quarter, contributed by 45 individuals and 2 automated tooling bots. The contributor base remains stable.
The most active new repository is zowex, which provides an interface for accessing jobs and datasets using SSH rather than depending on z/OSMF, as well as the foundation for the Zowe MCP server enabling agentic AI tool use.
The TSC has also introduced a new compatibility matrix at zowe.org/compatibility, where you can find which versions of prerequisites — z/OS, Java, and Node — are needed for a specific Zowe version. Items marked as “automated testing by community” are validated at least weekly on community hardware, while “tested by community member” means that some community member ran the tests to validate the functionality.
🧪 Highlights from Zowe 3.5
API Mediation Layer (API ML)
The API ML team has delivered improvements focused on certificate flexibility, configuration ergonomics, and operational robustness.
Important Note — Validate your zowe.yaml properties for ones in incorrect format based on this table — https://docs.zowe.org/stable/whats-new/release-notes/v3_5_0#zowe-api-mediation-layer as it will prevent zowe from starting
Server and Client Certificate Alias Separation: Google Chrome is phasing out acceptance of public CA certificates usable for both server and client authentication. To address this, Zowe 3.5 introduces a new clientCertificateAlias property that allows you to designate separate certificates for inbound HTTPS traffic versus outbound calls — both drawn from the same keyring or keystore. If you use internal CAs, there is no change required. The change was introduced to support changes to public CAs which stops issuing certificates valid for both outbound and inboudn connection.
Multiple Network Interface Binding: When running on a system with multiple network stacks, you can now specify a comma-separated list of interfaces where the API ML should listen, rather than being limited to one or all.
Zowe Version on Homepage: The API ML homepage now displays the Zowe version alongside the API ML version, so there’s no need to dig through configuration when asked what version you’re running.
Apache 2.0 Licensing for Enablers: The Python and Node.js onboarding enablers now explicitly carry the Apache 2.0 open source licence, resolving license scanning issues.
⚙️ CLI
Secure Certificate Support: Users can now import their certificate into the operating system’s certificate manager (Windows and macOS) and reference it by its common name using the new certFile profile property. No more splitting certificates into separate key and cert files on disk. The legacy approach remains supported.
Upload to USS Enhancements: A new –make-dirs flag automatically creates missing target directories recursively before upload. The upload behaviour now mirrors Unix cp — targeting a directory auto-derives the filename from the local file. A –skip-directory-check flag allows bypassing directory existence validation.
Faster SSH Command Execution: A new –exec flag on zowe zos-ssh commands bypasses shell initialisation and profile loading, significantly reducing command execution time. Traditional shell mode remains the default for full backwards compatibility.
Environment Variables in Configuration: Team Config properties can now reference environment variables (e.g., $ZOS_USER). Values can be marked as secure so they are never logged or displayed. This is particularly useful for ephemeral environments like GitHub Codespaces where persistent credential stores are unavailable.
⚙️ SDK
REST Request Queue: Extenders can now throttle requests to REST services using a new queuing mechanism — customisable request pools, timeouts, and simultaneous connection limits. Opt-in and fully backwards compatible.
Change Password via z/OSMF: A new class in the z/OSMF SDK allows changing a user’s password through the z/OSMF REST endpoints.
Abort Long-Running Downloads: A new abortDownload predicate on download options allows extenders to cancel outstanding downloads of all members, matching datasets, or USS directories mid-operation.
🖥️ Explorer for VS Code
Multi-Member Search Patterns: You can now enter comma-separated member patterns when searching datasets (e.g., SHOW*,RENDER*). Results are additive — any member matching any pattern is displayed. This replaces the previous limitation of a single pattern per search.
Download from Tree View: Right-click context menus in both the MVS and USS trees now include Download options — download a single member, an entire dataset, all members of a dataset, a USS file, or a USS directory recursively. Uses the VS Code file picker for selecting the destination.
Submit Job with Polling: When submitting JCL, a new “Poll for job completion” button appears immediately in the submission notification. The polling interval is configurable, and a notification is shown when the job completes with a button to navigate directly to the job.
Filter PDS Members: Members of a partitioned dataset can now be filtered inline — by name pattern or by creation date (showing only members created on or after a specified date). A clear button resets the filter.
VSAM Dataset Favoriting: VSAM datasets now support the same favoriting functionality as sequential and partitioned datasets — the star icon, add/remove, and quick access from the favourites list. Works across all extender profiles (z/OSMF, FTP, and custom) without any code changes.
Hidden File Toggle: A new VS Code setting allows hiding Unix files that start with a dot in the USS tree, reducing visual clutter.
Accessibility Improvements: Table views now have improved behaviour and usability for screen readers. Release notes and changelogs are now localizable, tied to the VS Code locale setting.
🧩 CICS Extension
Tree Refresh Preserves State: Refreshing the CICS tree no longer resets your view to the root — it updates in place, matching Zowe Explorer’s behaviour.
Predictable Sorting: Resources are now sorted in a stable, predictable order rather than having the last-used item jump to the top.
Hyperlinked Attributes: The Resource Inspector now makes attributes like JVM profile paths, work directories, and error log paths clickable — clicking navigates directly to the corresponding dataset or USS file in Zowe Explorer, reducing context switching.
Compare Resources: Right-click on any resource and choose “Compare To” to compare it against the same resource type in a different region or CICSplex. Only differing attributes are shown by default, with an option to reveal shared attributes. Multi-select comparison is also supported.
Improved Error Notifications: Error messages are now clear and concise, with direct links to relevant documentation for the specific API response codes encountered.
Certificate Authentication: Client certificate authentication is now supported for CICS connections.
🔧 Installation & Configuration
Config Manager Validation: The Config Manager now provides better error messages when YAML properties are nested incorrectly — for example, identifying that zowe.job.extensionDirectory should be zowe.extensionDirectory. This catches common indentation and nesting errors early.
“Bring Your Own Certificate” by Default: The embedded certificate setup scenarios have been removed from the default zowe.yaml. The documentation now guides users to bring their own certificates and keyring as the primary recommendation, avoiding the limitations of the automated certificate scripts.
Unified Logging via the Launcher: All Zowe components — ZSS, App Server, and API ML — now produce consistently named and structured log files. Log names include the high-availability instance ID (where applicable), component name, and timestamp. The launcher automatically limits each component to 5 active logs to prevent disk exhaustion.
Pre-Flight Checks: A new pre-flight check framework runs before Zowe components start, validating:
- Certificate and keyring configuration — checks for missing EKU, inaccessible keyrings, and misconfigured certificate properties
- AT-TLS setup — detects definitively incorrect AT-TLS configurations (runs as a warning by default, not blocking)
- Component existence — verifies that components referenced in zowe.yaml actually exist on the runtime system
- Java and Node version compatibility — validates that the installed runtimes are supported
Pre-flight checks currently issue warnings rather than blocking startup. When certificates are correctly configured, the checks are silent — they only surface when something is wrong.
🔍 Looking Ahead (Plans for Zowe 3.6)
The community is already hard at work on the next release. Here is a sneak peek at the roadmap for Zowe 3.6:
Zowe Remote SSH (ZoweX) — GA Target: This is the primary focus across multiple squads. The goal is to bring zowex to General Availability in 3.6, fully integrated into Zowe Explorer. This will allow users to choose between z/OSMF and SSH for mainframe communication.
Node.js Modernisation: With Node 20 reaching end-of-life, multiple squads are migrating to Node 22 and Node 24. The VS Code extension’s engine floor will be raised to 1.101.0. The System Squad is upgrading test infrastructure on Marist and migrating workflows.
Expanded Pre-Flight Checks: New checks are planned for memory validation and ESM permission verification (a “RACF pre-flight”). The Config Manager will gain the ability to edit YAML while preserving comments, enabling simpler zwe config set-style scripting, and will run natively on Linux for container workflows.
Security Hardening: The API ML squad is proposing to deprecate or remove less secure configuration options, such as running on HTTP without AT-TLS and TLS. The Web UI squad is adding PKCS12 support and building an AT-TLS rule file editor with a companion zwe CLI validator that checks whether your configuration meets Zowe’s requirements.
CLI & Explorer Improvements: Support for the X-IBM-Request-Account-Num header in both CLI and Explorer for dataset requests. Secure credential storage from the operating system’s certificate manager will be available in Explorer, matching the CLI feature introduced in 3.5. Users will be able to change their z/OS password directly from the CLI and Explorer. The CICS extension will add a tabular list view of resources and navigation from resource inspectors to datasets.
Web UI Desktop: A new shortcuts and folder system will capture app-to-app operations — open the editor to a specific file, launch the terminal to a specific session — as clickable desktop shortcuts. An overhaul of app-to-app communication will expand what’s possible between Zowe desktop apps.
Compiler Migration: The z/OS squad is migrating from IBM’s proprietary compilers to OpenClang, ensuring long-term maintainability as legacy compilers are phased out.
OpenTelemetry & Java: OpenTelemetry support in the API ML will continue to mature. Java 21 full compatibility is targeted for 3.6, with early preparation for Java 25.
Explorer for IntelliJ: The Kotlin SDK and IntelliJ plugin are undergoing an architectural refresh, with API ML authentication integration.
🧭 Final Thoughts
Zowe 3.5 represents a significant step forward in operational clarity and security posture. The pre-flight check framework, unified logging, and certificate management simplifications directly address the most common pain points reported by users — catching configuration problems early, making logs readable, and reducing the complexity of certificate setup. On the client side, features like context menu downloads, job polling at submit time, and multi-member search patterns close long-standing feature gaps that users have been asking for.
Perhaps most notably, 3.5 marks the moment where zowex — the SSH-based transport and MCP foundation — transitions from an experiment. The ground is being laid now for a future where Zowe is consumable not just by humans in VS Code and terminals, but by AI agents through well-defined tool interfaces.
If you enjoyed this blog checkout more Zowe blogs here. Or, ask a question and join the conversation on the Open Mainframe Project Slack Channel #Zowe-help or #Zowe-onboarding. If this is your first time using the OMP slack channel register here.
Original blog post published here.