WASM Terminal
A Ghostty-based terminal compiled to WebAssembly. This surface belongs
to the Gaius-era visualization track. The hub control plane is
signals-ui on :9889.
User instructions in the terminal transit gRPC to a product engine and responses stream back to the client.
Design
The terminal provides a familiar command-line experience in the browser. Users type natural language instructions or structured commands, which are sent to the gRPC engine. The engine processes the instruction, potentially directing compute workloads, and streams responses back to the terminal.
This approach provides:
- Zero install — runs entirely in the browser via WASM
- Full terminal capabilities — Ghostty’s terminal emulation compiled to WASM
- Bidirectional streaming — gRPC streams carry instructions and responses
- Session persistence — terminal state survives page navigation
WASM Toolchain
The build toolchain (configured in devenv.nix):
| Tool | Purpose |
|---|---|
wasmtime | WASM runtime for testing |
wasm-pack | Build Rust → WASM packages |
wasm-bindgen-cli | Generate JS bindings |
binaryen | WASM optimization (wasm-opt) |
Web Interface Layout
Instructions flow from the terminal through gRPC to the engine. The engine directs Dask/Datashader to recompute views, which are streamed to the visualization panel above the terminal.