wx-cli 是一个面向本地微信数据的命令行工具,由 ara.so 作为 Devtools Skills 集合的一部分提供。它使用 Rust 构建,采用守护进程架构,将解密后的数据库缓存起来,从而在后续查询中实现毫秒级响应。所有操作均在本地完成,不产生网络调用,数据不会离开用户机器。
用途
该工具用于从命令行查询和导出本地微信数据,涵盖消息、联系人、群组、朋友圈(SNS)、收藏以及公众号文章。它通过扫描微信进程内存来提取数据库加密密钥,并维护一个后台守护进程来缓存解密后的数据库。如果数据库文件的修改时间未变,则复用缓存。
主要能力
- 消息与会话:列出最近会话、未读会话,支持按私聊、群聊、公众号、折叠入口过滤;查询与特定联系人或群聊的历史记录,支持时间范围过滤;跨所有消息搜索关键词,可限定聊天对象和时间范围;增量获取自上次检查以来的新消息。
- 联系人与群组:列出联系人,支持按名称搜索;列出群成员,优先显示群昵称,输出包含用户名、显示名、群昵称和是否为群主。
- 朋友圈:区分点赞/评论通知与朋友圈动态。可查询未读或全部通知,查看朋友圈时间线,按用户或时间过滤,以及搜索朋友圈内容。
- 公众号文章:查询公众号/订阅号文章,支持按账号名、时间范围过滤,仅显示未读(每个账号最新一篇),并可提取文章 URL。
- 附件(图片):列出会话中的图片附件,通过附件 ID 提取并解密 .dat 文件。支持 legacy_xor、v1_aes 和 v2 三种解码器。
- 收藏与统计:列出收藏,支持按类型(文本/图片/文章/卡片/视频)和时间过滤;统计会话中按发送者的消息数量。
- 导出:将会话导出为文本文件或 JSON,支持时间范围过滤。
使用方式
安装:
- npm(推荐,跨平台):npm install -g @jackwener/wx-cli
- macOS / Linux(curl):curl -fsSL https://raw.githubusercontent.com/jackwener/wx-cli/main/install.sh | bash
- Windows(以管理员身份运行 PowerShell):irm https://raw.githubusercontent.com/jackwener/wx-cli/main/install.ps1 | iex
初始设置:保持微信运行,然后执行一次性初始化。macOS 需要先对微信进行临时签名并重置 TCC 隐私记录,然后重启微信并等待完全登录,最后运行 sudo wx init。Linux 直接运行 sudo wx init。Windows 以管理员身份运行 wx init。验证安装可运行 wx sessions,若能看到最近会话则设置完成。守护进程在首次命令时自动启动。
核心命令示例:
- wx sessions、wx unread、wx new-messages
- wx history "张三"、wx history "AI群" --since 2026-04-01 --until 2026-04-15
- wx search "关键词" --in "工作群" --since 2026-01-01
- wx contacts、wx members "AI交流群"
- wx sns-notifications、wx sns-feed、wx sns-search "关键词"
- wx biz-articles --account "返朴" --since 2026-05-01
- wx attachments "张三"、wx extract <attachment_id> -o ~/Desktop/photo.jpg
- wx favorites、wx stats "AI群"
- wx export "张三" -o chat.txt、wx export "AI群" -o chat.json --format json
守护进程管理:wx status 查看状态,wx stop 停止,wx init --force 强制重新初始化。
适用场景
- 在脚本中监控新消息,例如循环调用 wx new-messages --json 并解析输出。
- 按日期批量导出所有会话,用于备份或归档。
- 搜索关键词并提取上下文,用于信息检索。
- 获取每个会话的未读数量。
- 从指定时间范围提取所有图片。
- 在自动化流程中检查数据新鲜度,通过 meta.status 判断数据是否可能过期。
- 作为 AI 智能体的数据源,利用结构化 JSON 输出和增量查询能力。
限制
- 仅支持本地微信数据,依赖微信运行和内存扫描,macOS 上需要临时签名并可能触发权限弹窗。
- Linux 上暂不支持 V2 图片密钥,仅支持 legacy XOR 和 V1 AES。
- 若微信创建了新的 message_N.db 分片,meta 输出中会出现 unknown_shards,需要运行 wx init --force。
- 守护进程无响应时可先 wx stop 再执行任意查询命令重启。
- 图片提取可能因不支持的解码器而失败。
- 具体收费、价格、平台支持范围等未在资料中提供。