← 返回
AI智能 中文

OpenClaw WhatsApp

WhatsApp bridge for OpenClaw — send/receive messages, auto-reply agents, QR pairing, message search, contact sync
OpenClaw 的 WhatsApp 桥接——收发消息、自动回复代理、二维码配对、消息搜索、联系人同步
0xs4m1337
AI智能 clawhub v0.3.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 3,972
下载
💾 120
安装
1
版本
#latest

概述

openclaw-whatsapp

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.

Quick Reference

# 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

Full Setup (Self-Service)

Follow these steps to set up WhatsApp auto-reply from scratch.

Step 1: Install the binary

curl -fsSL https://raw.githubusercontent.com/0xs4m1337/openclaw-whatsapp/main/install.sh | bash

Verify installation:

openclaw-whatsapp version

Step 2: Find your openclaw binary path

which openclaw
# Example output: /home/USER/.nvm/versions/node/v22.22.0/bin/openclaw

Save this path — you'll need it in Step 4.

Step 3: Install relay scripts

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

Step 4: Configure the worker script

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

Step 5: Create config file

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

Step 6: Create systemd service (recommended)

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

Step 7: Link WhatsApp

  1. Check bridge is running: openclaw-whatsapp status
  2. Open QR page: http://localhost:8555/qr
  3. On your phone: WhatsApp → Settings → Linked Devices → Link a Device
  4. Scan the QR code

Step 8: Test

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

Architecture

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

Customizing System Prompt

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

Allowlist / Blocklist

Restrict which numbers the agent responds to:

agent:
  allowlist: ["971586971337"]  # only these (empty = all)
  blocklist: ["spammer123"]     # never these

CLI Reference

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

Troubleshooting

ProblemSolution
-------------------
QR expiredRefresh http://localhost:8555/qr — auto-refreshes every 3s
Bridge disconnectedopenclaw-whatsapp status; auto-reconnects by default
Agent 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

Files

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

API Endpoints

MethodPathDescription
---------------------------
GET/statusConnection status
GET/qrQR code page
POST/send/textSend message {"to": "...", "message": "..."}
GET/chatsList all chats
GET/chats/{jid}/messages?limit=10Messages for a chat
GET/messages/search?q=keywordFull-text search

See references/api-reference.md for full API docs.

版本历史

共 1 个版本

  • v0.3.0 当前
    2026-03-29 00:01 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

content-creation

Demo Video Creator

0xs4m1337
通过自动化浏览器交互与捕获帧来创建产品演示视频。当用户需要录制Web应用的演示、操作指南、产品展示或交互视频时使用。支持通过Playwright CDP屏幕录制实现高质量捕获,并使用FFmpeg进行视频编码。
★ 10 📥 8,810
ai-intelligence

ontology

oswalpalash
类型化知识图谱,用于结构化智能体记忆与可组合技能。支持创建/查询实体(人员、项目、任务、事件、文档)及关联...
★ 710 📥 243,597
ai-intelligence

self-improving agent

pskoett
捕获经验教训、错误和纠正,以实现持续改进。使用时机:(1)命令或操作意外失败;(2)用户纠正……
★ 4,058 📥 796,991