A suite of open-source projects that bring modern development tooling to IBM MVS 3.8j — the classic mainframe operating system from 1979.
mvsMF started as a single project: a z/OSMF-compatible REST API that lets you use Zowe Explorer (VSCode/JetBrains) and Zowe CLI with MVS 3.8j. But mvsMF is just one piece of the puzzle — it needs a web server to run on, a filesystem to serve files from, and it's growing a web frontend of its own. That's why we now have multiple projects that work together as two parallel stacks: one for HTTP (mvsMF + HTTPD) and one for FTP (FTPD) — both sharing the same filesystem (UFSD) underneath. Click each box below to learn more.
mvsMF implements the IBM z/OSMF REST API on MVS 3.8j. This means you can use
modern tools like Zowe Explorer in VSCode to browse datasets, edit members,
submit JCL, and view job output — all on a 1979 mainframe.
It handles three API families: /zosmf/restfiles/ds/* (datasets),
/zosmf/restjobs/* (jobs), and /zosmf/restfiles/fs/* (USS files via UFSD).
mvsMF is a CGI module — it doesn't listen on a port itself. Instead, it plugs
into HTTPD, which handles all HTTP protocol work (TCP, Keep-Alive, TLS) and routes
/zosmf/* requests to mvsMF.
The Web UI will be a browser-based frontend that gives you a visual interface for working with your MVS system — no IDE or CLI required. Just open a browser and go.
It will include a Dataset Explorer for browsing, viewing, and editing MVS datasets and PDS members, and a JES2 Spool Viewer for inspecting job output, JCL, and spool files. Think of the classic HTTPD 3.3.x built-in JES browser and dataset pages, but redesigned from scratch as a modern, responsive web app.
The key design principle: the Web UI will be a pure frontend that consumes the mvsMF REST APIs. This means it benefits from all the work going into mvsMF (codepage handling, error handling, authentication) without duplicating any logic. HTTPD serves the Web UI's HTML/CSS/JS as static files from UFS.
HTTPD is the web server that makes everything accessible over HTTP. Originally Mike Rayborn's HTTPD 3.3.x, we're evolving it to 4.0.0 with a major cleanup: removing legacy Lua config, embedded FTP, and MQTT telemetry.
Key responsibilities: TCP listener with worker thread pool, HTTP/1.1 protocol handling,
multi-codepage EBCDIC↔ASCII translation (CP037 for MVS data, IBM-1047 for USS files),
CGI routing to mvsMF, and serving the Web UI's static files from UFS.
Why a separate repo? HTTPD is a general-purpose server — it can host any CGI module, not just mvsMF. Keeping it separate means other projects can reuse it too.
A standalone FTP server for MVS 3.8j, compatible with z/OS FTP conventions. Unlike mvsMF (which runs inside HTTPD), FTPD is its own Started Task (STC) with its own TCP listener — completely independent from the HTTP stack.
Supports MVS dataset access (sequential + PDS), JES job submission and spool retrieval
via SITE FILETYPE=JES, and Unix file access via the UFSD client library.
Status: Functionally complete — the core feature set is implemented and the server compiles and links. We're now in the testing and stabilization phase. If you have an MVS 3.8j system and an FTP client, we'd love your help shaking out bugs.
MVS 3.8j has no Unix filesystem. UFSD adds one — a UFS370 filesystem server that runs as a Started Task and provides file I/O to any address space on the system via the MVS Subsystem Interface (SSI).
This is what makes /zosmf/restfiles/fs/* possible in mvsMF and what lets HTTPD
serve static HTML/CSS/JS files. FTPD also uses the UFSD client library for Unix file transfers.
Without UFSD, there's no place to store web content or USS files on MVS 3.8j.
Companion tool: ufsd-utils (Go) — creates, manipulates, and uploads UFS disk images
from your workstation.