让 AI 接管你的微信 —— 开源微信 Agent 自动回复框架
本项目的开发方式与合规声明:
-
开发方式声明:本项目代码中的内存读取、数据库解密、UI 自动化等技术实现,完全基于公开的通用技术原理(如 Windows API
ReadProcessMemory、SQLCipher 解密流程、UIA 自动化协议)。开发者在编写代码的过程中,未对微信客户端进行任何形式的逆向工程、调试、反编译或注入操作。所有技术细节均来源于公开资料、操作系统文档、以及社区公开讨论。 -
合规性:本项目通过技术手段(包括但不限于 UI 自动化、内存读取)实现与微信客户端的交互。这些手段可能违反《微信软件许可及服务协议》。使用本项目存在被微信官方封号的风险,开发者对此不承担任何责任。
-
数据隐私:本项目所有操作均在本地完成,不会上传用户的任何聊天记录、密钥或个人信息。用户需妥善保管本地生成的任何数据。
-
法律责任:用户使用本项目从事的任何行为及其后果由用户自行承担。严禁利用本项目从事监听、窃取他人隐私、群发骚扰信息等违法违规行为。
-
非官方:本项目为非官方开源项目,与腾讯公司或微信官方无任何关联。
| 痛点 | WeChat CLI 的解法 |
|---|---|
| 📦 依赖多且重 | 内置原生驱动,直接读取微信数据库 & 操作 UI,实现研究级的一键集成 |
| 🔒 隐私泄露 | 本地提 Key,不修改微信客户端,不连接第三方解密服务 |
| 🤖 想让 AI 回复 | 内置 Agent Bridge,支持 OpenAI / Claude / Ollama 等任意 LLM |
| ⚙️ 配置复杂 | CLI 一行命令搞定,也支持运行时热更新配置 |
- Native Driver (研究用): 自动从微信进程提取密钥,直接解密读取
MSG.db。此模式旨在演示跨进程内存访问和数据库解密原理。 - Legacy Mode: 兼容模式,支持通过第三方 API 服务进行交互。
┌─────────────────────────────────────────────────────────────┐
│ WeChat CLI │
│ │
│ ┌──────────┐ ┌──────────────┐ ┌───────────────────┐ │
│ │ CLI │ │ HTTP API │ │ Agent Bridge │ │
│ │ (click) │ │ (FastAPI) │ │ (SSE → Webhook) │ │
│ └────┬─────┘ └──────┬───────┘ └────────┬──────────┘ │
│ │ │ │ │
│ ┌────┴────────────────┴─────────────────────┴───────────┐ │
│ │ Native Driver (DB Reader + UI Sender) │ │
│ │ 自动提 Key / 实时监听 / 原生 UI 自动化 │ │
│ └────────────────────────┬───────────────────────────────┘ │
└───────────────────────────┼─────────────────────────────────┘
git clone https://github.com/Mouseww/wechat-cli.git
cd wechat-cli
pip install -e .
# 安装依赖 (Windows)
pip install uiautomation pyperclip pycryptodome psutil完整环境需要同时运行 WeFlow。sessions、contacts、messages、名称解析、SSE 新消息订阅和自动回复链路都依赖 WeFlow HTTP API;仅 UI 自动化发送可以在读取通道不可用时单独工作。
- 安装并打开 WeFlow。
- 在 WeFlow 中连接当前微信账号的数据源。
- 打开 WeFlow 的 API 服务,默认地址应为
http://127.0.0.1:5031。 - 如启用了 Token,在后续命令中配置
weflow_token。
可用以下命令检查 WeFlow API:
curl http://127.0.0.1:5031/healthWeFlow API 文档参考:https://weflow.imsry.cn/api-reference
# 启用原生驱动模式
wechat-cli config set use_native_driver true
# 配置 WeFlow API
wechat-cli config set weflow_url http://127.0.0.1:5031
# 检查状态
wechat-cli status
# 启动服务
wechat-cli start仓库内置了一个安装 Skill,可交给支持 Skills 的大模型直接执行完整安装和验收:
Use the skill at skills/wechat-cli-installer to install the full WeChat CLI environment on Windows.
该 Skill 会引导大模型完成 Python 环境、Windows UI 自动化依赖、WeFlow API、CLI 配置、发送通道和读取通道的检查。
wechat-cli start 启动服务
wechat-cli status 查看驱动状态与密钥信息
wechat-cli send "张三" "你好" 原生驱动发送消息- Windows 桌面端微信已打开并登录。
- 微信主窗口保持可见,不要最小化。
- 已安装发送依赖:
pip install uiautomation pyperclip psutilwechat-cli status发送通道 应显示为 可用。读取通道 依赖本地数据库解密状态,读取不可用不影响 UI 自动化发送。
wechat-cli send "文件传输助手" "测试发送"
wechat-cli send "Webber" "测试发送"TO 必须是微信里能搜索到的好友备注、昵称或群聊名称。CLI 会先通过微信搜索打开目标会话,再把内容粘贴到当前会话输入区并发送,避免误发到当前焦点所在的聊天窗口。
部分微信 4.x 客户端的主窗口类名不是旧版 WeChatMainWndForPC,而是 Qt51514QWindowIcon。当前原生驱动会按以下顺序查找窗口:
WeChatMainWndForPCQt51514QWindowIcon+ 标题微信- 标题
微信
如果 UIAutomation 无法识别微信内部输入框,驱动会在搜索并打开目标会话后,点击窗口底部输入区域作为回退路径,再粘贴并发送消息。
如果觉得有用,请给个 ⭐ Star 支持一下!