Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
WhatsApp bridge for OpenClaw — send/receive messages, auto-reply agents, QR pairing, message search, contact sync
WhatsApp bridge for OpenClaw — send/receive messages, auto-reply agents, QR pairing, message search, contact sync
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
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
Check bridge is running: openclaw-whatsapp status Open QR page: http://localhost:8555/qr On your phone: WhatsApp → Settings → Linked Devices → Link a Device Scan the QR code
Send 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: Fast enqueue — bridge doesn't wait for agent processing Deduplication — message IDs tracked to prevent double-replies Single worker — file-locked, sequential processing, no race conditions Crash resilience — queue persists across restarts
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
ProblemSolutionQR expiredRefresh http://localhost:8555/qr — auto-refreshes every 3sBridge disconnectedopenclaw-whatsapp status; auto-reconnects by defaultAgent not replyingCheck /tmp/openclaw-wa-agent/worker.log for errors"stream replaced" errorsMultiple 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
PathDescription~/.openclaw-whatsapp/config.yamlBridge configuration~/.openclaw-whatsapp/messages.dbSQLite message store~/.openclaw-whatsapp/sessions/WhatsApp session data/tmp/openclaw-wa-agent/queue.jsonlMessage queue/tmp/openclaw-wa-agent/worker.logWorker logs/tmp/openclaw-wa-agent/seen_message_ids.txtDeduplication list
MethodPathDescriptionGET/statusConnection statusGET/qrQR code pagePOST/send/textSend message {"to": "...", "message": "..."}GET/chatsList all chatsGET/chats/{jid}/messages?limit=10Messages for a chatGET/messages/search?q=keywordFull-text search See references/api-reference.md for full API docs.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.