0protocol
FreeAgents can sign plugins, rotate credentials without losing identity, and publicly attest to behavior.
The English summary is being prepared. Showing the original description.
WhatsApp bridge for OpenClaw — send/receive messages, auto-reply agents, QR pairing, message search, contact sync
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
WhatsApp bridge that connects OpenClaw agents to WhatsApp. Send messages, auto-reply to DMs with AI, search message history, and sync contacts — all from a single Go binary.
# Check status
openclaw-whatsapp status
# Send a message
openclaw-whatsapp send "NUMBER@s.whatsapp.net" "Your message"
# View logs (if running as service)
journalctl --user -u openclaw-whatsapp.service -f
# View worker logs
tail -f /tmp/openclaw-wa-agent/worker.log
Follow these steps to set up WhatsApp auto-reply from scratch.
curl -fsSL https://raw.githubusercontent.com/0xs4m1337/openclaw-whatsapp/main/install.sh | bash
Verify installation:
openclaw-whatsapp version
which openclaw
# Example output: /home/USER/.nvm/versions/node/v22.22.0/bin/openclaw
Save this path — you'll need it in Step 4.
Copy scripts from this skill directory:
SKILL_DIR="$(dirname "$(realpath "$0")")" # or use absolute path to skill
# Copy scripts
sudo cp "$SKILL_DIR/scripts/wa-notify.sh" /usr/local/bin/wa-notify.sh
sudo cp "$SKILL_DIR/scripts/wa-notify-worker.sh" /usr/local/bin/wa-notify-worker.sh
sudo chmod +x /usr/local/bin/wa-notify.sh /usr/local/bin/wa-notify-worker.sh
Or if running as agent, use the skill directory path directly:
cp ~/clawd/skills/openclaw-whatsapp/scripts/wa-notify.sh /usr/local/bin/
cp ~/clawd/skills/openclaw-whatsapp/scripts/wa-notify-worker.sh /usr/local/bin/
chmod +x /usr/local/bin/wa-notify.sh /usr/local/bin/wa-notify-worker.sh
Edit /usr/local/bin/wa-notify-worker.sh and update the PATH line with your openclaw binary path from Step 2:
# Find this line near the top:
export PATH="/home/oussama/.nvm/versions/node/v22.22.0/bin:$PATH"
# Change it to your actual path:
export PATH="/home/YOUR_USER/.nvm/versions/node/vXX.XX.X/bin:$PATH"
Also update the worker script path in /usr/local/bin/wa-notify.sh:
# Find this line near the bottom:
nohup /home/oussama/dev/openclaw-whatsapp/scripts/wa-notify-worker.sh
# Change to:
nohup /usr/local/bin/wa-notify-worker.sh
mkdir -p ~/.openclaw-whatsapp
cat > ~/.openclaw-whatsapp/config.yaml << 'EOF'
port: 8555
data_dir: ~/.openclaw-whatsapp
auto_reconnect: true
reconnect_interval: 30s
log_level: info
agent:
enabled: true
mode: "command"
command: "/usr/local/bin/wa-notify.sh '{name}' '{message}' '{chat_jid}' '{message_id}'"
ignore_from_me: true
dm_only: true
timeout: 30s
system_prompt: |
You are a helpful WhatsApp assistant. Be concise and natural.
EOF
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/openclaw-whatsapp.service << 'EOF'
[Unit]
Description=OpenClaw WhatsApp Bridge
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/openclaw-whatsapp start -c %h/.openclaw-whatsapp/config.yaml
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable openclaw-whatsapp.service
systemctl --user start openclaw-whatsapp.service
openclaw-whatsapp statushttp://localhost:8555/qrSend a WhatsApp message to the linked number from another phone. Check:
# Bridge logs
journalctl --user -u openclaw-whatsapp.service -n 20
# Worker logs
cat /tmp/openclaw-wa-agent/worker.log
WhatsApp DM → Bridge → wa-notify.sh (enqueue)
→ wa-notify-worker.sh (background, file-locked)
→ Fetches last 10 messages for context
→ openclaw agent (processes message)
→ openclaw-whatsapp send <JID> <reply>
→ WhatsApp reply sent
Key features:
Edit ~/.openclaw-whatsapp/config.yaml and update the system_prompt field:
agent:
system_prompt: |
You are a sales assistant for Acme Corp.
Be friendly and professional.
When someone wants to book a demo:
- Book via: mcporter call composio.GOOGLECALENDAR_CREATE_EVENT ...
- Notify team via: message action=send channel=telegram target=CHAT_ID ...
Restart after changes:
systemctl --user restart openclaw-whatsapp.service
Restrict which numbers the agent responds to:
agent:
allowlist: ["971586971337"] # only these (empty = all)
blocklist: ["spammer123"] # never these
openclaw-whatsapp start [-c config.yaml] # Start the bridge
openclaw-whatsapp status [--addr URL] # Check connection status
openclaw-whatsapp send NUMBER MESSAGE # Send a message
openclaw-whatsapp stop # Stop the bridge
openclaw-whatsapp version # Print version
| Problem | Solution |
|---|---|
| QR expired | Refresh http://localhost:8555/qr — auto-refreshes every 3s |
| Bridge disconnected | openclaw-whatsapp status; auto-reconnects by default |
| Agent not replying | Check /tmp/openclaw-wa-agent/worker.log for errors |
| "stream replaced" errors | Multiple bridge instances — ensure only one runs (systemctl --user status openclaw-whatsapp + pgrep openclaw-whatsapp) |
| "openclaw: not found" | Edit wa-notify-worker.sh PATH to include openclaw binary |
| "not logged in" | Scan QR again — session expired |
| Path | Description |
|---|---|
~/.openclaw-whatsapp/config.yaml | Bridge configuration |
~/.openclaw-whatsapp/messages.db | SQLite message store |
~/.openclaw-whatsapp/sessions/ | WhatsApp session data |
/tmp/openclaw-wa-agent/queue.jsonl | Message queue |
/tmp/openclaw-wa-agent/worker.log | Worker logs |
/tmp/openclaw-wa-agent/seen_message_ids.txt | Deduplication list |
| Method | Path | Description |
|---|---|---|
GET | /status | Connection status |
GET | /qr | QR code page |
POST | /send/text | Send message {"to": "...", "message": "..."} |
GET | /chats | List all chats |
GET | /chats/{jid}/messages?limit=10 | Messages for a chat |
GET | /messages/search?q=keyword | Full-text search |
See references/api-reference.md for full API docs.
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Agents can sign plugins, rotate credentials without losing identity, and publicly attest to behavior.
The English summary is being prepared. Showing the original description.
Query historical crypto market data from 0xArchive across Hyperliquid, Lighter.xyz, and HIP-3. Covers orderbooks, trades, candles, funding rates, open interest, liquidations, and data quality. Use when the user asks about crypto market data, orderbooks, trades, funding rates, or historical prices on Hyperliquid, Lighter.xyz, or HIP-3.
The English summary is being prepared. Showing the original description.
Calculate ROI for AI-as-a-Service (managed AI agents). Estimates cost savings, efficiency gains, and payback period for deploying AI agents across business operations. Use when evaluating whether managed AI agents make financial sense for a company.
The English summary is being prepared. Showing the original description.
Design, build, deploy, and operate production AI agent systems — single agents, multi-agent teams, and autonomous swarms. Complete methodology from agent architecture through orchestration, memory systems, safety guardrails, and operational excellence.
The English summary is being prepared. Showing the original description.
Design, build, test, document, and secure production-grade APIs. Covers the full lifecycle from schema design through deployment, monitoring, and versioning. Use when designing new APIs, reviewing existing ones, generating OpenAPI specs, building test suites, or debugging production issues.
The English summary is being prepared. Showing the original description.
Turn your AI agent into a business automation architect. Design, document, implement, and monitor automated workflows across sales, ops, finance, HR, and support — no n8n or Zapier required.
The English summary is being prepared. Showing the original description.