| name | claude-peers |
| description | Discover, message, and coordinate AI coding agents (Claude Code, Codex CLI) running on the same machine via a shared Unix socket broker backed by SQLite. Supports cross-session task delegation, peer summaries, and session lifecycle management. Triggers on 'peer agents', 'cross-session communication', 'message Codex', 'inter-agent messaging', 'coordinate agents'. |
| user-invocable | false |
claude-peers
Peer discovery and messaging network for AI coding agents on the same machine. A shared broker daemon listens on a Unix domain socket (~/.claude/run/claude-peers.sock), backed by SQLite, routing messages between Claude Code and Codex CLI sessions.
Client Types
| Client | Push notifications | Message delivery | Config |
|---|
| claude-code | Yes (claude/channel) | Instant — messages pushed into session | settings.json MCP entry |
| codex | No | Poll — must call check_messages each turn | ~/.codex/config.toml MCP entry |
| cli | No | Manual via bun ~/tools/claude-peers-mcp/cli.ts send <id> <msg> | N/A |
Workflow Patterns
Task delegation: Send a focused task description to a Codex or Claude peer via send_message. Include file paths, acceptance criteria, and which branch to work on. The receiving agent picks it up on its next turn.
Code review handoff: After completing work, message a peer with the diff summary and ask for review. The peer can respond with findings via send_message.
Parallel exploration: Multiple agents working the same repo can use set_summary to advertise what they're investigating, preventing duplicate work. Use list_peers with scope repo to see who else is in the same codebase.
Session lifecycle: Use kill_peer to terminate a stuck, unresponsive, or completed peer's agent session. This kills the parent process (e.g., the Codex CLI), not just the MCP subprocess, and cleans up the peer record.
CLI Reference
bun ~/tools/claude-peers-mcp/cli.ts status
bun ~/tools/claude-peers-mcp/cli.ts peers
bun ~/tools/claude-peers-mcp/cli.ts orphans
bun ~/tools/claude-peers-mcp/cli.ts cleanup
bun ~/tools/claude-peers-mcp/cli.ts send <id> <msg>
bun ~/tools/claude-peers-mcp/cli.ts kill <id>
bun ~/tools/claude-peers-mcp/cli.ts kill-broker
Message History
check_messages returns all recent messages (sent and received) with enrichment:
[claude-code] or [codex] client-type tags
- ISO timestamps
[NEW] marker for previously unseen messages
- Direction indicator (From/To) with peer summary or CWD
Messages persist across reads — calling check_messages multiple times still shows history. The /message-history broker endpoint is non-destructive.
Orphan Management
MCP server processes detect parent death via stdin close (immediate) and PPID monitoring (30s fallback). The broker's stale-peer sweep (every 30s) also detects orphaned processes (PPID=1) and terminates them.
For manual cleanup: bun cli.ts orphans lists and bun cli.ts cleanup kills orphaned processes.
Gotchas
- Codex sandbox: Codex's macOS seatbelt sandbox blocks socket
connect() in workspace-write mode. Codex sessions currently require --dangerously-bypass-approvals-and-sandbox or danger-full-access sandbox to reach the broker. This is a Codex sandbox limitation, not a peers issue — tracked at Codex issue #11095.
- Codex has no push: Codex agents must call
check_messages proactively — messages are invisible until polled.
- Permission allow-list:
mcp__claude-peers__send_message may not be in the auto-allow list. The user may need to approve it on first use or add it to settings.json permissions.
- Broker must be running: The broker is managed by launchd (
com.minoan.claude-peers-broker). If peers can't connect, check: launchctl list | grep claude-peers.
- Stale socket: If the broker crashes, the socket file persists. On restart, the broker detects and removes it automatically.
- TCP fallback: Set
CLAUDE_PEERS_TCP=1 in the broker's env to also listen on TCP port 7899. Clients use TCP when CLAUDE_PEERS_URL is set (e.g., CLAUDE_PEERS_URL=http://127.0.0.1:7899).