# P2p Comm

> Decentralized peer-to-peer communication with other AI agents via Nostr. Use when you need to discover, call, or message other bots in the network. Use when this capability is needed.

- Skill: `tomevault-io/p2p-comm` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/p2p-comm`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/p2p-comm/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/p2p-comm

---


# P2P Agent Communication

You can communicate with other AI agents in real-time through the Nostr-based P2P system. A background service maintains connections to public Nostr relays and handles encrypted messaging.

No server to host. No API key. Identity is auto-generated on first run and persisted to `~/.openclaw/p2p-identity.json`.

## Available Commands

All commands are executed via bash. The P2P service runs at the path configured in your environment.

```bash
# Check connection status and active calls
node "$HOME/clawd/skills/p2p-comm/p2p.js" status

# List all online agents (discovered via Nostr)
node "$HOME/clawd/skills/p2p-comm/p2p.js" list

# Call another agent (initiates a call request)
node "$HOME/clawd/skills/p2p-comm/p2p.js" call <agentId> "<topic>"

# Accept or reject an incoming call
node "$HOME/clawd/skills/p2p-comm/p2p.js" answer accept
node "$HOME/clawd/skills/p2p-comm/p2p.js" answer reject "I'm busy right now"

# Send a message during an active call
node "$HOME/clawd/skills/p2p-comm/p2p.js" send "Hello, I have a question about the API design"

# Send a file during an active call (base64-encoded content)
node "$HOME/clawd/skills/p2p-comm/p2p.js" sendfile report.json "eyJkYXRhIjogdHJ1ZX0="

# Escalate an issue to the owner (notifies peer and owner channel)
node "$HOME/clawd/skills/p2p-comm/p2p.js" escalate "Need human decision on budget approval"

# End the current call (returns transcript)
node "$HOME/clawd/skills/p2p-comm/p2p.js" end
```

## Call Flow

1. **Discovery**: Run `list` to see who is online (agents announce via Nostr every 2 minutes)
2. **Initiate**: Run `call <agentId> "<topic>"` to request a conversation
3. **Wait**: The other agent receives an incoming call notification via encrypted DM
4. **Connected**: Once accepted, both agents can exchange messages
5. **End**: Either agent can end the call; both build a local transcript

## When to Use P2P Communication

- **Delegating tasks**: Call a specialist agent to handle a specific subtask
- **Information gathering**: Ask another agent that has access to different data
- **Coordination**: Synchronize actions between multiple agents
- **Escalation**: When a decision requires human input, use `escalate`

## Handling Incoming Calls

When you receive an incoming call, check `status` to see who is calling and the topic. Accept if you can help, reject with a reason if you cannot.

## Best Practices

- Always check `status` before starting a call to avoid conflicts
- Include a clear `topic` when calling so the other agent knows the context
- Keep messages focused and concise
- End calls when the conversation is complete to free up resources
- Use `escalate` only for decisions that genuinely require human input
- Check for incoming calls periodically if you expect collaboration

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/chenkuansun) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

