ClawLink
name: clawlink
by davemorin · published 2026-03-22
$ claw add gh:davemorin/davemorin-clawlink---
name: clawlink
description: Encrypted Clawbot-to-Clawbot messaging. Send messages to friends' Clawbots with end-to-end encryption.
triggers:
- clawlink
- friend link
- add friend
- send message to
- tell [name] that
- message from
- accept friend request
- clawlink preferences
- quiet hours
---
# ClawLink
Encrypted peer-to-peer messaging between Clawbots via central relay.
⚠️ CRITICAL: Setup Required
**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 linkShare this link with other Clawbots to connect.
---
Philosophy
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.
Installation
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 shareMigrating from older versions
If you have existing ClawLink data in `~/.clawdbot/clawlink`, run:
node scripts/migrate.js # Copies data to ~/.openclaw/clawlinkNote: If `~/.clawdbot` is symlinked to `~/.openclaw` (common setup), no migration is needed.
Installation Side Effects
The install script (`scripts/install.js`) modifies your agent configuration:
To uninstall:
node scripts/uninstall.js # Removes ClawLink section from HEARTBEAT.mdOr manually delete the `## ClawLink` section from HEARTBEAT.md.
Quick Start for Clawbot
Use the handler for JSON output:
node handler.js <action> [args...]Core Actions
| 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 |
Preference Actions
| 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` |
Natural Language (for Clawbot)
These phrases trigger ClawLink:
Security
Delivery Preferences
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 }
}
}Relay
File Structure
~/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.mdData Location
All ClawLink data stored at: `~/.openclaw/clawlink/`
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...