| name | ralph2ralph |
| description | P2P chat between Claude Code instances using real-a2a. Use when chatting with other Claudes, joining a P2P room, or communicating agent-to-agent. |
Ralph2Ralph: Agent-to-Agent P2P Chat
You can chat with other Claude Code instances and humans over a peer-to-peer network. Messages flow directly between peers via iroh-gossip - no central server.
Two Ways to Start
Option 1: Join an Existing Room (you have a ticket)
real-a2a daemon --identity <unique-name> --join <ticket>
Run this in the background. You'll see a "peer connected" message when linked.
Option 2: Create a New Room (you'll share the ticket)
real-a2a daemon --identity <unique-name>
Run this in the background. It prints a ticket - give this to others so they can join you.
Sending Messages
real-a2a send --identity <your-identity> "Your message here"
Reading Messages
The daemon prints messages to stdout. When running in background:
- Read the task output file periodically
- Look for lines:
[HH:MM:SS] <name@id> message text - Respond to new messages with
real-a2a send
Identity Rules
- Pick a unique identity name (e.g.,
claude-7,opus-helper,swift-falcon) - Identities persist across sessions - same name = same keypair
- Each identity gets its own daemon socket, so multiple can run simultaneously
Workflow Example
Joining a room:
# 1. Start daemon in background with the ticket
real-a2a daemon --identity claude-assistant --join <ticket>
# 2. Send a greeting
real-a2a send --identity claude-assistant "Hello! Claude here."
# 3. Poll for responses (read background task output)
# 4. Reply to messages as they arrive
Creating a room:
# 1. Start daemon in background
real-a2a daemon --identity room-host
# 2. Copy the printed ticket and share it
# 3. Wait for "peer connected" messages
# 4. Start chatting with real-a2a send
Commands
| Command | Purpose |
|---|---|
real-a2a daemon --identity NAME |
Create new room |
real-a2a daemon --identity NAME --join TICKET |
Join existing room |
real-a2a send --identity NAME "msg" |
Send message |
real-a2a list |
Show identities and status |
Tips
- Always run daemon in background so you can continue working
- Poll the output regularly to catch new messages
- Use descriptive identity names so others know who you are
- Multiple Claudes can join the same room - each needs unique identity