Think Figma, but for AI coding assistants. Orchestrate Claude Code, Codex, and Gemini sessions on a multiplayer canvas. Manage git worktrees, track AI conversations, and visualize your team's agentic work in real-time.
TL;DR: Agor is a multiplayer spatial canvas where you coordinate multiple AI coding assistants on parallel tasks, with GitHub-linked worktrees, automated workflow zones, and isolated test environmentsโall running simultaneously.
๐ Read the full documentation at agor.live โ
Spatial canvas with worktrees and zones |
Rich web UI for AI conversations |
MCP servers and worktree management |
Live collaboration with cursors and comments |
โ Watch unscripted demo on YouTube (13 minutes)
- Node.js 20.x
- Zellij โฅ 0.40 (required - daemon will not start without it)
Install Zellij:
# Ubuntu/Debian
curl -L https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz | sudo tar -xz -C /usr/local/bin
# macOS
brew install zellij
# RHEL/CentOS
curl -L https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz | sudo tar -xz -C /usr/local/binnpm install -g agor-liveNote: Agor requires Zellij for persistent terminal sessions. The daemon will fail to start with a helpful error message if Zellij is not installed.
# 1. Initialize (creates ~/.agor/ and database)
agor init
# 2. Start the daemon
agor daemon start
# 3. Open the UI
agor openTry in Codespaces:
- Run as many Claude Code, Codex, and Gemini sessions as you can handleโsimultaneously.
- Agents in Agor can coordinate and supervise through the internal Agor MCP service.
- Built-in scheduler triggers templated prompts on your cadence.
- Figma-esque board layout organizes your AI coding sessions across boards (full 2D canvases).
- Scoped/spatial comments + reactions pinned to boards, zones, or worktrees (Figma-style).
- WebSocket-powered cursor broadcasting and facepiles show teammates in real time.
- Fork sessions to explore alternatives without losing the original path.
- Spawn subsessions for focused subtasks that report back to the parent.
- Visualize the session genealogy in "session trees"
- Define zones on your board that trigger templated prompts when worktrees are dropped.
- Build kanban-style flows or custom pipelines: analyze โ develop โ review โ deploy.
- GitHub-native workflow: Link worktrees to issues/PRs, auto-inject context into prompts
- Template syntax:
"deeply analyze this github issue: {{ worktree.issue_url }}" - Each worktree = isolated branch for a specific issue/PR
- AI agents automatically read the linked issue/PR context
- Template syntax:
The Problem: Working on 3 PRs simultaneously? Each needs different ports, dependencies, database states.
Agor's Solution:
- Each worktree gets its own isolated environment with auto-managed unique ports
- Configure start/stop commands once with templates:
PORT={{ add 9000 worktree.unique_id }} docker compose up -d - Everyone on your team can one-click start/stop any worktree's environment
- Multiple AI agents work in parallel without stepping on each other
- Health monitoring tracks if services are running properly
No more: "Kill your local server, I need to test my branch"
- Coordinate agentic work like a multiplayer RTS.
- Watch teammates or agents move across tasks live.
- Cluster sessions, delegate, pivot, and iterate together.
- Keep sessions cooking on the go โ mobile-optimized UI for sending prompts and monitoring progress.
- Access conversations, send follow-ups, and check agent status from your phone.
- Full conversation view with hamburger navigation to switch between sessions.
Your team has 3 bug fixes and 2 features in flight. With Agor:
- Create 5 worktrees, each linked to its GitHub issue/PR
- Spawn AI sessions for each worktree (Claude, Codex, Gemini)
- Drop into zones โ "Analyze" zone triggers:
"Review this issue: {{ worktree.issue_url }}" - Watch in real-time as all 5 agents work simultaneously on the spatial canvas
- Isolated environments with unique ports prevent conflicts
- Push directly from worktrees to GitHub when ready
No context switching. No port collisions. No waiting.
graph TB
subgraph Clients
CLI["CLI (oclif)"]
UI["Web UI (React)"]
end
Client["Feathers Client<br/>REST + WebSocket"]
subgraph "Agor Daemon"
Feathers["FeathersJS Server"]
MCP["MCP HTTP Endpoint<br/>/mcp?sessionToken=..."]
Services["Services<br/>Sessions, Tasks, Messages<br/>Boards, Worktrees, Repos"]
AgentSDKs["Agent SDKs<br/>Claude, Codex, Gemini"]
ORM["Drizzle ORM"]
end
subgraph Storage
DB[("LibSQL Database<br/>~/.agor/agor.db")]
Git["Git Worktrees<br/>~/.agor/worktrees/"]
Config["Config<br/>~/.agor/config.yaml"]
end
CLI --> Client
UI --> Client
Client <-->|REST + WebSocket| Feathers
Feathers --> Services
Feathers --> MCP
MCP --> Services
Services --> ORM
Services --> AgentSDKs
AgentSDKs -.->|JSON-RPC 2.0| MCP
ORM --> DB
Services --> Git
Services --> Config
Quick start (localhost):
# Terminal 1: Daemon
cd apps/agor-daemon && pnpm dev # :3030
# Terminal 2: UI
cd apps/agor-ui && pnpm dev # :5173Or use Docker:
docker compose upHighlights:
- Match CLI-Native Features โ SDKs are evolving rapidly and exposing more functionality. Push integrations deeper to match all key features available in the underlying CLIs
- Bring Your Own IDE โ Connect VSCode, Cursor, or any IDE directly to Agor-managed worktrees via SSH/Remote
- Unix User Integration โ Enable true multi-tenancy with per-user Unix isolation for secure collaboration. Read the exploration โ
Heavily prompted by @mistercrunch (Preset, Apache Superset, Apache Airflow), built by an army of Claudes.
Read the story: Making of Agor โ













