CICS

CICS

CICS

The world's leading application server software for IBM Z

 View Only

Your Journey to Modern CICS Development: Getting Started with VS Code

By Akanksha Modi posted 05/26/26 02:02 AM

  

Your Journey to Modern CICS Development: Getting Started with VS Code

Transform your CICS development experience with Visual Studio Code - A practical guide for mainframe developers


Why This Matters

If you’re a CICS developer who’s been working with traditional mainframe tools, you might be wondering: “Why should I switch to VS Code?” The answer is simple - you don’t have to choose between the power of the mainframe and the convenience of modern development tools. With VS Code and extensions from IBM and Zowe, you get the best of both worlds.

Imagine editing your COBOL programs with intelligent code completion, syntax highlighting, and real-time error checking - all while your code stays securely on the mainframe. Picture managing CICS resources, submitting jobs, and viewing outputs without leaving your editor. That’s exactly what we’re going to set up today.

In this guide, I’ll walk you through everything you need to transform your development workflow. We’ll install three powerful extensions, configure your mainframe connections, and by the end, you’ll be ready to develop CICS applications like never before.


Before We Begin: What You’ll Need

Let’s make sure you have everything ready before we dive in. Don’t worry - the requirements are straightforward.

On Your Local Machine

First, you’ll need Visual Studio Code installed. If you haven’t already, head over to code.visualstudio.com and download the latest version. VS Code runs on Windows, macOS, and Linux, so you’re covered regardless of your operating system. Make sure you’re running version 1.70.0 or higher.

VS Code download page

VS Code download page

Once installed, open VS Code and check your version by going to HelpAbout. You should see something like “Version 1.85.0” or higher.

VS Code About dialog showing version

VS Code About dialog showing version

On the Mainframe Side

You’ll need access to a z/OS system and a CICS region.
This means:
- Valid mainframe credentials (your username and password)
- Network connectivity to your z/OS system
-
Connection method: Either z/OSMF (z/OS Management Facility) or RSE API (Remote System Explorer) configured on your mainframe, this is crucial as it’s what Zowe uses to communicate with z/OS

About connection methods:

-  z/OSMF (recommended for this guide): A modern REST API-based interface that Zowe uses to communicate with z/OS. This guide focuses on z/OSMF-based connections.

- RSE API: An alternative connection method that’s considered strategic for developers. The extensions also support RSE-based connections.

If you’re not sure which connection method is available, check with your system administrator. They’ll confirm what’s configured and provide you with the connection details you’ll need later. This guide will walk you through setting up a z/OSMF connection, but the workflow is similar for RSE.


The Three Extensions That Will Change Your Workflow

Now comes the exciting part - installing the extensions that will supercharge your CICS development. We’re going to install three extensions, each bringing unique capabilities to your IDE.

Why install them separately? You might notice that IBM Z Open Editor has Zowe Explorer as a dependency, so technically you could install just Z Open Editor and get Zowe automatically. However, we’re installing them one by one so you understand what each extension does and why you need it. This clarity is especially important for newcomers who need to know which tool does what!

Extension #1: Zowe Explorer - Your Gateway to the Mainframe

Zowe Explorer is the foundation of your new development environment. Think of it as a bridge between VS Code and your mainframe - it lets you browse data sets, work with USS files, and manage jobs, all from within your editor.

What does Zowe Explorer do? This extension is your mainframe file system browser - like Windows Explorer or macOS Finder, but for z/OS. It handles all your file management and job submission needs.

Let’s install it:

1.        Click on the Extensions icon in VS Code’s Activity Bar (press Ctrl+Shift+X on Windows/Linux, Cmd+Shift+X on Mac)

VS Code with Extensions icon highlighted in Activity Bar

VS Code with Extensions icon highlighted in Activity Bar

  1. In the search box at the top, type “Zowe Explorer”
  2. You’ll see the Zowe Explorer extension published by Zowe. Click the blue Install button.

Extensions marketplace showing Zowe Explorer with Install button

Extensions marketplace showing Zowe Explorer with Install button

4.        Wait a few seconds for the installation to complete. The Install button will change to show a gear icon and “Installed”.

Zowe Explorer installed successfully

Zowe Explorer installed successfully

Once installed, you’ll notice a new icon appears in your Activity Bar - that’s Zowe Explorer! Click on it to open the Zowe Explorer view.

Zowe Explorer icon in Activity Bar

Zowe Explorer icon in Activity Bar

What can you do with Zowe Explorer?

  • Browse and edit z/OS data sets without leaving VS Code
  • Access USS (Unix System Services) files
  • Submit JCL jobs and view their output
  • Create and manage multiple connection profiles for different systems
  • Search across data sets to find specific code

Extension #2: IBM Z Open Editor - Making Mainframe Code Beautiful

If you’ve ever wished for syntax highlighting, code completion, and modern editing features for COBOL, PL/I, or JCL, IBM Z Open Editor is your answer. This extension transforms VS Code into a powerful IDE for mainframe languages.

Let’s install it:

  1. With the Extensions view still open (Ctrl+Shift+X / Cmd+Shift+X), search for “IBM Z Open Editor”
  2. Find the extension published by IBM and click Install

Extensions marketplace showing IBM Z Open Editor

Extensions marketplace showing IBM Z Open Editor

3.        Wait for the installation to complete

IBM Z Open Editor installed successfully

IBM Z Open Editor installed successfully

What makes IBM Z Open Editor special?

Once you open a COBOL or JCL file, you’ll immediately notice the difference:

  • Syntax Highlighting: Your code comes alive with colors that make it easier to read and understand 
  • Code Completion: Start typing and get intelligent suggestions for keywords, variables, and CICS commands 
  • Outline View: See your program’s structure at a glance - all procedures, sections, and data divisions organized in a tree view 
  • Real-time Syntax Checking: Catch typos and syntax errors as you type, before you even compile 
  • Code Snippets: Quickly insert common code patterns with just a few keystrokes

COBOL code with beautiful syntax highlighting

COBOL code with beautiful syntax highlighting


Extension #3: Zowe Explorer for IBM CICS Transaction Server- The CICS Specialist

Now for the star of the show - the extension that brings CICS-specific functionality right into VS Code. This is what makes managing CICS resources as easy as clicking a button.

Let’s install it:

  1. In the Extensions view, search for “Zowe Explorer for IBM CICS Transaction Server”
  2. Click Install on the extension published by Zowe

Extensions marketplace showing Zowe Explorer for IBM CICS

Extensions marketplace showing Zowe Explorer for IBM CICS

3.        Wait for installation to complete

Zowe Explorer for IBM CICS installed successfully

Zowe Explorer for IBM CICS installed successfully

Now, go back to your Zowe Explorer view (click the Zowe icon in the Activity Bar). You should see a new section called CICS alongside DATA SETS, USS, and JOBS.

Zowe Explorer showing all four sections: DATA SETS, USS, JOBS, and CICS

Zowe Explorer showing all four sections: DATA SETS, USS, JOBS, and CICS

What can you do with the CICS extension?

  • Browse all programs in your CICS region 
  • View and manage CICS transactions 
  • Access CICS local files and libraries 
  • Enable or disable CICS resources with a right-click 
  • Perform NEWCOPY operations to refresh programs in memory 
  • View detailed resource definitions

This extension is what makes CICS development in VS Code truly powerful. No more switching between different tools - everything you need is right here.


Connecting to Your Mainframe: Setting Up Profiles

With all three extensions installed, it’s time to connect to your mainframe. This is where the magic happens - we’re going to create connection profiles using Zowe’s team configuration file.

Understanding Zowe Team Configuration

Zowe V2 uses a JSON-based configuration file called zowe.config.json to store your connection profiles. This approach offers several benefits: 

  • Team Collaboration: Share configurations across your team 
  • Version Control: Track configuration changes in Git 
  • Flexibility: Easily edit and manage multiple profiles 
  • Security: Store credentials securely using VS Code’s credential manager

Creating Your Configuration File

Here’s how to set it up:

  1. Click on the Zowe Explorer icon in the Activity Bar to open the Zowe Explorer view
  2. Look at the DATA SETS section and click the + icon next to it

Zowe Explorer with + icon highlighted

Zowe Explorer with + icon highlighted

3.        Select “Create a New Team Configuration File” from the menu

Create team configuration menu

Create team configuration menu

4.        Choose where to create the config file:

o   Global Configuration: Stored in your home directory, available across all projects

o   Project Configuration: Stored in your current workspace, specific to this project

Configuration location choice

Configuration location choice

5.        A zowe.config.json file will be created and opened in the editor

zowe.config.json file created

zowe.config.json file created

Configuring Your z/OSMF Connection

Edit the zowe.config.json file with your mainframe connection details. Here’s a sample configuration:

{
  "$schema": "./zowe.schema.json",
  "profiles": {
    "zosmf": {
      "type": "zosmf",
      "properties": {
        "host": "your-mainframe-host.com",
        "port": 10443,
        "rejectUnauthorized": false
      },
      "secure": ["user", "password"]
    }
  },
  "defaults": {
    "zosmf": "zosmf"
  },
  "autoStore": true
}

Key fields to update:

·      host: Replace with your z/OSMF server address (e.g., "mainframe.example.com")

·      port: Usually 10443 for z/OSMF (confirm with your system administrator)

·      rejectUnauthorized: Set to false for self-signed certificates (dev environments), true for production

Save the file (Ctrl+S / Cmd+S) after making your changes.

Configuration file editing

Configuration file editing

Adding Your Credentials

When you first try to use the profile, Zowe will prompt you to enter your username and password. These credentials are stored securely in VS Code’s credential manager, not in the JSON file.

Credentials prompt - Confirmation

Credentials prompt - Password

Your profile is now configured! You’ll see it appear in the DATA SETS section.

Profile active in Zowe Explorer

Profile active in Zowe Explorer

Testing Your Connection

Let’s make sure everything works:

  1. Expand your newly created profile in the DATA SETS section (click the arrow next to it)
  2. Click on “Search Data Sets” or the magnifying glass icon

Search data sets option

Search data sets option

3.        Enter a data set pattern to search for. Try something like:

o   YOUR.USERID.* (replace YOUR.USERID with your actual user ID)

o   SYS1.PROCLIB (a common system data set)

4.        Press Enter

If your connection is working, you’ll see matching data sets appear in the tree view. Congratulations - you’re now connected to the mainframe from VS Code!

Search results showing data sets

Search results showing data sets


Adding Your CICS Profile

Now that we have a working z/OSMF connection, let’s add CICS-specific configuration to your zowe.config.json file.

Here’s how to add CICS configuration:

1.        Open your zowe.config.json file (if it’s not already open)

Opening config file for CICS

Opening config file for CICS

2.        Add a CICS profile section within the profiles object. Your updated configuration should look like this:

{
  "$schema": "./zowe.schema.json",
  "profiles": {
    "zosmf": {
      "type": "zosmf",
      "properties": {
        "host": "your-mainframe-host.com",
        "port": 10443,
        "rejectUnauthorized": false
      },
      "secure": ["user", "password"]
    },
    "cics": {
      "type": "cics",
      "properties": {
        "regionName": "CICSRGN1",
        "cicsPlex": ""
      }
    }
  },
  "defaults": {
    "zosmf": "zosmf",
    "cics": "cics"
  },
  "autoStore": true
}

Key CICS fields to configure:

·      regionName: Your CICS region name (e.g., "CICSRGN1" or "CICSPROD"). This is case-sensitive and must match exactly!

·       cicsPlex: Your CICSplex name if applicable. Leave as empty string "" if not using a CICSplex

o   Both `regionName` and `cicsPlex` are optional fields. If you leave them out of your configuration, you'll be able to select which CICS region to work with directly in the VS Code UI each time, giving you flexibility to switch between different regions without editing the config file.

·       Save the file (Ctrl+S / Cmd+S)

  1. Refresh Zowe Explorer: Click the refresh icon in the CICS section or restart VS Code

Your CICS profile is now configured! Navigate to the CICS section in Zowe Explorer to see it.

CICS section in Zowe Explorer

CICS section in Zowe Explorer

Verifying Your CICS Connection

Let’s make sure you can access CICS resources:

  1. Expand your CICS profile (click the arrow next to it)
  2. You should see several categories:

o   Programs

o   Transactions

o   Local Files

o   Libraries

  1. Click on Programs

If everything is configured correctly, you’ll see a list of CICS programs in your region. This might take a few seconds the first time as it retrieves the data from the mainframe.

CICS programs list displayed

CICS programs list displayed

If you see programs listed, you’re all set! If you get an error, double-check your CICS region name and make sure you have the necessary permissions.


Your New Development Workflow: Putting It All Together

Now that everything is set up, let me show you how your day-to-day CICS development will look. Trust me, once you get used to this workflow, you’ll wonder how you ever worked without it.

Working with CICS Programs

Let’s say you need to check on a CICS program or make it available after a deployment.

  1. In the CICS section, expand your profile and click on Programs
  2. Browse through the list to find your program. You can scroll or use Ctrl+F to search
  3. Right-click on any program to see what you can do:

o   View Details: See the program’s definition and status

o   Enable/Disable: Control whether the program is available

o   NEWCOPY: Refresh the program in CICS memory (essential after deploying a new version!)

Right-click context menu on a CICS program

Right-click context menu on a CICS program

The NEWCOPY operation is particularly useful. After you’ve compiled and deployed a new version of your program, you can right-click and select NEWCOPY to make CICS load the fresh copy - no need to recycle the region!

NEWCOPY operation in progress

NEWCOPY operation in progress

Managing CICS Transactions

Need to check on a transaction or temporarily disable it?

  1. Click on Transactions under your CICS profile
  2. Browse the list of transactions
  3. Right-click on any transaction to manage it

CICS transactions list

CICS transactions list

Editing Your COBOL Programs

Here’s where IBM Z Open Editor really shines. Let’s walk through editing a COBOL program:

  1. In the DATA SETS section, expand your z/OSMF profile
  2. Click “Search Data Sets” and enter the pattern for your COBOL source library (e.g., YOUR.COBOL.SOURCE)

Searching for COBOL source data sets

Searching for COBOL source data sets

  1. Once you find your data set, expand it to see all the members (programs)
  2. Click on any COBOL program to open it

Watch what happens when the file opens: - The code is beautifully syntax-highlighted with different colors for keywords, variables, and comments - The Outline view (on the left sidebar) shows your program’s structure - As you type, you get code completion suggestions.

COBOL program with syntax highlighting

COBOL program with syntax highlighting

Try typing EXEC CICS and then press Ctrl+Space - you’ll see a list of CICS commands you can insert!

Code completion showing CICS commands

Code completion showing CICS commands

When you make changes and save (Ctrl+S or Cmd+S), VS Code automatically uploads your changes back to the mainframe. You’ll see a brief notification confirming the upload.

One of the most powerful features is the enhanced hover help for EXEC CICS statements. Simply hover your mouse over any CICS command to see:

 

- Command descriptions and syntax

- Available options and parameters

- Common response codes

- Usage examples

- Direct links to official CICS API documentation

 

No more switching between windows to check CICS manuals - the information you need is right at your fingertips!

Submitting and Monitoring Jobs

Need to compile your program or run a batch job? Here’s how:

  1. Navigate to your JCL library in the DATA SETS section
  2. Find the JCL member you want to submit
  3. Right-click on it and select “Submit Job”

Submit Job context menu

Submit Job context menu

4.        You’ll see a notification with the job ID (like “JOB12345”)

Job submission notification

Job submission notification

  1. Click on the job ID, you will be redirected to the JOBS section in Zowe Explorer - your job will appear at the top of the list
  2. Expand the job to see all the spool files (JESMSGLG, JESJCL, JESYSMSG, and your program’s output)

Job in JOBS section

Job in JOBS section

7.        Click on any spool file to view its contents right in VS Code

Note: Screenshots for spool file contents and USS file operations are not included in this guide, but the workflow is straightforward and intuitive.

No more switching to a separate 3270 emulator to check job output - it’s all right here!

Working with USS Files

If you work with USS (Unix System Services) files, you’ll love this:

  1. Go to the USS section in Zowe Explorer
  2. Expand your profile and click the folder icon to browse directories
  3. Navigate to your USS home directory or project folders
  4. Click on any file to open and edit it
  5. Save your changes, and they’re automatically uploaded

The Complete Deployment Workflow

Let me show you a typical workflow from editing to deployment:

1.        Edit: Open your COBOL program from a data set and make your changes

2.        Save: Press Ctrl+S - changes are uploaded to the mainframe

3.        Compile: Submit your compile JCL

4.        Monitor: Check the job output in the JOBS section

5.        Deploy: If compilation succeeded, your load module is ready

6.        Refresh: Go to CICS → Programs, find your program, right-click, and select NEWCOPY

7.        Test: Your updated program is now active in CICS!

All of this without leaving VS Code. That’s the power of this setup.


Pro Tips for Power Users

Now that you know the basics, here are some tips to make you even more productive:

Keyboard Shortcuts You’ll Love

·      Ctrl+Shift+E / Cmd+Shift+E - Toggle between Explorer and Zowe Explorer

·      Ctrl+P / Cmd+P - Quick file open (works with recently opened mainframe files too!)

·      Ctrl+Shift+P / Cmd+Shift+P - Command Palette (access any VS Code or Zowe command)

·      Ctrl+ / Cmd+ - Toggle terminal (useful for running local scripts)

Editing Shortcuts for ISPF Users

If you’re coming from ISPF, you’ll be happy to know that many familiar editing operations work in VS Code too:

Column (Block) Selection

- Click on a point in the document, hold `Shift+Alt` (Windows/Linux) or `Shift+Option` (Mac) and drag

- This simulates selecting rectangular blocks of text, just like ISPF block selection

Multi-Cursor Edits

- Hold `Alt` (Windows/Linux) or `Option` (Mac) and click at multiple points to place multiple cursors

- Then type, delete, or edit — all cursors operate simultaneously!

- Use `Ctrl+D` (Windows/Linux) or `Cmd+D` (Mac) to jump to the next occurrence of a selected word for batch editing

Moving and Copying Lines

- `Alt+↑` / `Alt+↓` (Windows/Linux) or `Option+↑` / `Option+↓` (Mac) — Move current or selected lines up/down

- `Shift+Alt+↑` / `Shift+Alt+↓` (Windows/Linux) or `Shift+Option+↑` / `Shift+Option+↓` (Mac) — Duplicate current or selected lines

Deleting Lines

- `Ctrl+Shift+K` (Windows/Linux) or `Cmd+Shift+K` (Mac) — Delete current or selected lines instantly

These shortcuts will make your transition from ISPF to VS Code much smoother!

Working with Multiple Environments

You can create multiple profiles for different environments: - One for your development CICS region - Another for test - A third for production (with appropriate access controls, of course!)

Just click the + icon in any Zowe section and create additional profiles. Switch between them by expanding the one you need.

Using Filters for Faster Access

Instead of searching for the same data sets repeatedly, create filters:

1.        Right-click on your profile in the DATA SETS section

2.        Select “Create New Filter”

3.        Enter a pattern like YOUR.COBOL.* or PROD.CICS.LOADLIB

4.        The filter is saved and appears under your profile for quick access

Organizing Your Workspace

Create separate VS Code workspaces for different projects: 

  • File → Save Workspace As… 
  • Give it a meaningful name like “CICS-Banking-App”
  • Your workspace remembers which files you had open, your Zowe profiles, and your settings

When Things Don’t Go As Planned: Troubleshooting

Even with the best setup, you might occasionally run into issues. Here’s how to solve the most common ones:

“Cannot connect to z/OSMF”

This is usually one of three things:

1.        Wrong URL: Double-check your z/OSMF URL. It should include https:// and the port number (usually 10443)

2.        Credentials: Verify your username and password are correct

3.        Certificate Issues: If you’re getting SSL errors, try setting “Reject Unauthorized” to false in your profile settings

To edit a profile, right-click on it and select “Update Profile”.

“CICS resources not showing”

If you can connect to z/OSMF but don’t see CICS resources:

1.        Verify your CICS region name is exactly correct (it’s case-sensitive!)

2.        Verify you have CMCI access permissions. These are controlled by your security team through RACF or your security manager. Contact your CICS administrator if you're getting permission-related errors.

3.        Ensure CMCI (CICS Management Client Interface) is configured on your CICS region

4.        Try refreshing the CICS profile (right-click → Refresh)

“Extension not loading”

If an extension isn’t working:

1.        Restart VS Code (sometimes that’s all it takes)

2.        Check for extension updates (Extensions view → Click the gear icon → Check for Updates)

3.        Try disabling and re-enabling the extension

4.        Check the Output panel (View → Output) and select the extension from the dropdown to see error messages

“Cannot save changes to data set”

If you can’t save your edits:

1.        Check if you have write permissions to the data set

2.        Verify the data set isn’t locked by another user

3.        Make sure the data set isn’t marked as read-only

Getting More Help

If you’re still stuck:

  1. Check the Output Panel: View → Output, then select “Zowe Explorer” or “IBM Z Open Editor” from the dropdown. This shows detailed logs that often reveal what’s wrong.
  2. Consult the Documentation:

o   Zowe Explorer Docs

o   IBM Z Open Editor Docs

o   Zowe for CICS Docs

  1. Join the Community: The Zowe community is incredibly helpful. Join the Zowe Slack and ask questions in the #zowe-explorer-vscode  channels.

What’s Next on Your Journey

You’ve made it! You now have a modern, powerful development environment for CICS applications. But this is just the beginning. Here are some ways to take your skills further:

Explore Advanced Features

·      IBM Z Open Debug: Add debugging capabilities to step through your COBOL code

·      Git Integration: Use VS Code’s built-in Git support to version control your mainframe code

·      Code Snippets: Create custom snippets for your team’s coding standards

·      Remote Development: Explore VS Code’s remote development features for even more flexibility

·      CICS Interdependency Analyzer: Visualize and analyze dependencies between CICS resources to understand program relationships and impact analysis

·      IBM File Manager: Browse, edit, and manage mainframe data sets and files with advanced features like record-level editing and data comparison

Learn from the Community

The mainframe development community is vibrant and welcoming:

Share Your Knowledge

Now that you’re set up, help your teammates! Share this guide, offer to pair program, or give a quick demo of your new workflow. The more developers on your team using these tools, the more productive everyone becomes.

Keep Your Tools Updated

Extensions are regularly updated with new features and bug fixes:

  • Check for extension updates monthly 
  • Read the release notes to learn about new features 
  • Update VS Code itself when new versions are released

Final Thoughts

When I first started using VS Code for CICS development, I was skeptical. Could a modern IDE really work well with mainframe systems? The answer turned out to be a resounding yes.

The combination of Zowe Explorer, IBM Z Open Editor, and Zowe for CICS transforms CICS development from a task that requires multiple tools and constant context switching into a smooth, integrated experience. You get the power and reliability of the mainframe with the convenience and features of modern development tools.

Whether you’re maintaining legacy CICS applications or building new ones, this setup will make you more productive and your work more enjoyable. The initial setup takes just 15-20 minutes, but the benefits last throughout your entire development career.

So go ahead - open that COBOL program, make your changes, submit that job, and perform that NEWCOPY. All from the comfort of VS Code. Welcome to modern mainframe development!

Happy coding!


Have questions or feedback about this guide? Found it helpful? I’d love to hear from you! Connect with me on the Zowe Slack community or the IBM Z Community forums.

0 comments
82 views

Permalink