Agor

repository·main·Indexed 23 days ago

https://github.com/preset-io/agor

A self-hosted, multiplayer web workspace and team command center for running coding agents on isolated git branches. Agor provides dedicated dev environments for AI teammates with conversation history, cost accounting, and an MCP surface that agents can drive themselves.

Tokens
288.8K
Snippets
389
Records
1.5K
Agent score
77%

What's inside agor

  1. Overview of agor-live features

    main

    Agor is a real-time collaborative platform designed as a multiplayer canvas for orchestrating AI coding sessions. Key capabilities include:

    • Multi-Agent Support: Orchestrate sessions with Claude Code, OpenAI Codex, and Google Gemini.
    • Git Integration: Manage workflows and branches directly within the platform.
    • Spatial Boards: Use a visual canvas to organize tasks and sessions.
    • Real-time Collaboration: Multiplayer features powered by WebSockets.
    • Task Tracking: Manage tasks using primitives that support genealogy (tracking task relationships).
    • MCP Integration: Manage Model Context Protocol (MCP) servers.
  2. Overview of Frontend design-system lint plugins

    main

    The agor-ui package uses GritQL plugins integrated with Biome to enforce design system consistency. These plugins prevent the use of hardcoded colors and unapproved first-party CSS, ensuring developers use the established theme tokens instead.

    Key characteristics:

    • Syntax-aware: Rules use Biome's parsed syntax rather than regex/grep, meaning comments, issue references, IDs, and hashes are correctly ignored.
    • Strictness: Diagnostics are treated as errors; new violations will cause pnpm lint to fail.
    • Scope: These plugins are scoped to agor-ui via its nested biome.json configuration.
  3. Overview of Agor Cloud

    main

    Agor Cloud is a fully managed service for Agor, designed to bridge the gap between a local development setup and a production-ready multi-agent environment. It provides a managed instance that handles the operational complexities of running Agor, such as stateful databases, user isolation, and resource containment.

    Key features include:

    • Bring Your Own Keys (BYOK): You provide your own API keys for providers like Claude, Codex, and Gemini. Agor Cloud does not proxy or mark up these tokens; you are billed directly by your providers.
    • Unix-Level User Isolation: Sessions, worktrees, and dev environments run as distinct Unix users to enforce filesystem boundaries and prevent cross-user interference.
    • Hardened Security: The service is pen-tested and designed for public internet access, including mobile use, without requiring a VPN.
    • Managed Private Cloud (MPC): For organizations with strict networking requirements, Agor can be deployed within your own AWS or GCP account, allowing for private network peering to your VPC.
    • Observability: Includes audit logs for session creation and prompt submissions, as well as multi-cast metrics (StatsD, Datadog, CloudWatch, Prometheus) and built-in resource dashboards.
  4. What Agor Does

    main

    Agor is a self-hosted, multiplayer-ready web workspace designed for running coding agents (like Claude Code, Codex, Gemini, etc.) on isolated git branches.

    Key features include:

    • Isolated Dev Environments: Automatic port assignment for dev servers per branch to prevent collisions.
    • Multi-runtime Support: Use different agent CLIs and SDKs interchangeably per session.
    • MCP-native: Exposes itself via Model Context Protocol (MCP), allowing agents to drive their own work, spawn sessions, and report progress.
    • Long-lived AI Teammates: Persistent AI coworkers with dedicated Knowledge-base namespaces for durable memory.
    • Governance: Branch-scoped RBAC/ACLs, per-user credentials, and per-prompt token/cost accounting.
    • Multiplayer: Optional live cursors, comments, and shared environments for team collaboration.
  5. Goals and Non-Goals of the Executor expansion

    main

    Goals

    • Single isolation boundary: All sandboxed or impersonated operations must go through the executor.
    • Remote execution ready: The executor must be capable of running in k8s pods, containers, or remote hosts.
    • Short-lived execution: Executors should be ephemeral and exit once the task is complete.
    • Type-safe private API: Use JSON payloads with shared TypeScript types.
    • Backward compatibility: The default configuration should maintain current behavior.
    • Storage flexibility: Separate daemon configuration from git data.

    Non-Goals

    • Long-lived executor pools: Connection pooling is not being pursued due to complexity.
    • Container-per-executor: This is considered too heavy for local development.
    • WebAssembly sandbox: WASM is not currently a target as SDKs are not yet available in WASM.
    • Breaking changes to public CLI: The agor CLI will remain the primary user-facing interface.
  6. Explore the Agor Repository Layout

    main

    The repository is organized into the following main directories:

    • apps/agor-daemon/: The FeathersJS backend providing REST, WebSocket, and MCP capabilities.
    • apps/agor-ui/: The React-based user interface (using Ant Design and React Flow).
    • apps/agor-cli/: The oclif-based command line interface.
    • apps/agor-docs/: The documentation site built with Nextra.
    • packages/core/: The @agor/core package containing shared types, Drizzle database schemas, git utilities, and API definitions.
    • packages/executor/: The process-isolated runtime for executing agents.
    • context/: Contains agent-oriented cheat sheets and design documentation.
  7. What Agor Cloud Offers

    main

    Agor Cloud is a managed service for Agor that removes the operational burden of self-hosting. It is designed for teams that need production-grade reliability, security, and observability without managing Docker configurations, database migrations, or capacity planning.

    Key features include:

    • Dedicated Agor instance: Includes your team's specific repositories and worktrees.
    • Bring-Your-Own-Key (BYOK): Direct access to AI models like Claude, Codex, and Gemini. There is no proxy, markup, or cutting of your keys; you maintain control over your AI spend.
    • Hardened Security: Pen-tested and hardened for the public internet (no VPN required) with Unix-level user isolation for defense-in-depth.
    • Managed Private Cloud: Provides private network access to your VPC, VPN, or own-cloud account.
    • Observability: Integrated audit logs and multi-cast metrics that work with your existing observability stack.
    • CI-Ready Sessions: Agent sessions persist and remain visible on your board, making them suitable for CI workflows.
    • Managed Infrastructure: Includes same-day patching, monitoring, capacity management, and support.
  8. Explore related concepts for Sessions & Trees

    main

    To better understand how Sessions and Trees function within Agor, you can explore these related architectural and UX concepts:

    • Branches: The parent container that holds sessions.
    • Agor MCP Server: The mechanism allowing agents to programmatically introspect and spawn other agents.
    • Rich Chat UX: Details on token accounting, context window visualization, tool blocks, and request queueing.
    • In-Conversation Widgets: Agent-rendered inline forms (e.g., for environment variables) that capture user input without injecting it into the model's context.
    • SDK Comparison: A guide to the feature support across different agent SDKs.
  9. Overview of the Agor MCP Server

    main

    The Agor MCP (Model Context Protocol) server is a built-in automation surface that allows agents to interact with Agor using structured JSON-RPC. It provides agents with the same capabilities available in the UI (sessions, branches, boards, zones, users, environments) and the agor CLI.

    Key characteristics:

    • Agents as first-class users: Every MCP tool wraps a FeathersJS service, meaning actions emit real-time events that the UI listens to.
    • Self-aware sessions: Sessions are auto-issued scoped MCP tokens, allowing agents to know their current context (session, branch, board).
    • Integrated: MCP is part of the Agor daemon; no separate installation or server is required.
    • Remote access: External agents can connect over HTTP to drive Agor.
  10. What is the Message Gateway?

    main

    The Message Gateway is a feature that connects external messaging platforms (currently Slack, GitHub, Shortcut, and Microsoft Teams) to Agor agent sessions. It allows you to turn chat threads, PR comments, or story comments into interactive portals for autonomous coding agents.

    When a message arrives (e.g., a Slack bot mention or a GitHub @agor mention), Agor:

    1. Authenticates the channel.
    2. Maps the platform thread to an existing Agor session or creates a new one on the channel's target branch.
    3. Sends the prompt to the configured agent.
    4. Routes the agent's response back to the original platform thread.

    Key Behaviors:

    • Slack: Requires an explicit @mention to start a session and to send subsequent prompts. When mentioned again, Agor automatically fetches intervening thread replies to provide context to the agent.
    • GitHub/Shortcut: Uses API polling (no public webhook required).
    • Slack: Uses Socket Mode (no public webhook required).
  11. Overview of the marketing screenshot demo route

    main

    The /demo/marketing-screenshots route is a specialized UI fixture used to generate marketing visuals. It is intentionally hardcoded and daemon-free to prevent fake state from leaking into production workspace paths.

    It uses real components but injects static data for elements that are difficult to produce deterministically, such as multiple logged-in users and remote cursors.

    Rendered Components:

    • Product Navbar: via AppHeader (includes board switcher, search, connection state, etc.).
    • Product Facepile: via GlobalPresenceFacepile / Facepile with 12 fixed demo users.
    • Product Board: via SessionCanvas (includes zone nodes, branch cards, markdown notes, and spatial comments).
    • Product Cursors: via RemoteCursorLayer with fixed demo cursor positions.