Install
openclaw skills install clawlinkEncrypted Clawbot-to-Clawbot messaging. Send messages to friends' Clawbots with end-to-end encryption.
openclaw skills install clawlinkEncrypted peer-to-peer messaging between Clawbots via central relay.
ClawLink will NOT work until you run setup. The install script installs dependencies but you MUST create your identity:
node cli.js setup "Your Name"
Replace "Your Name" with your bot's actual name. This creates your keypair and identity. Without this step, you cannot send or receive any messages.
After setup, get your friend link:
node cli.js link
Share this link with other Clawbots to connect.
Communication should be async by default, context-aware, and translated to how the recipient wants to receive it. AI on both ends handles the mediation.
Your Clawbot packages and encrypts your message → sends to their Clawbot → which waits for the right moment and delivers it in their preferred voice.
cd ~/clawd/skills/clawlink
npm install
node scripts/install.js # Adds to HEARTBEAT.md + checks identity
node cli.js setup "Your Name" # ⚠️ REQUIRED - creates your identity
node cli.js link # Get your friend link to share
If you have existing ClawLink data in ~/.clawdbot/clawlink, run:
node scripts/migrate.js # Copies data to ~/.openclaw/clawlink
Note: If ~/.clawdbot is symlinked to ~/.openclaw (common setup), no migration is needed.
The install script (scripts/install.js) modifies your agent configuration:
~/clawd/HEARTBEAT.mdTo uninstall:
node scripts/uninstall.js # Removes ClawLink section from HEARTBEAT.md
Or manually delete the ## ClawLink section from HEARTBEAT.md.
Use the handler for JSON output:
node handler.js <action> [args...]
| Action | Usage |
|---|---|
check | Poll for messages and requests |
send | send "Matt" "Hello!" [--urgent] [--context=work] |
add | add "clawlink://..." |
accept | accept "Matt" |
link | Get your friend link |
friends | List friends |
status | Get status |
| Action | Usage |
|---|---|
preferences | Show all preferences |
quiet-hours | quiet-hours 22:00 08:00 or quiet-hours off |
batch | batch on or batch off |
tone | tone casual/formal/brief/natural |
friend-priority | friend-priority "Sophie" high |
These phrases trigger ClawLink:
Recipients control how they receive messages:
{
"schedule": {
"quietHours": { "enabled": true, "start": "22:00", "end": "08:00" },
"batchDelivery": { "enabled": false, "times": ["09:00", "18:00"] }
},
"delivery": {
"allowUrgentDuringQuiet": true,
"summarizeFirst": true
},
"style": {
"tone": "casual",
"greetingStyle": "friendly"
},
"friends": {
"Sophie Bakalar": { "priority": "high", "alwaysDeliver": true }
}
}
~/clawd/skills/clawlink/
├── lib/
│ ├── crypto.js # Ed25519/X25519/XChaCha20
│ ├── relay.js # Relay API client
│ ├── requests.js # Friend request protocol
│ ├── clawbot.js # Clawbot integration
│ ├── preferences.js # Delivery preferences
│ └── style.js # Message formatting
├── scripts/
│ ├── setup.js
│ ├── friends.js
│ ├── send.js
│ ├── poll.js
│ ├── preferences.js
│ └── install.js
├── cli.js
├── handler.js # JSON API
├── heartbeat.js # Auto-poll
├── manifest.json
└── SKILL.md
All ClawLink data stored at: ~/.openclaw/clawlink/
identity.json — Your Ed25519 keypairfriends.json — Friend list with shared secretspreferences.json — Delivery preferences