Team command center for all things agentic. A shared canvas where coding agents run in parallel on isolated Git Worktrees.
Agor is a team-level AI coding agent command center developed by the Preset team, led by Maxime Beauchemin (creator of Apache Superset and Apache Airflow). It provides a Figma-like 2D shared canvas where multiple coding agents—Claude Code, Codex, Gemini, OpenCode, Copilot—run in parallel on isolated Git Worktrees.
Three Foundational Concepts#
- Worktrees: Units of work. A Git Worktree anchored to the canvas with its own branch, isolated environment, and conversation.
- Sessions & Trees: Agent conversation lineage supporting Fork to explore alternatives and Spawn for subtask delegation.
- Boards & Zones: Drag a Worktree into a Zone to trigger templated Prompts.
Key Features#
- Real-time multi-user collaboration: Cursors, avatar stacking, spatial comments, shared multi-user terminals.
- Agor MCP Server: Each session auto-injects an MCP Token with 14 tools—"anything a user can do, an agent can do." Agents autonomously query/create sessions, manage worktrees, and delegate subtasks.
- Persistent Assistants: Long-lived AI companions with identity, memory, and skills, shareable across teams.
- Rich Chat UX: Per-prompt token/cost tracking, model/effort selectors, structured tool blocks, completion sounds.
- Scheduler: Cron-based templated prompt triggers for assistant heartbeats and automated audits.
- Message Gateway: Slack and GitHub as entry points for Agor sessions.
- Artifacts: Render live interactive apps on the canvas via Sandpack.
- Cards (Beta): General-purpose workflow entities for non-code workflows.
Architecture#
Agor uses a local-first daemon architecture with an Executor Isolation model: privileged daemon operations are separated from untrusted Agent SDK/CLI execution contexts. Executors run as independent child processes under isolated Unix users, communicating with the daemon via Session Tokens (UUID, 24h expiry) over Unix Socket + JSON-RPC 2.0.
The backend is built on FeathersJS (unified REST + WebSocket API) + Drizzle ORM + LibSQL/PostgreSQL, with 12 core services (sessions, tasks, messages, boards, worktrees, repos, users, mcp-servers, session-mcp-servers, context, terminals, health-monitor). The frontend uses React 18 + Vite + Ant Design + React Flow with real-time communication via Socket.IO. Build system: pnpm monorepo + Turborepo. Primary language: TypeScript (92.7%), requiring Node.js ≥ 22.12.
Installation#
npm global install (Node.js ≥ 22.12):
npm install -g agor-live
agor init # Creates ~/.agor/ and database
agor daemon start # Starts background daemon
agor open # Opens Web UI
Docker Compose:
git clone https://github.com/preset-io/agor.git
cd agor
docker compose up
Supports .agor.yml configuration variants (sqlite/postgres/full/docs). Team scaling options include PostgreSQL backend, Worktree-level RBAC, and Unix user isolation.
TypeScript Client Example#
import { createAgorClient } from '@agor-live/client';
const agor = createAgorClient({ url: 'http://localhost:3030' });
await agor.authenticate({ strategy: 'local', email, password });
const { data: worktrees } = await agor.service('worktrees').find({ query: { board_id: boardId } });
const session = await agor.service('sessions').create({ worktree_id: worktrees[0].id, agentic_tool: 'claude-code', initial_prompt: 'Add OAuth login' });
agor.service('messages').on('created', (msg) => console.log(`${msg.role}: ${msg.content}`));
Licensing#
Released under BSL 1.1 (Business Source License 1.1) with a change date of 2029-01-15, after which it automatically converts to Apache 2.0. Current latest version: agor-live v0.15.0. External API Token authentication is marked as a future addition.