A multiplayer desktop where every project is a tiled grid of AI agents sharing one workspace.

A Tauri desktop app that puts AI coding agents into tiled panes, one project per kanban card. Every pane in a project shares the same working directory, so a single CLAUDE.md or .mcp.json wires every agent at once. The whole workspace is multiplayer over peer-to-peer y-websocket: invite a teammate with one link and your kanban, your shared markdown memory, and the inter-agent message log all sync live. It ships with paste-time secret redaction, opaque-token file editing, smart routing that hands cheap subtasks to a local Ollama model, and an integrations menu that installs new agent CLIs on demand.
Problem
Today's agent CLIs (Claude Code, Codex, Aider) all ship as solo terminal tools. You can run several at once, but they don't share context, can't see each other, can't delegate, and you end up shuttling output between tabs by hand. There's no shared chrome around them.
Approach
Each kanban card is a workspace with a shared project directory and a tiled grid of terminal panes. A pane can be Claude Code, OpenAI Codex, Aider running on a local Ollama model, a Chromium browser driven over Chrome DevTools Protocol, or a plain shell. Because every pane shares the project's CWD, dropping in a CLAUDE.md, an MCP config, or a custom skill wires all of them at once. Multiplayer state lives in Yjs CRDTs and rides over a tiny self-hostable y-websocket relay tunnelled through cloudflared. PTY output stays local (your agents only run on your machine), but the kanban, workspace metadata, the shared markdown memory tree, and the inter-agent message log all sync across peers. The shell is Tauri 2 (Rust + system WebView, ~10 MB packaged), state is Zustand, terminals are xterm.js, and the kanban is dnd-kit.
Outcomes
Cross-platform builds for macOS, Linux, and Windows via Tauri's GitHub Actions matrix, around a 10 MB binary. Self-hostable end to end: a free-tier cloudflared tunnel plus the relay run a small team for $0 a month. Two specific wins were spawning Aider-on-local-model as its own pane (so cheap edits never round-trip through Claude's context, around an 80% token reduction on file-edit tasks) and switching to allow-list cross-peer sync after I noticed the original code would have happily synced a malicious peer's .mcp.json.
Selected features
- N parallel claude / codex / aider panes per project, all sharing the project's CWD
- Multiplayer workspace over peer-to-peer y-websocket: one invite link, no central server
- Shared markdown memory tree (Yjs CRDT, character-level concurrent merges)
- Cost-aware routing: agents delegate cheap subtasks to local Ollama via an MCP ask(route, prompt) tool
- Aider-on-local-model panes edit files locally, so frontier-model tokens aren't burnt chauffeuring text
- Paste-time secret redaction (AWS, OpenAI, Stripe, SendGrid, PEM blocks)
- Opaque-token safe_read / safe_write so secrets never enter LLM context
- Allow-list cross-peer sync: only text context crosses the wire, never .mcp.json or hooks
- Inter-agent comms via MCP agent_send and broadcast
- Chromium browser panes driven over Chrome DevTools Protocol
Tech
Shell
Frontend
Multiplayer transport
MCP server
Agent runtimes
Security
Solo build. Self-hostable end to end.