The WND Terminal extension puts WND Terminal in a VS Code panel. Mainframe (3270), IBM i (5250) and UNIX sessions sit next to your code, with the same screen, keyboard, macros, file transfer, Explain and Ask WND as the desktop app. Four commands tie the editor to the host. They open a session from your project’s connections or your Zowe profiles, submit the JCL you’re editing and show its output, explain the abend or message under the cursor, and ask WND Terminal about the session.
It runs on Windows, Mac and Linux, in VS Code 1.90 or later. Its name in VS Code is wndsoftware.wnd-terminal.
Installing it
In VS Code, open the Extensions view, click … at its top, choose Install from VSIX… and pick wnd-terminal.vsix. There is one file for each platform (Windows, Mac, Linux), because each carries WND Terminal’s engine for that platform.
Opening a session
WND: Open session (Ctrl+Shift+P, then type "WND Terminal") lists:
- the connections in
.wndfiles anywhere in your workspace, and - each z/OS system in your Zowe profiles, twice: on port 992 with TLS and on port 23.
Pick one and it connects in the WND Terminal panel. WND Terminal at the top of the list opens the panel to choose or type a host there, as in the desktop app.
.wnd files
A .wnd file is JSON, so it can be checked in with the code that runs on that system:
{
"name": "Production",
"host": "mvs.example.com",
"port": 992,
"secure": true,
"model": 2,
"codePage": 1047,
"ftp": { "user": "IBMUSER" }
}
Only host is needed. port is 23 when left out (992 with secure, 22 for SSH). hostType is 3270 (the default), 5250 for IBM i, or ssh or telnet for UNIX and Linux. lu is the terminal (LU) name or the IBM i device name. A file can hold a list of connections, or {"connections": [...]}, and comments are allowed. ftp says where Submit JCL sends jobs (below). VS Code checks the file as you type it.
Never put a password in a .wnd file. WND Terminal asks for it when it connects.
Zowe profiles
The extension reads zowe.config.json and zowe.config.user.json in ~/.zowe (or in ZOWE_CLI_HOME, or the folder in the wndTerminal.zoweConfigFolder setting), and in the root of each workspace folder. Each zosmf and tso profile’s host becomes a 3270 connection. Nested profiles take their parent’s host, and a profile without one uses the base profile’s, as Zowe does. The z/OSMF port isn’t used. 3270 is on port 23 or 992. A zftp profile for the same host says which FTP port Submit JCL uses.
Submitting JCL
WND: Submit JCL and show output submits the JCL in the editor (or just the selected lines) and opens the job’s output beside it when the job ends. It’s also on the editor’s right-click menu for .jcl, .cntl and .job files.
- Choose the z/OS system. The one you used last is first. Another host… takes a host name, with
:portwhen its FTP server isn’t on 21. - Type your user ID (once per host, or set
ftp.userin the.wndfile) and your password. The password is never saved. - WND Terminal sends the job to JES through the host’s FTP server, waits for it to end (up to
wndTerminal.jobWaitSeconds, 120 seconds), and opens its output (JESMSGLG, JESJCL, JESYSMSG and the steps' output) in a read-only editor. The first line says how it ended, such asJOB00042 ended: RC=0000.orABEND=S0C7.
Jobs go over FTP with TLS on port 21 unless the .wnd file’s ftp says otherwise ("secure": false for plain FTP, "port" and "host" for another server). Your organization’s file transfer rules apply, as in the desktop app’s file transfer.
Explain code under cursor
Put the cursor on an abend (S0C7, ABEND=S806, U4038), a CICS abend (ASRA), a message ID (IKJ56421I, IEF450I, CPF9801) or an SQLCODE (-805) anywhere, in JCL, a job log or your program’s comments, and run WND: Explain code under cursor (also on the right-click menu). The explanation opens beside the editor: what it means and what to do. When the word alone isn’t a code, the whole line is looked at, so ABEND 0C7 and SQLCODE = -811 work too.
It’s WND Terminal’s built-in reference, the same as the code hints under the screen. Nothing leaves your computer and no AI is used.
Ask WND
WND: Ask WND asks a question about the session in front of you in the panel, such as "Why did my job end with S0C7?". Ask WND looks at the screens, pages through the job log and answers in the panel, as in the desktop app. Selected text in the editor goes into the question to start with.
It uses the AI service in the panel’s AI settings (your own, such as Ollama on your computer, or your organization’s when its policy sets one). Your organization’s rules for Ask WND apply. It’s read-only by default, and sensitive values are masked before anything is sent.
Your license
The extension uses your WND Terminal license, the same one as the desktop app. It finds it in the same places: the one you added in the desktop app, your organization’s (policy or the computer’s folder), or WND_TERMINAL_LICENSE. Add a license in the panel saves it where the desktop app keeps it, so both use it.
WND Terminal Free works here, on your own computer, with its usual limits (see WND Terminal Free). It doesn’t count on a computer an organization manages, exactly as in the desktop app. The panel says so and offers a trial for your team.
How it runs
The panel isn’t a web page from the internet. The extension starts WND Terminal’s engine on your computer (the wnd-gateway program, in local mode) and shows its screen in the panel:
- The engine listens only on 127.0.0.1, on a port it picks. It answers only requests for 127.0.0.1 or localhost by name.
- Nobody signs in. Each time the extension starts the engine, it makes a new random token and gives it only to the engine and the panel. Without it, the engine shows nothing and runs nothing.
- Only the VS Code panel can show the engine’s page. A web site that tries to show it in a frame gets nothing.
- The engine reads your computer’s WND Terminal policy (Group Policy, a configuration profile, or
/etc/wnd-terminal/policy.json), so your organization’s rules hold in VS Code as in the desktop app. - It stops when VS Code closes, and closes its sessions.
Its audit and usage logs, guides and session recordings (when your policy records sessions) are in the extension’s own folder in VS Code’s storage, and the WND Terminal output panel shows its log.
To use another copy of the engine, set wndTerminal.gatewayPath to the wnd-gateway program. It needs local mode (wnd-gateway --help lists wnd-gateway local).
The extension doesn’t connect to the desktop app when that’s open. The desktop app’s automation API gives a program the screen’s text and fields, not the screen itself, so the panel runs its own engine on the same license and policy.
What’s different from the desktop app
- Certificates. A host whose TLS certificate your computer doesn’t trust is refused, unless your organization trusts it in the policy (TrustedCertificates). The panel can’t trust one for you.
- Smart cards and certificate files for signing in to hosts aren’t available in the panel. Use the desktop app for those.
- Files you send from the panel (file transfer, Fill from Excel) come from the file picker, as in WND Terminal in a browser.
- Connections saved in the panel stay with the panel. To keep connections with your project, put them in a
.wndfile.
Settings
On a small screen, swipe the table to read all columns.
| Setting | What it does |
|---|---|
wndTerminal.gatewayPath |
The engine program to use instead of the one that comes with the extension. |
wndTerminal.jobWaitSeconds |
How long Submit JCL waits for a job to end (120). After that it shows the output so far. |
wndTerminal.zoweConfigFolder |
The folder with your Zowe configuration, when it isn’t ZOWE_CLI_HOME or ~/.zowe. |