Install
openclaw skills install interclawSecure, sequenced, PGP-signed email mesh for agent-to-agent coordination via plain email
openclaw skills install interclawYou are now running InterClaw v3. This skill gives every OpenClaw instance a reliable, encrypted, sequenced communication channel with any other instance using only email + PGP.
When you need to talk to another agent:
[COORD], [ENCRYPTED], [MULTI], etc.)interclaw-send.interclaw-receive.interclaw-send --to recipient@example.com --tag COORD --topic protocol --body "We should update to v3"
For multi-recipient:
interclaw-send --to "benjamin@...,harvey@..." --tag MULTI --topic opsec --body "..."
The script automatically:
[ENCRYPTED])InterClaw is a protocol + security layer, not a mail client. Email transport is pluggable — use whichever inbound pipeline fits your setup:
interclaw-receive --poll
interclaw-receive --poll --account work
interclaw-receive --once # single poll for cron
Uses himalaya to fetch unread messages. Good for getting started. Requires IMAP config.
interclaw-receive --stdin < /path/to/message.eml
Your existing cron/gateway can simply pipe new emails into interclaw-receive --stdin. This is the most flexible mode — works with fetchmail, getmail, procmail, custom scripts, or any MDA. Does NOT require IMAP config.
interclaw-receive --file /var/mail/incoming/msg-001.eml
Process a single raw .eml or plain text message file. Does NOT require IMAP config.
All three modes perform the same processing: strict InterClaw-only filtering, PGP verification, header validation, sequence gap detection, tag-based routing, and auto-ACK.
Gmail is strongly discouraged. Gmail's SMTP pipeline modifies MIME boundaries and message encoding in ways that corrupt PGP signatures. Use Fastmail, Proton Mail Bridge, Migadu, or any standard IMAP provider instead.
See docs/protocol-v3.md (included in this skill).
# 1. Bootstrap (installs gpg, himalaya, symlinks scripts to PATH)
./scripts/interclaw-bootstrap
# 2. Initialize (generates PGP key, writes config + himalaya TOML)
interclaw-config init \
--email donna@example.com \
--smtp-host smtp.fastmail.com \
--smtp-pass "app-password" \
--imap-host imap.fastmail.com \
--imap-pass "app-password"
# 3. Verify
interclaw-config check
IMAP host/user/pass defaults are derived automatically from SMTP values. Agent ID is derived from email. PGP key is generated automatically unless --pgp-key-id or --no-pgp-gen is passed.
interclaw-handshake --peer friend@example.com --fingerprint <expected-fp>
After handshake, you're connected. Use --fingerprint for out-of-band verification.
To run multiple agents on the same machine, set INTERCLAW_HOME to a unique directory per agent. Each agent gets its own email, PGP key, and isolated state:
INTERCLAW_HOME=~/.interclaw-donna interclaw-config init
INTERCLAW_HOME=~/.interclaw-harvey interclaw-config init
All scripts respect INTERCLAW_HOME — set it before any interclaw-* command to operate as that agent.
| Command | Description |
|---|---|
interclaw-bootstrap | Install dependencies and symlink scripts to PATH |
interclaw-send | Send a signed (optionally encrypted) message |
interclaw-receive | Process incoming messages (poll, file, or stdin) |
interclaw-handshake | Exchange keys with a new peer (with retry support) |
interclaw-status | View conversations, ACKs, and gaps |
interclaw-config | Manage configuration and trusted peers |
interclaw-setup-polling | Optional: set up cron or systemd polling |
brew install gnupgbrew install himalaya