Show HN: Concord – let Claude Code, Codex and Cursor talk to each other Concord, an open-source, local-first communication layer for AI coding agents, lets Claude Code, Codex, Cursor, Gemini CLI, and Grok Build exchange live messages, claim files to avoid overlapping edits, and hand off tasks with evidence through a single MCP server. The tool, available via npm as @concord-ai/concord-mcp, sets up a shared workspace and registers the server across multiple agent clients, enabling agents in different harnesses to coordinate without human relay. Let Claude Code, Codex, Cursor, Gemini CLI, and Grok Build talk to each other. The open-source, local-first communication and coordination layer for AI coding agents. Send live messages across harnesses, detect overlapping work before agents edit, share decisions, and hand off tasks with evidence - through one MCP server. Demo see-it-work · Quick start quick-start · Supported agents supported-agents · Website https://getconcord.ai · Contributing /Get-Concord-AI/concord-mcp/blob/main/CONTRIBUTING.md Two agents in different harnesses can discover each other, exchange messages, and divide work without a human relaying context between them: Claude Code → Concord Claim src/app/page.tsx Codex → Concord Claim src/app/page.tsx Concord → Codex Overlap: Claude Code already owns this file Codex → Claude I'll take src/app/api instead. Does that work? Claude → Codex Yes. I'll keep the page and use your API contract. Run the real Claude Code ↔ Codex demo /Get-Concord-AI/concord-mcp/blob/main/examples/whack-a-mole to watch both agents resolve an overlapping claim through a live prompt/reply, build a playable app, transfer ownership, and hand the result to an independent reviewer. npm install -g @concord-ai/concord-mcp cd /path/to/your/repository concord setup Restart your agent clients, then ask two of them to work in the same repository. Concord gives them a shared workspace and makes reachable sessions available for direct prompts and replies. What concord setup changes concord setup creates the local .concord/ workspace, registers the MCP server for Claude, Cursor, Gemini, Grok, and Codex .mcp.json , .cursor/mcp.json , .gemini/settings.json , .grok/config.toml , and ~/.codex/config.toml and writes Concord's tool instructions into your client configs CLAUDE.md , AGENTS.md , .codex/ , .cursor/rules/ . It merges into existing config rather than replacing it and is safe to re-run. Setup also detects supported clients and attempts to install their global Concord adapters independently. Use --no-adapters to skip that step or --require-adapters in managed installs that should fail on degraded support. Pass --no-mcp to write only the workspace and instructions while managing MCP registration yourself. | Agent | Integration guide | |---|---| | Claude Code | | Setup and delivery /Get-Concord-AI/concord-mcp/blob/main/docs/codex.md Setup and delivery /Get-Concord-AI/concord-mcp/blob/main/docs/cursor.md Setup and delivery /Get-Concord-AI/concord-mcp/blob/main/docs/gemini-cli.md Setup and delivery /Get-Concord-AI/concord-mcp/blob/main/docs/grok-build.md There is no universal /concord slash command — commands are client-specific. Concord works through MCP tools plus the installed instructions on any MCP-capable client. Live delivery depends on the receiving harness and session state. Run concord adapters status to see which installed agents are reachable and how messages will be delivered. Messaging gets agents talking. Concord's shared work-state keeps the resulting collaboration reliable after the message is delivered. | Without Concord | With Concord | |---|---| | Agents cannot contact peers in another harness | Agents send direct, replyable prompts across supported clients | | Agents discover collisions after editing | Agents claim files and modules before work begins | | Context disappears when a session ends | Decisions, assumptions, and findings stay attached to the task | | Ownership is implied by chat history | Assignments and handoffs are explicit and acknowledged | | Humans reconstruct progress from branches and diffs | Review packets arrive with scope, tests, risks, and provenance | Concord is not another autonomous agent or orchestrator. It is the shared layer around your agents: presence, messaging, task memory, ownership, handoffs, and review state through one small MCP server. | Tool | Purpose | |---|---| start work | registers presence, claims or accepts one task, and reports scope overlaps before editing | inspect work | reads workspace/task state, an agent inbox/outbox, or a durable prompt/reply thread | update work | records task context or immediately prompts/replies to another promptable workspace agent | transfer work | assigns, accepts, declines, releases, reassigns, offers handoffs, or reopens versioned work | finish work | records evidence and optionally marks a task review-ready, complete, or closed | Writes accept an agent id , which keeps presence live just by working. inspect work shows who is here and flags stale claims — an active claim whose owning agent has gone away without handing off. For live agent-to-agent communication, run concord setup , then restart existing client sessions once. A prompt uses update work with operation: "prompt" , the target to agent id , content, and an idempotency key ; a reply uses operation: "reply" and reply to message id . A receipt-bearing adapter steers a busy turn or starts an idle turn. Hook-only integrations leave a durable pull message and state that limitation in the result. Delivery fails immediately when the named agent has no reachable endpoint; Concord does not silently reroute it. concord adapters status reports each harness separately, including its monitor/controller kind, verified reachability, required action, and version probe result. concord adapters install , doctor , and uninstall provide the same global lifecycle outside repository setup. Concord resolves the repository workspace automatically. Operations return its workspace id and repository root so a client can detect a misrouted call; the id can be passed explicitly when one server is coordinating multiple roots. Lifecycle-changing operations use the task's monotonic version as expected version . If two agents act on the same version, only the first transition succeeds. Assignment leaves work in assigned until the named agent uses transfer work with action: "accept" ; a handoff offer likewise keeps ownership with the sender until the recipient accepts. Every ownership change is retained in an append-only audit history. SQLite is the local source of truth, kept in the .concord/ at the root of the repo the work is happening in. The MCP server resolves that root from CONCORD REPO ROOT if set, then Claude Code's CLAUDE PROJECT DIR which Claude Code sets automatically, even for a user-scoped server , then its working directory — so every agent in one repo shares one store. Set CONCORD REPO ROOT when running the server somewhere its working directory is not inside the repo. Linked Git worktrees follow Git's commondir metadata to the primary checkout, so the main checkout and all linked worktrees intentionally share one Concord database and workspace id. To restrict explicit workspace selection, set CONCORD ALLOWED ROOTS to a path-delimited list of allowed repository roots. Without an allowlist, decoded roots must still exist and be directories. concord setup adds .concord/ to the repository's .gitignore , so the generated workspace stays local by default. Teams that want selected artifacts in PRs can remove that rule or force-add the human-readable files: .concord/ ├── concord.db local source of truth ├── HANDOFF.md human-readable handoff ├── REVIEW PACKET.md review-ready evidence └── WORK STATE.json generated export optional Concord supports both typed MCP tools and a regular CLI. MCP-capable agents can call the tools directly; humans and CLI-oriented agents can work with the same shared workspace through concord commands. concord setup set up local state, instructions, and MCP clients concord status roster, active work, overlaps, stale claims, review-ready concord dashboard live, keyboard-driven view of agents, tasks, alerts, and activity concord who which agents are present and what they are working on concord tasks list all tracked tasks concord handoff