Type
Tool
Stars
2.9k
License
MIT
Last push
Nov 5, 2026

wacli Mobile Agents tool

by openclawโ€ข 2.9kโ€ข

WhatsApp command-line tool for syncing, searching and sending

About wacli

wacli is an open-source Mobile Agents tool by openclaw, written mainly in Go. WhatsApp command-line tool for syncing, searching and sending. It has 2,909 GitHub stars and uses the MIT license, and its code was last pushed on Nov 5, 2026.

New to Mobile Agents? Our Mobile Agents guide explains how it works and lists other projects built on it.

At a glance

Protocol
Mobile Agents
Type
Tool
Language
Go
License
MIT
GitHub stars
2,909
Last push
Nov 5, 2026

Listed from public GitHub data, checked 2026-11-08. Not scanned by AgenticMart.

Questions about wacli

What is wacli?

WhatsApp command-line tool for syncing, searching and sending It is listed as a Mobile Agents tool, maintained in the openclaw/wacli repository on GitHub.

How do I install wacli?

The project's README gives this command: brew install openclaw/tap/wacli. Read the README for setup steps and requirements before running it.

Is wacli an official Mobile Agents project?

No. It is a community project built on Mobile Agents, not published by the organisation that runs the protocol.

What license does wacli use?

It is published under the MIT license. Check the license file in the repository before using it commercially.

Is wacli still maintained?

Its code was last pushed on Nov 5, 2026, and it had 2,909 GitHub stars when we checked on 2026-11-08. Look at recent issues and releases in the repository for a fuller picture.

README

wacli ๐Ÿ—ƒ๏ธ โ€” WhatsApp from your terminal

wacli banner

CI Release Platforms License Homebrew Docs

wacli is a scriptable WhatsApp client for people and tools that work from the command line. It pairs as a linked device, mirrors messages into a local SQLite store, and supports search, sending, and chat management.

wacli uses the WhatsApp Web protocol through whatsmeow. It is not affiliated with WhatsApp or Meta.

Install

Homebrew on macOS or Linux:

brew install openclaw/tap/wacli

Prebuilt archives for macOS, Linux, and Windows are available from GitHub Releases. Official macOS binaries require macOS 15 (Sequoia) or newer.

To build from source, install Go 1.27.0 or newer and a C compiler, then run:

CGO_ENABLED=1 CGO_CFLAGS="-Wno-error=missing-braces" \
  go install -tags sqlite_fts5 github.com/openclaw/wacli/cmd/wacli@latest

See the installation guide for release archives, Docker, and platform-specific build requirements.

Quick start

Pair the CLI by scanning the terminal QR code from WhatsApp's Linked devices screen. auth performs the first sync after pairing.

wacli auth
wacli messages search "meeting"
wacli send text --to +15551234567 --message "hello"

Sending requires a recipient you are allowed to contact. Recipients can be phone numbers, WhatsApp JIDs, or synced contact, group, and chat names.

The quickstart covers phone-number pairing, named accounts, media, and diagnostics.

Keep messages in sync

Run a continuous sync to keep the local store current:

wacli sync --follow

wacli keeps the WhatsApp session and its own searchable message index in separate SQLite databases. Search reads the local index, so it works without a live WhatsApp connection:

wacli messages search "invoice" --has-media
wacli --json messages list --limit 20

WhatsApp Web provides history on a best-effort basis. Use history coverage to inspect what is available locally before requesting older messages from the primary phone.

Use wacli from scripts

Human-readable tables are the default. Use --json for one-shot commands and --events for NDJSON lifecycle events from long-running commands. Progress and errors stay on stderr.

Use --read-only or WACLI_READONLY=1 when an integration must not change WhatsApp or the local store:

wacli --read-only --json messages search "invoice"
WACLI_READONLY=1 wacli --json doctor

Write commands take a per-store lock. After a sync --follow process finishes startup, supported send commands, the chats state commands (mark-read, archive, pin, mute, and their inverses), contacts check, and contacts save are delegated to it while it owns that lock. See companion integrations for webhooks and safe read-only SQLite access.

Commands

AreaWhat it covers
auth, accountsPair a linked device and manage isolated account stores.
sync, historyMirror new events and request older per-chat history.
messages, callsSearch, inspect, export, and manage local records.
send, mediaSend text and files or download synced media.
contacts, chatsFind people and manage local or remote chat state.
groups, channelsInspect and manage groups, communities, and channels.
profile, presenceManage profile details and chat presence.
store, doctorInspect local storage and diagnose the setup.

The complete documentation is at wacli.sh, or run wacli help <command> for the installed command reference.

Configuration

The default store is ~/.local/state/wacli on Linux and ~/.wacli elsewhere. Override it with --store DIR or WACLI_STORE_DIR; use named accounts when each WhatsApp identity needs its own session, database, and lock.

wacli accounts add work
wacli --account work sync --follow

See accounts for store selection and sync for storage limits, media downloads, webhooks, and presence behavior.

Development

Development uses the Go 1.27.4 toolchain selected by go.mod, Node.js 24 or newer, pnpm, cgo, and a C compiler. The source minimum remains Go 1.27.0.

pnpm install --frozen-lockfile
pnpm build
pnpm format:check && pnpm lint && pnpm test

Credits

Heavily inspired by whatsapp-cli by Vicente Reig.

Maintainers

License

MIT.

More Mobile Agents projects

All 20 โ†’