How I engineered a multi-agent coding terminal with a 3D Three.js Office Floor UI published

작성자

카테고리:

← 피드로
DEV Community · Dominique Church · 2026-08-27 개발(SW)
Cover image for How I engineered a multi-agent coding terminal with a 3D Three.js Office Floor UI published

Dominique Church

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

Enter fullscreen mode Exit fullscreen mode

GitHub: https://github.com/DOMCHURCH/Gnosis

원문에서 계속 ↗