wacli-skill
Agent skill for using the local wacli WhatsApp CLI instead of browser automation.
wacli is a scriptable WhatsApp client built on whatsmeow. It pairs as a linked WhatsApp Web device, mirrors messages into a local SQLite store, and supports offline search, sending, and chat/contact management from the command line.
Third-party tool. Uses the WhatsApp Web protocol via
whatsmeow. Not affiliated with WhatsApp.
Why this skill exists
This skill gives an agent a clean, local path for WhatsApp work without poking at browser DOM junk.
Good fits:
- QR pairing and auth status checks
- one-shot or follow-mode sync
- offline message search and context lookups
- sending text, files, reactions, stickers, and voice notes
- chat and contact inspection from the local store
Contents
SKILL.md— skill instructions, safe defaults, and command patternsscripts/wacli-local.sh— tiny wrapper that execs the localwaclibinary
Highlights from wacli
- Auth + sync — QR pairing, one-shot sync, or long-running follow mode
- Offline message store — local SQLite history with FTS search
- Sending — text, replies, mentions, files, stickers, voice notes, reactions
- History backfill — best-effort older-message requests from the primary device
- Scriptable output —
--jsonfor machine-readable reads and automation-friendly flows - Diagnostics + safety —
doctor, read-only mode, lock handling, bounded local behavior
Quick start
# Pair (shows QR), then bootstrap sync
wacli auth
# Keep syncing after auth
wacli sync --follow
# Inspect chats and recent messages
wacli --json --read-only chats list --limit 50
wacli --json --read-only messages list --chat <chat-jid> --limit 20
# Search locally stored messages
wacli --json --read-only messages search "meeting"
# Send
wacli send text --to 1234567890 --message "hello"
Recipients can be a JID, phone number, or synced contact/group/chat name. If a name is ambiguous, use a JID or the CLI selection flags supported by wacli.
Local assumptions
This published skill came from a setup where:
wacliis installed and available onPATH- the default store is
/root/.local/state/wacli - agents should prefer
--json --read-onlyfor inspection work
You may want to tweak these paths and defaults for your own environment.
Extra examples in this repo
EXAMPLES.md— broad command examples covering the current CLI surface
Upstream docs
- Main project: https://github.com/openclaw/wacli
- Full documentation: https://wacli.sh
Source
Published from Luna's local OpenClaw workspace.