# WaCLI WaCLI is a [[Peter Steinberger]] WhatsApp CLI: a single [[Go]] binary that pairs as a linked WhatsApp Web device, mirrors message history into local [[SQLite]] with FTS5 full-text search, and exposes chat operations to terminals, scripts, and AI agents. "Wa" is WhatsApp. The shape is the same as [[Birdclaw]] (Twitter), [[Discrawl]] (Discord), and [[Gitcrawl]] (GitHub) — vendor chat surface in, queryable local mirror out. ## Why it matters WhatsApp is the messaging spine for huge swaths of personal and professional life, and yet it's one of the most closed environments in consumer software. There's no official API for personal accounts, no real export, no usable search across years of conversations. Anyone treating WhatsApp as an archive is one phone migration away from data loss. WaCLI takes the only practical route: pair as a linked WhatsApp Web device — exactly like the official desktop client does — and use that session to mirror messages into a local SQLite store with FTS5. ## Key features - **WhatsApp Web pairing.** Authenticated as a linked device; no scraping, no unofficial reverse-engineering of the consumer app surface. - **Local SQLite + FTS5.** Searchable, scriptable, ownable. - **Predictable output.** Tables by default; `--json` and `--events` for automation. - **Agent-friendly.** `--read-only` mode prevents mutations; store locking handles concurrent access. - **Bounded storage.** Configurable caps on message counts and DB size — no surprise gigabytes. - **History coverage tools.** Backfill helpers and coverage assessment for older messages from the primary device. - **Chat management.** Archive, pin, mute, and read/unread control from the CLI. ## Design choices worth noting - **Single Go binary, no daemon.** Run it when you need it; let it idle when you don't. - **whatsmeow under the hood.** The de-facto Go library for WhatsApp Web protocol — battle-tested, maintained, and the right base layer for this kind of tool. - **Linked-device path, not user-token scraping.** Stays inside WhatsApp's documented multi-device model. Less brittle, less ToS-fragile. - **Bounded by default.** Caps and FTS5 indexes mean the local store remains queryable rather than turning into an unmanageable blob. ## Where it fits For anyone who needs their WhatsApp history to be searchable, scriptable, or feedable to an agent without trusting a SaaS layer with their messages. Pair with an agent harness like [[OpenClaw]] for "draft a reply," "summarize the last hour in this chat," or "alert me when X messages." Same family of local-first archive tools as [[Birdclaw]], [[Discrawl]], and [[Gitcrawl]]. ## References - Project site: <https://wacli.sh/> - Source: <https://github.com/steipete/wacli> - License: MIT (not affiliated with WhatsApp/Meta) - whatsmeow library: <https://github.com/tulir/whatsmeow> ## Related - [[Peter Steinberger]] - [[Go]] - [[SQLite]] - [[Birdclaw]] - [[Discrawl]] - [[Gitcrawl]] - [[Spogo]] - [[OpenClaw]]