wechat-cli 是一个 macOS 命令行工具,用于发送微信消息,特点是不激活微信窗口、不闪烁、不抢占用户焦点。它通过 LLDB 与 macOS 辅助功能 API 反向工程实现,可向当前打开的聊天或指定 wxid 发送文本,支持任意长度与 Unicode 内容。
主要能力:使用 --text 发送消息;使用 --wxid 指定目标联系人(如 filehelper、wxid_abc123),省略则发送到当前打开的聊天;--mode 可选 ax(默认,静默)、heap、cgevent;--auto-hide 默认开启,发送前隐藏微信以避免界面闪烁,可用 --no-auto-hide 关闭;--seed 仅用于 heap 模式;--inputview 0xADDR 用于首次缓存微信 InputView 实例地址。
安装与配置:从 Releases 下载已签名二进制并放入 PATH: curl -L https://github.com/leeguooooo/wechat-skill/releases/latest/download/wechat-cli -o /usr/local/bin/wechat-cli chmod +x /usr/local/bin/wechat-cli xattr -d com.apple.quarantine /usr/local/bin/wechat-cli 2>/dev/null || true 随后在系统设置 → 隐私与安全性 → 辅助功能中为 Terminal.app(或 iTerm)授权。每次微信重启后需执行一次 InputView 引导:wechat-cli --inputview 0x<ADDR> --text "init",地址由配套工具 wx_send_hijack.py 获取并缓存于 /tmp/wx_send_state.json。
适用场景:向特定联系人或聊天发送消息、定时或自动化微信通知、把脚本数据管道输出到微信、在无头或后台脚本中发送而不打扰用户焦点。
限制:仅支持 macOS 与 Apple Silicon,已验证微信 4.1.8,其他版本地址偏移可能漂移需重新构建;二进制为 ad-hoc 签名,首次启动可能需右键打开或清除 quarantine;这不是微信官方 API,而是用户态研究产物,微信更新后可能失效;仍需遵守微信正常发送路径的速率限制与账号规则。