
ValhallISC mounts InterSystems IRIS servers as local folders. Namespaces show up as folders, packages as subfolders, and classes and routines as .xml files. Copying a file out gives its XML export; copying an .xml file in imports and compiles it. You manage profiles from a tray / menu-bar app, or from the command line (valhallisc --help).
![]()
Mount the code of an InterSystems IRIS server as a folder on your computer.
ValhallISC exposes IRIS classes, routines, include files and other code documents as ordinary files, organised by namespace and package. Any tool can use them: Finder, Explorer, cp, grep, rsync, diff, backup software, CI scripts.
$SYSTEM.OBJ.Export writes).--batch, JSON output) for scripts.It builds on the IRIS web API used by VS Code’s ObjectScript extension (/api/atelier/), so nothing needs to be installed on the server.

~/ValhallISC/Dev IRIS/
├── USER/
│ ├── Demo/
│ │ ├── Person.cls.xml ← class Demo.Person
│ │ └── Sub/Thing.cls.xml ← class Demo.Sub.Thing
│ ├── DEMORTN.mac.xml ← routine
│ └── DemoInc.inc.xml ← include file
└── TESTNS/ …
cp ~/ValhallISC/Dev\ IRIS/USER/Demo/Person.cls.xml . # export
cp MyNewClass.xml ~/ValhallISC/Dev\ IRIS/USER/ # import + compile
cp -R ~/ValhallISC/Dev\ IRIS/USER backup/ # back up a namespace
| Needed | |
|---|---|
| IRIS server | 2023.2 or later (Atelier API v7+) with its web server reachable (default port 52773); a user with %Development (plus write access to the code database to import) |
| macOS | FUSE-T or macFUSE |
| Windows | WinFsp |
| Linux | fuse3, glibc 2.39 or newer (for the packaged binary), a desktop with a system tray for the GUI |
The downloads are on the GitHub Releases page:
| Platform | File |
|---|---|
| macOS, Apple silicon | ValhallISC-<version>-macos-arm64.dmg (signed and notarized) |
| macOS, Intel | ValhallISC-<version>-macos-x86_64.dmg (signed and notarized) |
| Linux x86_64 / ARM64 | valhallisc-<version>-linux-x86_64 / -linux-aarch64 (one file; glibc 2.39 or newer) |
| Windows | ValhallISC.exe + valhallisc-cli.exe, built by the Windows build GitHub Action |
SHA256SUMS lists the checksums.
ValhallISC.app, ValhallISC.exe, or the Linux binary run without arguments).The full guide is in https://github.com/m0nt0/ValhallISC/blob/main/doc/USAGE.md, and the command line reference in https://github.com/m0nt0/ValhallISC/blob/main/doc/CLI.md:
echo "$PW" | valhallisc --batch --create-profile Dev --host iris.local --user _SYSTEM --password-stdin
valhallisc --batch --connect Dev
valhallisc --batch --status
valhallisc --batch --disconnect Dev
Requirements: Python 3.12 and a FUSE driver. Docker is needed for the test IRIS and the Linux builds.
python3.12 -m venv .venv
.venv/bin/pip install -e ".[gui,dev,build]"
.venv/bin/python -m irisfs doctor # environment check
.venv/bin/python -m irisfs # tray app
.venv/bin/python -m irisfs --help # command line
Packaging uses PyInstaller:
| Platform | Command | Output |
|---|---|---|
| macOS | scripts/build-macos.sh |
dist/ValhallISC.app, a zip of it, and the dist/valhallisc CLI wrapper |
| macOS release | SIGN_IDENTITY=… NOTARY_PROFILE=… scripts/sign-macos.sh |
signed (hardened runtime), notarized, stapled dist/ValhallISC-<version>-macos-<arch>.dmg; see https://github.com/m0nt0/ValhallISC/blob/main/doc/RELEASING.md |
| Linux | scripts/build-linux.sh (in Docker) |
dist/valhallisc-linux-<arch> |
| Windows | powershell -ExecutionPolicy Bypass -File scripts\build-windows.ps1 |
dist\ValhallISC.exe, dist\valhallisc-cli.exe |
The Python package is called irisfs, after the project’s working title. The product name is ValhallISC.
A Docker Compose file provides an IRIS Community container with seeded test code (namespaces USER, TESTNS and PERFNS, and a read-only user). A Linux container provides FUSE and Xvfb.
docker compose -f docker/docker-compose.yml up -d --wait iris
scripts/test.sh all # lint + mypy, unit, integration, e2e (real mounts), GUI: on this machine
scripts/docker-test.sh all # the same on Linux in Docker
scripts/test.sh perf # 2 000-class listing benchmark
| Suite | What it covers |
|---|---|
| unit | profiles, secrets, path mapping, VirtualFS logic, Atelier client (mocked HTTP), CLI, controller |
| integration | the Atelier client against real IRIS, with a contract test that keeps the in-memory fake honest |
| e2e | real FUSE mounts driven with cp, cat, ls, ditto; mount manager; CLI; outages via a TCP proxy |
| gui | the real wx windows and menus, driven programmatically (Xvfb on Linux) |
The project was built in gated phases. See https://github.com/m0nt0/ValhallISC/blob/main/doc/PLAN.md for the plan, https://github.com/m0nt0/ValhallISC/blob/main/doc/DECISIONS.md for the architecture decisions, and doc/progress/ for the gate reports.
Tray app / CLI ──► MountManager ──► one worker process per mounted server
└─ FUSE (mfusepy: macFUSE/FUSE-T, libfuse3, WinFsp)
└─ VirtualFS ──► Atelier REST API (/api/atelier/v8) ──► IRIS
ditto write, then rename, are handled.src/irisfs/ application (atelier/ client, vfs/ filesystem logic, mount/ FUSE + workers, gui/, config/)
tests/ unit, integration, e2e, gui
docker/ IRIS test image + seed code, Linux test/build images
packaging/ PyInstaller spec
scripts/ test, build, icon and screenshot scripts
doc/ usage, CLI reference, plan, decisions, gate reports
assets/ logo and app icons
samples/ an example XML export to try an import
.exe is still being validated.scripts/sign-macos.sh with a Developer ID certificate. Local builds are ad-hoc signed.ValhallISC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License v3.0 or later (see https://github.com/m0nt0/ValhallISC/blob/main/LICENSE). The components bundled in the packaged apps and their licenses are listed in https://github.com/m0nt0/ValhallISC/blob/main/doc/THIRD_PARTY.md.
InterSystems and IRIS are trademarks of InterSystems Corporation. This project is not affiliated with, or endorsed by, InterSystems.