
wacli
CLIWhatsApp 命令行客户端:以关联设备配对登录,把消息同步到本地 SQLite,支持离线搜索、发送文本与文件、管理群组,--json 输出便于 agent 解析。基于非官方的 WhatsApp Web 协议。
wacli 🗃️ — WhatsApp from your terminal

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.
wacliuses the WhatsApp Web protocol throughwhatsmeow. 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
| Area | What it covers |
|---|---|
auth, accounts | Pair a linked device and manage isolated account stores. |
sync, history | Mirror new events and request older per-chat history. |
messages, calls | Search, inspect, export, and manage local records. |
send, media | Send text and files or download synced media. |
contacts, chats | Find people and manage local or remote chat state. |
groups, channels | Inspect and manage groups, communities, and channels. |
profile, presence | Manage profile details and chat presence. |
store, doctor | Inspect 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.3 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
- Created by @steipete
- Currently maintained by @dinakars777
License
MIT.
相關資源

Slack MCP Server
MCP社区维护的 Slack MCP:读取频道、私信与线程历史,搜索消息、获取未读消息;发消息等写操作默认关闭需显式开启。支持用户 OAuth 令牌或 Bot 令牌,提供 stdio、SSE 与 HTTP。
korotovsky/slack-mcp-server1.9k
Slack
PluginSlack(Salesforce)官方插件,收录于 Anthropic 知识工作插件市场:接入 Slack 托管 MCP,搜索与发送消息、读取频道与线程、管理 Canvas,另带频道摘要、站会更新、公告起草等命令。需工作区管理员批准接入。
anthropics/knowledge-work-plugins35.1k
Telegram MCP
MCP基于 Telethon 以个人账号操作 Telegram:搜索与收发消息、定时发送、管理联系人、群组与频道,提供 80 多个工具,可限制为只读。需申请 API ID 并在本地运行服务。
chigwell/telegram-mcp2k
CowAgent
CLI由 chatgpt-on-wechat 改名而来的开源个人 AI 助手与 Agent Harness:规划任务、调用工具与技能,三层记忆与知识库会自我进化,可组多 agent 团队;接微信、企业微信、公众号、飞书、钉钉、QQ、Telegram、Slack 等渠道,模型支持 Claude、GPT、DeepSeek、通义千问等。一行脚本安装,自带网页控制台(端口 9899),也有桌面客户端。
zhayujie/CowAgent47.8k
lark-cli(飞书 CLI)
CLI飞书官方命令行,200 多条命令覆盖消息、文档、多维表格、电子表格、日历、邮件、审批、OKR、会议与妙记,自带 20 多个 lark-* Agent Skill,输出结构化;需先创建飞书应用并登录授权。
larksuite/cli18k
BaiduPCS-Go
CLI百度网盘命令行客户端:用仿 Linux shell 的命令浏览、搜索、上传下载、分享与转存文件,支持离线下载和多账号。需用 BDUSS / Cookie 登录,不提供超出官方客户端的提速。
qjfoidnh/BaiduPCS-Go5.9k