
凌晨两点四十七分。手机屏幕在床头柜上亮起来。WhatsApp 的绿色气泡一条接一条。“Hi, do you have this model in stock?” “Can you ship to Rotterdam before Friday?” “Price list please.”做外贸、跨境、独立站的人对这一幕再熟悉不过。客户不讲时区只讲秒回靠谱。你回慢了单子就是隔壁工厂的。以前你只能自己扛。现在有人把这条 7×24 小时的战线交给了 AI。这就是 wacli 在做的事。它是 2026 年 ClawHub 榜单上最常被推荐的通信类 Skill 之一——parallel.ai、KDnuggets、solvea.cx 等多家独立评测都把它放进 Top 榜单同时它也是 OpenClaw 官方仓库里开箱即用的内置技能。装好它你的 AI Agent 就多了一双能发 WhatsApp 的手。这篇文章从能干什么到背后怎么想把 wacli 拆给你看。一、先分清两个名字wacli CLI 和 wacli Skill很多教程把两者混着说其实它们是两层。wacli CLI是一台车。一个用 Go 写的 WhatsApp 命令行客户端。GitHub 开源作者 Peter Steinbergersteipete构建在 whatsmeow 库之上——whatsmeow 是 Go 社区对 WhatsApp Web 协议的非官方实现。它能让你的终端像一台额外链接的设备一样接入 WhatsApp同步消息、本地搜索、发消息发文件。wacli Skill是驾照交规。一份放在 OpenClaw 仓库 skills/wacli 目录下的 SKILL.md 文件。里面没有一行产品代码只有给 AI 看的操作手册什么时候能用、什么时候坚决不能用、命令怎么拼、发消息前必须确认什么。Skill 不生产魔法它只是让 Agent 学会正确驾驭 CLI。这个Skill 包装 CLI的模式正是 2026 年 ClawHub 高分技能的主流形态。之前拆过的 Sonoscli 出自同一位作者也是这个套路——先有一个好的命令行工具再写一份好的说明书Agent 的能力就齐了。二、wacli 能干什么直接看命令比看十段介绍都直观场景命令扫码登录 初始同步wacli auth后台持续同步wacli sync --follow搜聊天记录FTS5 全文检索支持时间窗/会话过滤wacli messages search invoice --after 2025-01-01列出会话 / 群组wacli chats list/wacli groups list发文本个人wacli send text --to 8613800000000 --message hello发群消息wacli send text --to 1234567890-123456789g.us --message ...发文件带说明wacli send file --to ... --file ./报价单.pdf --caption 报价回填更早的历史best-effortwacli history backfill --chat jid --count 50下载某条消息的媒体wacli media download --chat jid --id msgid健康检查wacli doctor面向 Agent 的场景几乎呼之欲出“给所有 3 天没回消息的客户发跟进先给我过目。”“把今天的询盘整理成表格重点标出要 500 件以上的。”“这个群里的报价单下个月到期前提醒我。”发消息支持文本、引用回复、贴纸、语音、文件≤100 MiB还带表情回应与 提及收件人既可以是手机号也可以是会话 JID 或已同步的联系人名字模糊时终端会交互确认脚本场景用--pick N指定。三、背后三步棋QR、SQLite、边界拆开 wacli 的技术设计有三个值得玩味的点。第一步棋用链接设备的身份进场它不注册新号不做服务器中转。wacli auth在终端打出一张二维码你用手机 WhatsApp 的设置 → 已链接的设备扫一下它就以一台 WhatsApp Web 设备的身份上线。整个会话密钥都留在本地数据不出你自己的机器。这也是它跟营销机器人的本质区别——它借用的是你现有账号的信任链而不是重新发明一套协议。首次登录后的初始同步根据消息量可能要跑 5~30 分钟之后进入无头运行。第二步棋把聊天记录变成离线数据库同步不是终点检索才是。wacli 把所有消息落进本地 SQLite启用 FTS5 全文索引编译时-tags sqlite_fts5。这意味着什么你在 WhatsApp 里搜报价单官方客户端的体验你也知道慢、浅、翻不到。而 wacli 的搜索是 SQL 级的按会话过滤、按时间窗过滤、按消息类型过滤毫秒级返回带上下文片段的结果。它等于给你的聊天记录装了一台本地搜索引擎——这正是 Agent 最需要的记忆。数据落库用 WALWrite-Ahead Logging模式读写并发安全messages / chats / contacts / groups / media 五张核心表各司其职。所有命令支持--json输出、--eventsNDJSON 生命周期流和确定性退出码方便脚本和 Agent 解析。wacli doctor帮你体检数据目录。第三步棋给 Agent 划了三条不能越的线这是 SKILL.md 里最精彩的部分值得逐字读“只有当用户明确要求给第三方发 WhatsApp 消息或要求同步/搜索历史时才使用 wacli。不要把它用于普通用户聊天——OpenClaw 会自动路由 WhatsApp 对话。”什么意思你正在 OpenClaw 里正常聊天Agent 不该突然掏出 wacli 去翻你俩的聊天记录。wacli 的定位是对外联络官不是监工。发送前还有硬性流程必须拿到明确的收件人和消息文本发送前向用户确认有任何歧义就追问不许猜。这套确认制不是怂是 Agent 工程里最贵的教训一个会自作主张发消息的 Agent比一个不会发消息的 Agent 危险一万倍。底层 CLI 还配了 rapid-send 护栏连续发送过快会拦截、只读模式、数据库 owner-only 权限、panic 恢复等安全设计把手滑的空间压到最小。四、和谁对比为什么要它而不是别的把 wacli 放进生态里看它的生态位很清晰方案方向本质Telegram SkillClawHub 头部技能14.5 万 安装用户 → 遥控 Agent让你在手机上指挥 AgentGOG / Google WorkspaceAgent → 邮件/日历/文档管 Gmail 的信使wacli SkillAgent → WhatsApp 第三方对外即时消息触手官方 WhatsApp Business Cloud API企业 → 客户走 Meta 审核、模板消息、按条计费whatsapp-cli / whatsapp-web.js 系同类底层方案wacli 的前辈与竞品一句话Telegram 是你找 Agentwacli 是Agent 替你找人。而相比官方 Business API 的审核与模板限制wacli 走的是个人号 Web 协议轻、快、免费——代价是风险见下节。五、泼三盆冷水第一盆封号风险是真实存在的wacli 的 man 手册写得毫不含糊这是第三方工具使用非官方协议WhatsApp 会主动封禁使用第三方客户端的账号而且常常是永久封禁、没有申诉通道。所以正确姿势是不要拿主号裸奔。开个小号、或者至少想清楚你的号能不能承受封禁成本。企业规模化营销请走官方 API别拿个人号赌。第二盆同步是 best-effort不是备份保险历史回填backfill依赖你的手机在线响应官方不保证全量返回媒体文件能否下载还受 WhatsApp 内容保留策略影响。把它当搜索工具很香当合规归档方案还差得远。第三盆生态里的水很深装之前擦亮眼ClawHub 上 wacli 的第三方变体一抓一把sieyer/whats-1-0-0、prantikmedhi/wacli-whatsapp……。有正经的也有蹭名字的。还记得 ClawHavoc 事件吗2026 年初那场针对技能市场的投毒攻击一次性清掉 2400 多个恶意技能。安装前认准官方源openclaw/openclaw 仓库的 skills/wacli或clawhub install wacli装完用wacli doctor体检保持100 下载、3 个月活跃的基本判断。另外从源码构建 wacli 需要 cgo C 编译器go-sqlite3 依赖推荐直接brew install steipete/tap/wacli省心。六、动起来给你的 Agent 装 WhatsApp 触手一共四步# 1. 装 CLI预编译带 FTS5最省心 brew install steipete/tap/wacli # 2. 扫码登录终端显示二维码手机 → 设置 → 已链接的设备 wacli auth # 3. 后台持续同步 wacli sync --follow # 4. 在 OpenClaw 里启用官方 Skill clawhub install wacli然后试着对它说一句“把这两天所有问过价格但还没下单的客户找出来每人草拟一条跟进消息我先审再发。”放心它会先给你看草稿等你点头。毕竟一个懂得在扣扳机前确认的 Agent才配替你握着那部手机。关键词OpenClawwacliWhatsApp CLIAI Agent SkillwhatsmeowFTS5 全文检索消息自动化