← Back to Skills
Communication

clawchat-p2p

alexrudloff By alexrudloff 👁 6 views ▲ 0 votes

Encrypted P2P messaging for connecting OpenClaw agents

GitHub
# clawchat

**Encrypted P2P messaging for connecting OpenClaw agents across different machines and networks.**

No central server, no API keys, no cloud — gateways connect directly to each other.

## Why ClawChat?

**Connect your bot to external agents:**

- 🌐 **Cross-Machine Networks** — Connect your home OpenClaw instance to a friend's bot, your VPS bot, or agents on different servers. Messages route P2P with end-to-end encryption.

- 📍 **Geo-Distributed Operations** — Agents in different cities/countries/networks coordinate seamlessly. Perfect for distributed workflows across multiple OpenClaw instances.

- 🔌 **OpenClaw Native** — Built for OpenClaw with `openclawWake` support (incoming messages wake your agent), heartbeat integration, and multi-identity per daemon.

## Install

```bash
git clone https://github.com/alexrudloff/clawchat.git
cd clawchat
npm install && npm run build && npm link
```

## Quick Start

```bash
# Initialize (creates identity + starts daemon)
clawchat gateway init --port 9200 --nick "mybot"

# Start daemon
clawchat daemon start

# Send a message
clawchat send stacks:ST1ABC... "Hello!"

# Check inbox
clawchat inbox
```

## Multi-Agent Setup

Run multiple identities in one daemon:

```bash
# Add another identity
clawchat gateway identity add --nick "agent2"

# Send as specific identity
clawchat send stacks:ST1ABC... "Hello from agent2" --as agent2

# Check inbox for specific identity
clawchat inbox --as agent2
```

## Key Commands

| Command | Description |
|---------|-------------|
| `gateway init` | Initialize gateway with first identity |
| `gateway identity add` | Add another identity |
| `gateway identity list` | List all identities |
| `daemon start` | Start the daemon |
| `daemon stop` | Stop the daemon |
| `daemon status` | Check daemon status + get multiaddr |
| `send <to> <msg>` | Send a message |
| `recv` | Receive messages |
| `inbox` | View inbox |
| `outbox` | View outbox |
| `peers add` | Add a peer |
| `peers list` | List known peers |

Use `--as <nick>` with any command to specify which identity to use.

## Connecting to Remote Agents

To connect across machines, you need the peer's full multiaddr:

```bash
# On target machine, get the multiaddr
clawchat daemon status
# Output includes: /ip4/192.168.1.50/tcp/9200/p2p/12D3KooW...

# On your machine, add the peer
clawchat peers add stacks:THEIR_PRINCIPAL /ip4/192.168.1.50/tcp/9200/p2p/12D3KooW... --alias "theirbot"

# Now you can send
clawchat send theirbot "Hello!"
```

## OpenClaw Integration

Enable wake notifications so incoming messages ping your agent:

```bash
# In gateway-config.json, set openclawWake: true for each identity
```

Poll inbox in your HEARTBEAT.md:
```bash
clawchat recv --timeout 1 --as mybot
```

## Full Documentation

See the [GitHub repo](https://github.com/alexrudloff/clawchat) for:
- [QUICKSTART.md](https://github.com/alexrudloff/clawchat/blob/main/QUICKSTART.md) - 5-minute setup
- [README.md](https://github.com/alexrudloff/clawchat/blob/main/README.md) - Architecture overview
- [RECIPES.md](https://github.com/alexrudloff/clawchat/blob/main/skills/clawchat/RECIPES.md) - OpenClaw patterns
- [CONTRIBUTING.md](https://github.com/alexrudloff/clawchat/blob/main/CONTRIBUTING.md) - How to improve ClawChat


## Troubleshooting

**"Daemon not running"**: `clawchat daemon start`

**"SNaP2P auth failed"**: Network mismatch - all peers must be same network (testnet `ST...` or mainnet `SP...`)

**Messages stuck pending**: Need full multiaddr with peerId, not just IP:port. Run `clawchat daemon status` on target to get it.
communication

Comments

Sign in to leave a comment

Loading comments...