VS Code extension · IBM Z

Preview · version 0.9.3

Iron 3270

A TN3270E terminal emulator for z/OS and z/VM that lives inside Visual Studio Code. Real block-mode 3270 screens, the full PF/PA keyboard, strict TLS, IND$FILE file transfer and macros, next to your code instead of in a separate window.

Visual Studio Code with the Iron 3270 view open: the 3270 Connections list with MVS and ZOSPREYS connections on the left, and a connected z/OS session tab showing the z/OS logon banner in green, 'IBM Z, The Next Generation', a red tagline and the logon prompt, with the operator information line at the bottom.
Iron 3270 in Visual Studio Code, connected to z/OS: the 3270 Connections list, a 43×80 session tab, the toolbar and the operator information line.

Features

A real 3270, not a scrolling shell.

Iron 3270 keeps the field-oriented, block-mode behavior of a genuine 3270 terminal: protected and numeric fields, modified data tags, keyboard locking, type-ahead. The protocol engine is b3270 from the long-standing x3270 suite.

Connections

A home in the Activity Bar

Save hosts in the 3270 Connections view, organize them in groups, and double-click to connect. Each session opens as its own editor tab, so splits and side-by-side work just work.

Screens

Faithful 3270 rendering

Models 2, 3, 4 and 5 (up to 27×132), extended colors and highlighting, an authentic operator information area, the classic 3270 font and six themes from green screen to high contrast.

Keyboard

Every key you need

PF1–PF24, PA1–PA3, Enter, Clear, Reset, Attn, SysReq, Erase EOF, Erase Input, Dup and Field Mark, on your keyboard and on a dockable on-screen keyboard. Keymaps are fully customizable.

Security

TLS done carefully

Certificates and host names are verified by default. Use your company's CA, or pin one reviewed certificate. Passwords never touch logs or macros, and secrets live in VS Code's secure storage.

Files

IND$FILE transfers

Send and receive files with TSO, CMS and CICS: text or binary, CRLF records, RECFM, LRECL, BLKSIZE and space allocation, batches of PDS members, progress and cancel.

Productivity

Editing that respects fields

Block selection, field-aware paste, Select JCL and Paste JCL, nine clipboard buffers, screen history, find, URL hotspots, and a sandboxed macro language with recording.

Screenshots

See it in action.

The first five screens are real systems: z/OS with TSO/ISPF and CICS TS 6.1, and MVS 3.8j (the MVS TK5 distribution). The close-ups after them come from the extension's automated visual tests against its built-in test host.

Install

Up and running in a minute.

Iron 3270 is free. It needs Visual Studio Code 1.90 or later on a supported platform; the protocol engine is included, so there is nothing else to install.

  1. Install the extension

    In VS Code, open the Extensions view (Ctrl+Shift+X), search for Iron 3270 and click Install. Or open the Marketplace page and click Install there. The extension ID is ScottPiersall.iron3270.

  2. Add a connection

    Click the Iron 3270 icon in the Activity Bar, then Add Connection. Enter the host, the port (23, or 992 for TLS), the terminal model and the host code page. Choose TLS: verify certificate whenever your host supports it, and use Test Connection to check before saving.

  3. Connect

    Double-click the connection. The session opens in its own tab. Press Ctrl+K for the on-screen keyboard, or use the toolbar's Send and Receive buttons to transfer files.

Platform support
PlatformStatusNotes
Windows x64SupportedFully tested.
Windows on ARMSupportedRuns the x86 engine under Windows' built-in emulation.
Linux x64SupportedTested on RHEL 8, 9 and 10, Rocky and Oracle Linux, Debian 12 and 13, Ubuntu 20.04 to 24.04, openSUSE Leap 15, Amazon Linux 2023 and Fedora. No extra packages needed.
macOS (Apple Silicon and Intel)SupportedmacOS 11 or later. Tested on Apple Silicon; the Intel build is tested under Rosetta.
Linux ARM64SupportedThe same distributions as Linux x64. Tested on a Raspberry Pi 5.
Remote SSH, WSL, containersSupportedThe extension runs on the remote side; install the build for that machine's platform.
VS Code for the WebNot availableBrowsers cannot run the native 3270 protocol engine.

Quick guide

The essentials.

Complete user, keyboard, file transfer and macro guides are included with the extension. These are the things people ask about first.

Default keys

F1–F12PF1–PF12
Shift+F1–F12PF13–PF24
Alt+F1–F3PA1–PA3
EnterEnter
EscReset
PauseClear
Ctrl+EndErase EOF
Ctrl+Shift+AAttn
PgUp / PgDnPF7 / PF8
Ctrl+KOn-screen keyboard

While a terminal tab has focus, F1 goes to the host instead of opening the Command Palette. Built-in PCOMM-style and x3270-style keymaps are included, and the graphical keymap editor lets you build your own.

File transfer, the short version

Send and Receive use IND$FILE through your session. Start from a host command prompt (TSO READY, ISPF option 6 or CMS Ready;) and Iron 3270 types the command for you.

  • TSO names: 'USER.JCL(MEMBER)'. CMS names: PROFILE EXEC A.
  • Choose Text for source and JCL, Binary for anything else.
  • Select several files to queue a batch of PDS members with {member} in the host name.

TSO TRANSMIT and RECEIVE are host commands, separate from IND$FILE. Iron 3270 offers clearly labelled helpers for them too.

Macros

Record a macro from the toolbar, or write one in the simple .3270macro language. Macros wait on real screen state (wait unlock, wait text), never record passwords, and ask before any file transfer.

Security and privacy

Built for people who log on to production.

Mainframe sessions carry credentials and business data. Iron 3270 is designed to be boring in the best way.

Privacy

No telemetry

Iron 3270 collects no usage data and sends nothing anywhere except to the hosts you connect to. Screen contents and keystrokes are never written to its diagnostic log.

TLS

Verified by default

  • System CAs and host name checks
  • Your organization's own CA
  • One pinned certificate, after you review its fingerprint

Unverified sessions show a persistent warning.

Secrets

Kept out of files

Client certificate passphrases live in VS Code's SecretStorage. Connection exports never contain secrets. Macros cannot read files, start programs or reach the network.

Support

Questions, bugs or ideas?

Email spiersall@gmail.com with "Iron 3270" in the subject. Please include the extension version, your operating system, and the output of Iron 3270: Show Diagnostics Log from the Command Palette. It contains no screen data or keystrokes.

Email support

Release notes

0.9.0: first preview

  • Connection explorer, terminal tabs, themes and the operator information area
  • Physical and on-screen 3270 keyboards with customizable keymaps
  • TLS with verification, custom CA and certificate pinning
  • IND$FILE send and receive, batches and transfer history
  • Field-aware editing, clipboard buffers, screen history and macros

This is a preview. Beyond the automated suites and recorded real-host sessions, it has been tested on a real mainframe: z/OS TSO/ISPF, CICS and z/VM CMS, with every TLS mode including client certificates, IND$FILE transfers, TSO TRANSMIT/RECEIVE, macros, auto-reconnect and larger screen models. Feedback is very welcome.

License and credits

Iron 3270 is free software under the BSD 3-Clause license, by Scott Piersall.

The 3270 protocol engine is b3270 from the x3270 suite by Paul Mattes and contributors (BSD license). The bundled fonts are the 3270 font by Ricardo Banffy (BSD) and IBM Plex Mono (SIL Open Font License). Full notices ship with the extension.

IBM, IBM Z, z/OS, z/VM, TSO, ISPF, CICS and 3270 are trademarks or product names of International Business Machines Corporation. Iron 3270 is an independent project and is not affiliated with or endorsed by IBM, or by the authors of x3270 or Vista TN3270.