VisualHolyC
Build HolyC programs in VSCode, then build and run them in TempleOS inside VS Code, powered by aiwnios.wasm — a WebAssembly port of TempleOS/HolyC.

Usage
- Open the Command Palette (
Cmd+Shift+P / Ctrl+Shift+P).
- Run VisualHolyC: TempleOS: Boot aiwnios.wasm — the OS boots immediately.
- Use VisualHolyC: TempleOS: Restart to reset the running instance.
The panel keeps running in the background (retainContextWhenHidden), so switching editor
tabs won't reset the OS state.
Workspace mounting
When the panel opens, the extension reads your first workspace folder (skipping .git,
node_modules, out, dist, and any individual file over 2 MB, up to a 32 MB total budget) and
writes it into the wasm's virtual filesystem before boot, at /T/VSCode — which TempleOS/HolyC
sees as drive T:\VSCode. The status line in the bottom-left corner of the panel confirms how
many files were mounted (and whether the copy was truncated due to the size budget).
This is a one-way, in-memory copy taken at boot time — changes made inside TempleOS are not
written back to your workspace on disk.
HolyC language support
.hc/.HC files get syntax highlighting via a bundled TextMate grammar (syntaxes/holyc.tmLanguage.json).
To also show the HolyC icon (assets/HolyC.png) on .hc files in the Explorer, enable the file
icon theme this extension contributes:
- Open the Command Palette and run Preferences: File Icon Theme.
- Select HolyC File Icons.
Note: VS Code only allows one active file icon theme at a time, and this theme only defines an
icon for HolyC files — other files will show without icons while it's selected.
How it works
The extension bundles the Emscripten-compiled system/aiwnios.js glue script and
system/aiwnios.wasm binary and loads them inside a VS Code Webview (a sandboxed Chromium
page), which provides the canvas/WebGL/audio/keyboard APIs the build needs. Nothing is executed
in the extension host or on Node.js — the WASM only ever runs inside the webview's browser
context.
Development
code . # then press F5 to launch an Extension Development Host
No build step is required — extension.js is loaded directly by VS Code.
To package a .vsix:
npx @vscode/vsce package
Note: system/aiwnios.wasm is ~10 MB, so the packaged extension will be similarly sized.
Credits
