Cue and OpenClaw use separate WhatsApp config files. Cue reads
~/.cue/config.json or ~/.cue/agents/<agent>/agent.json. OpenClaw uses ~/.openclaw/.Before You Start
- You need WhatsApp on your phone.
- Cue WhatsApp runtime runs inside the background worker for the target agent.
- WhatsApp setup is split into two steps:
- non-interactive config with
cue whatsapp setup - interactive QR device link with
cue whatsapp login
- non-interactive config with
Fastest Setup
Replace<agent> with the agent you actually run.
If you already use a local dev agent such as main-localhost, use that same agent here.
whatsapp statusshowsenabled: trueandlinked: truechannel statusshows WhatsApprunning: true
Step 1: Configure Cue
The setup command is the recommended config path because it:- writes agent-scoped config
- normalizes phone numbers and chat JIDs
- enables WhatsApp without requiring manual JSON edits
Non-Interactive CLI
Fastest first test:Equivalent agent.json
If you prefer to inspect or edit the config directly, Cue writes agent-scoped config into ~/.cue/agents/<agent>/agent.json.
Open DM test setup:
enabled: true alone is not enough. dm.policy and group.policy default to disabled unless you set them.
Step 2: Link WhatsApp
The config step is non-interactive. The device link step is not. Run:- Open WhatsApp
- Go to
Settings - Open
Linked Devices - Tap
Link a Device - Scan the QR code from the terminal
cue --agent <agent> whatsapp login --json again.
Step 3: Validate the Runtime
Use these checks:Step 4: Test Messaging
The simplest DM test is your self-chat:- Open
Message yourselfin WhatsApp - Send
hello - Wait for Cue to reply
- your own messages appear on the right
- Cue replies also appear on the right because they are sent from your linked account
- Cue prefixes self-chat replies such as
[Cue]so they are easier to distinguish
Group Setup
Start with self-chat first. When that works:- mentioning your linked WhatsApp account, or
- replying to one of the account’s previous messages
Troubleshooting
whatsapp statusshowsenabled: truebutlinked: false: Runcue --agent <agent> whatsapp login --jsonand scan a fresh QR code.channel statussays WhatsApp is not running: Runcue --agent <agent> client restart --json. The worker may still be running with old config.channel statusbriefly showsruntime_not_initializedright after restart: Wait a moment and runcue --agent <agent> channel status --provider whatsapp --jsonagain. The worker may still be starting the provider runtime.- QR expired before linking completed:
Start the phone camera inside WhatsApp
Linked Devices, then reruncue --agent <agent> whatsapp login --json. - Cue replies appear on the right side of WhatsApp: That is expected. Cue sends through your linked WhatsApp account, not through a separate bot identity.
- Self-chat works but group messages do not:
Check
group.policy, and make sure you mentioned the linked account or replied to one of its messages.