Awesome-openclaw-skills clawdlink
Encrypted Clawdbot-to-Clawdbot messaging. Send messages to friends' Clawdbots with end-to-end encryption.
install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/clawdlink" ~/.claude/skills/sundial-org-awesome-openclaw-skills-clawdlink && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/clawdlink" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-clawdlink && rm -rf "$T"
manifest:
skills/clawdlink/SKILL.mdsource content
ClawdLink
Encrypted peer-to-peer messaging between Clawdbots via central relay.
Installation
cd ~/clawd/skills/clawdlink npm install node scripts/install.js # Adds to HEARTBEAT.md node cli.js setup "Your Name"
Quick Start for Clawdbot
Use the handler for JSON output:
node handler.js <action> [args...]
Core Actions
| Action | Usage |
|---|---|
| Poll for messages and requests |
| |
| |
| |
| Get your friend link |
| List friends |
| Get status |
Preference Actions
| Action | Usage |
|---|---|
| Show all preferences |
| / |
| / |
| / / |
Delivery Preferences
Users control how they receive messages:
Quiet Hours
node handler.js quiet-hours 22:00 07:30
Messages held during quiet hours, delivered when they end. Urgent messages still come through.
Batch Delivery
node handler.js batch on node handler.js preferences set schedule.batchDelivery.times '["09:00","18:00"]'
Non-urgent messages batched and delivered at set times.
Communication Tone
node handler.js tone casual
Options:
natural, casual, formal, brief
Per-Friend Settings
node handler.js preferences set friends."Sophie Bakalar".priority high node handler.js preferences set friends."Sophie Bakalar".alwaysDeliver true
Message Metadata
When sending, include context:
node handler.js send "Sophie" "Need to discuss budget" --urgent --context=work
Options:
— Bypasses quiet hours and batching--urgent
— Low priority, always batchable--fyi
— Helps with batching decisions--context=work|personal|social
Conversation Patterns
Setting preferences
User: "Set quiet hours from 10pm to 8am" Action:
node handler.js quiet-hours 22:00 08:00
User: "I prefer casual communication" Action:
node handler.js tone casual
User: "Batch my ClawdLink messages and deliver at 9am and 6pm" Action:
node handler.js batch on node handler.js preferences set schedule.batchDelivery.times '["09:00","18:00"]'
User: "Always let messages from Sophie through" Action:
node handler.js preferences set friends."Sophie".alwaysDeliver true
Sending with context
User: "Tell Matt I need the files urgently" Action:
node handler.js send "Matt" "I need the files" --urgent --context=work
Preferences Schema
{ "schedule": { "quietHours": { "enabled": true, "start": "22:00", "end": "08:00" }, "batchDelivery": { "enabled": false, "times": ["09:00", "18:00"] }, "timezone": "America/Los_Angeles" }, "delivery": { "allowUrgentDuringQuiet": true, "summarizeFirst": true, "includeContext": true }, "style": { "tone": "natural", "greetingStyle": "friendly" }, "friends": { "Sophie Bakalar": { "priority": "high", "alwaysDeliver": true } } }
Data Storage
~/.clawdbot/clawdlink/
— Keypairidentity.json
— Display nameconfig.json
— Friends with shared secretsfriends.json
— Delivery preferencespreferences.json
— Messages waiting for deliveryheld_messages.json
— Friend requestspending_requests.json
Auto-Polling
heartbeat.js runs on each Clawdbot heartbeat:
- Polls relay for messages/requests
- Applies delivery preferences
- Holds messages during quiet hours
- Delivers batched messages at scheduled times
- Outputs formatted text when there's something to deliver
Security
- E2E encrypted — XChaCha20-Poly1305
- Ed25519 signatures — Sender verification
- X25519 key exchange — Shared secrets
- 7-day TTL — Messages auto-expire