Building Gnosis: A Multi-Agent Terminal with a 3D Office UI
I spent my summer building Gnosis, a local-first, open-source terminal coding agent designed around one idea: make multi-agent work easier to see and understand.
Instead of an endless stream of terminal output, Gnosis puts agents inside an interactive Three.js office, where their location reflects what they are actually doing.
Architecture
Gnosis uses a TypeScript backend for agent execution, tools, processes, and session state, with React + Three.js rendering everything in real time.
Model Hot-Swapping
The conversation state is separated from the model provider, so you can switch between any OpenRouter model mid-session without losing context or tool state.
Prompt Caching
Context is structured to maximize provider prompt caching.
One measured request dropped from $0.0252 to $0.0021 — a 12× reduction.
The 3D Office
Agents move between five zones:
- Coordinator — main session
- Planning — task breakdown
- Coding — file changes
- Application — testing and verification
- Sub-Agents — parallel work
The office updates as agents work, and clicking an agent opens its session.
Other Systems
Gnosis also includes:
- Tree-sitter code indexing
- Scoped sub-agents with context and tool limits
- Local PTY terminal streaming
- Obsidian persistent memory
- Computer use
- MCP support for Context7, Playwright, and Chrome DevTools
- File browser and diff viewer
- Webhook inspector
- Mobile and LAN control
The project has 104 automated test suites running on Windows CI.
Gnosis is MIT licensed, local-first, and BYOK.
npm install -g @dominquechurch/gnosis
Top comments (2)
I like the state separation more than the 3D layer here. Most multi-agent UIs show activity, but the expensive bug is losing the thread when you swap models, fork a sub-agent, or reopen yesterday's run. If the UI makes that state visible without turning into a dashboard monster, that is a real improvement.
if you have any more questions i'll be happy to anwser them!