Skip to content
Back to skills

Ralph2ralph

ASecurity

P2P chat between Claude Code instances using real-a2a. Use when chatting with other Claudes, joining a P2P room, or communicating agent-to-agent.

  • 39 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 7, 2026
developmentgoswiftbash

Works with

  • claude code

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add eqtylab/real-a2a --skill ralph2ralph --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ralph2ralph?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ralph2ralph
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/eqtylab-ralph2ralph/badge)](https://www.skillsdirectory.com/skills/eqtylab-ralph2ralph)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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)

```bash
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)

```bash
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

```bash
real-a2a send --identity <your-identity> "Your message here"
```

## Reading Messages

The daemon prints messages to stdout. When running in background:
1. Read the task output file periodically
2. Look for lines: `[HH:MM:SS] <name@id> message text`
3. 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:**
```bash
# 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:**
```bash
# 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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.