From aradotso-trending-skills-37
Enables multiple Claude Code instances on the same machine to discover peers and exchange real-time messages via local broker daemon and MCP server. Useful for coordinating multi-agent sessions.
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-1 --plugin aradotso-trending-skills-37This skill uses the workspace's default tool permissions.
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Skill by ara.so — Daily 2026 Skills collection.
claude-peers is an MCP server that lets multiple Claude Code instances running on the same machine discover each other and exchange messages in real-time. A local broker daemon (SQLite + HTTP on localhost:7899) handles peer registration and message routing; each session's MCP server pushes inbound messages directly into the Claude channel so they appear instantly.
git clone https://github.com/louislva/claude-peers-mcp.git ~/claude-peers-mcp
cd ~/claude-peers-mcp
bun install
claude mcp add --scope user --transport stdio claude-peers -- bun ~/claude-peers-mcp/server.ts
Adjust the path if you cloned elsewhere.
claude --dangerously-skip-permissions --dangerously-load-development-channels server:claude-peers
Add a shell alias to avoid typing it every time:
# ~/.bashrc or ~/.zshrc
alias claudepeers='claude --dangerously-load-development-channels server:claude-peers'
The broker daemon starts automatically on first use. No manual daemon management needed.
┌───────────────────────────┐
│ broker daemon │
│ localhost:7899 + SQLite │
└──────┬───────────────┬────┘
│ │
MCP server A MCP server B
(stdio) (stdio)
│ │
Claude A Claude B
server.ts MCP process over stdioclaude/channel protocol for instant delivery| Tool | Description |
|---|---|
list_peers | Discover other Claude Code instances; scope: machine, directory, or repo |
send_message | Send a message to a peer by ID — delivered instantly via channel push |
set_summary | Set a description of what this instance is working on |
check_messages | Manually poll for messages (fallback without channel mode) |
List all peers on this machine
Send a message to peer abc123: "what files are you editing right now?"
Set your summary to: "refactoring the authentication module"
Check for any new messages from peers
Inspect and interact with the broker directly from the terminal:
cd ~/claude-peers-mcp
# Show broker status and all registered peers
bun cli.ts status
# List peers in a table
bun cli.ts peers
# Send a message into a specific Claude session
bun cli.ts send <peer-id> "your message here"
# Stop the broker daemon
bun cli.ts kill-broker
Set these environment variables before starting Claude Code:
| Variable | Default | Description |
|---|---|---|
CLAUDE_PEERS_PORT | 7899 | Port the broker listens on |
CLAUDE_PEERS_DB | ~/.claude-peers.db | Path to the SQLite database |
OPENAI_API_KEY | — | Enables auto-summary via gpt-4o-mini on startup |
export CLAUDE_PEERS_PORT=7899
export CLAUDE_PEERS_DB=~/.claude-peers.db
export OPENAI_API_KEY=$OPENAI_API_KEY # optional — enables auto-summary
With OPENAI_API_KEY set, each instance generates a brief summary on startup describing what you're likely working on (based on working directory, git branch, recent files). Other peers see this in list_peers output. Without the key, Claude sets its own summary via set_summary.
Start two sessions in different project directories:
# Terminal 1 — in ~/projects/backend
claudepeers
# Terminal 2 — in ~/projects/frontend
claudepeers
Ask Claude in Terminal 1:
List peers scoped to machine, then ask the peer in the frontend project what API endpoints it needs
List peers scoped to repo
Shows only instances running in the same git repository — useful when you have worktrees or split terminals on the same codebase.
# Inject a task into a running Claude session from a shell script
PEER_ID=$(bun ~/claude-peers-mcp/cli.ts peers | grep 'backend' | awk '{print $1}')
bun ~/claude-peers-mcp/cli.ts send "$PEER_ID" "run the test suite and report failures"
If you launch without --dangerously-load-development-channels, Claude can still receive messages by calling check_messages explicitly:
Check for any new peer messages
Broker not starting
# Check if something is already on port 7899
lsof -i :7899
# Kill a stuck broker and restart
bun ~/claude-peers-mcp/cli.ts kill-broker
# Then relaunch Claude Code
Peers not appearing in list_peers
--dangerously-load-development-channels server:claude-peersCLAUDE_PEERS_PORT (default 7899)bun cli.ts status to verify the broker sees both registrationsMessages not arriving instantly
check_messages tool if channels are unavailableAuto-summary not generating
OPENAI_API_KEY is exported in the shell where Claude Code was launched: echo $OPENAI_API_KEYgpt-4o-mini; confirm your key has accessDatabase issues
# Reset the database entirely (all peers/messages lost)
rm ~/.claude-peers.db
bun ~/claude-peers-mcp/cli.ts kill-broker
MCP server not found after registration
# Verify registration
claude mcp list
# Re-register if missing
claude mcp add --scope user --transport stdio claude-peers -- bun ~/claude-peers-mcp/server.ts