wacli — Claude Code skill: what it does, how to install
Enables your coding agent to send WhatsApp messages to third parties, search conversation history, and backfill chat archives using the wacli tool.
npx skills add openclaw/openclaw --skill wacli -a claude-codeWhat wacli does
This skill integrates the wacli command-line utility into your agent workflow. It handles targeted operational tasks: messaging external contacts, sending PDF attachments, querying message logs across date ranges, and syncing archives. The tool is reserved for third parties. OpenClaw handles regular user conversations automatically.
The workflow enforces strict safety boundaries. Your agent must confirm the recipient and exact message text before sending anything. Direct chats use <number>@s.whatsapp.net identifiers, while group chats use <id>@g.us. For multiline text formatting, the tool applies --message-escapes.
Running these commands requires the wacli binary installed via Homebrew or Go. Session files reside in ~/.wacli by default. Initial login requires a QR scan via wacli auth. Backfilling chat history requires your phone to stay online.
What it helps with
- Send WhatsApp text messages and attachments to direct contacts or group chats
- Search message history using search queries and date filters
- Backfill message archives for specific chat JIDs
- Inspect stored messages and JSON output for formatting verification
Example prompts for the agent
- Search WhatsApp messages for "invoice" between 2025-01-01 and 2025-12-31
- Send /path/agenda.pdf to +14155551212 with the caption "Agenda" via wacli
- Run wacli doctor and list the last 20 chats matching query "team"
How to install wacli
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill wacli -a claude-code2Manually: put the files in place
~/.claude/skills/wacli/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/wacli/
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill wacli -a codex2Manually: put the files in place
.agents/skills/wacli/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill wacli -a cursor2Manually: put the files in place
.cursor/skills/wacli/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openclaw/openclaw wacli2Manually: put the files in place
.github/skills/wacli/SKILL.md1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill wacli -a gemini-cli2Platform CLI
gemini skills install https://github.com/openclaw/openclaw --path extensions/whatsapp/skills/wacliManually: put the files in place
.devin/skills/wacli/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill wacli -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set45
The whole set →Similar
Questions about wacli
How to install wacli for Claude Code?
Run npx skills add openclaw/openclaw --skill wacli -a claude-code. You must also install the wacli binary on your system via Homebrew formula steipete/tap/wacli or Go module github.com/openclaw/wacli/cmd/wacli@latest.
What does the wacli skill do?
It gives your agent commands to search WhatsApp logs, backfill history, and dispatch messages or files to third parties. Routine conversation with the assistant does not use this skill.
What prerequisites are needed for wacli?
You need the CLI binary installed and authenticated via QR code using wacli auth. History backfill also requires your mobile device to stay online.
Source text
SKILL.md · MIT
---
name: wacli
description: "Send third-party WhatsApp messages or sync/search WhatsApp history via wacli, not normal active chats."
homepage: https://wacli.sh
metadata:
{
"openclaw":
{
"emoji": "📱",
"requires": { "bins": ["wacli"] },
"install":
[
{
"id": "brew",
"kind": "brew",
"formula": "steipete/tap/wacli",
"bins": ["wacli"],
"label": "Install wacli (brew)",
},
{
"id": "go",
"kind": "go",
"module": "github.com/openclaw/wacli/cmd/wacli@latest",
"bins": ["wacli"],
"label": "Install wacli (go)",
},
],
},
}
---
# wacli
Use `wacli` only when the user explicitly asks you to message someone else on WhatsApp or when they ask to sync/search WhatsApp history.
Do NOT use `wacli` for normal user chats; OpenClaw routes WhatsApp conversations automatically.
If the user is chatting with you on WhatsApp, you should not reach for this tool unless they ask you to contact a third party.
Safety
- Require explicit recipient + message text.
- Confirm recipient + message before sending.
- If anything is ambiguous, ask a clarifying question.
Auth + sync
- `wacli auth` (QR login + initial sync)
- `wacli sync --follow` (continuous sync)
- `wacli doctor`
Find chats + messages
- `wacli chats list --limit 20 --query "name or number"`
- `wacli messages search "query" --limit 20 --chat <jid>`
- `wacli messages search "invoice" --after 2025-01-01 --before 2025-12-31`
Inspect / verify messages
- `wacli messages show --chat <jid> --id <message_id> --json --full`
- `messages show` requires both `--chat` and `--id`; do not pass the message ID as a positional argument.
- After sending, verify the stored message when exact formatting matters, especially multiline text.
History backfill
- `wacli history backfill --chat <jid> --requests 2 --count 50`
Send
- Text: `wacli send text --to "+14155551212" --message "Hello! Are you free at 3pm?"`
- Group: `wacli send text --to "[email protected]" --message "Running 5 min late."`
- File: `wacli send file --to "+14155551212" --file /path/agenda.pdf --caption "Agenda"`
- Multiline: `--message` is literal by default; pass `--message-escapes` to interpret `\n`, `\r`, `\t`.
Notes
- Store dir: `~/.wacli` (override with `--store`).
- Use `--json` for machine-readable output when parsing.
- Backfill requires your phone online; results are best-effort.
- WhatsApp CLI is not needed for routine user chats; it's for messaging other people.
- JIDs: direct chats look like `<number>@s.whatsapp.net`; groups look like `<id>@g.us` (use `wacli chats list` to find).
© openclaw · MIT · openclaw/openclaw