在微信里调用本机 AI 编程 CLI、局域网其他设备上的 AI 智能体,并把微信文件自动归档到局域网 NAS。
这个项目是一个运行在你电脑上的桥接服务:微信负责输入和文件传输,电脑负责接入 ClawBot iLink API、调用本机/局域网 Agent、保存媒体文件并转存 NAS。
- 微信 ClawBot 官方 iLink Bot API 收发消息
- Claude Code / Codex CLI / Gemini CLI / Hermes Agent / Kimi Code / OpenClaw / OpenCode
@工具名切换工具,支持@tool1>tool2链式调用和>>接力remoteAgents:通过 HTTP JSON 调用同局域网其他设备上的 AI AgentlocalAgents:把本机任意 CLI/Agent 注册成微信里的自定义@名称- 微信图片、文件、视频自动下载并解密
nasArchive:微信文件自动复制到指定 NAS 目录,默认按日期归档并避免覆盖- 会话续接、
/resume、/session set <id> - AI 输出
[SEND_FILE: /path/to/file]时自动把文件发回微信
微信 ClawBot
<-> iLink Bot API
cli-in-wechat 桥接服务
<-> 本机 AI CLI: claude / codex / gemini / hermes / kimi / openclaw / opencode
<-> 自定义本机 Agent: @ollama / @localpy / 自定义名称
<-> 局域网 HTTP Agent: @lan / @nasbot / 自定义名称
<-> NAS 共享目录: \\NAS\wechat-inbox
前置要求:
- Node.js >= 18
- 微信已启用 ClawBot 插件
- 至少一个本机 CLI 工具,或配置一个
remoteAgents远端 Agent
git clone https://github.com/lenlanF/cli-in-wechat.git
cd cli-in-wechat
npm ci
npm run dev首次运行会显示二维码,用微信扫码登录 ClawBot。
配置文件位于:
~/.wx-ai-bridge/config.json
可参考 examples/config.local.example.json:
{
"defaultTool": "lan",
"workDir": "D:\\Windows\\Default\\Documents\\wechat-workspace",
"taskKeepAliveInterval": 90000,
"clawbots": [
{ "name": "default" },
{ "name": "work" }
],
"remoteAgents": {
"lan": {
"displayName": "LAN Agent",
"endpoint": "http://192.168.1.50:8787/agent",
"apiKey": "change-me",
"timeout": 300000
}
},
"localAgents": {
"ollama": {
"displayName": "Ollama Local",
"command": "ollama",
"args": ["run", "qwen2.5-coder:7b"],
"promptMode": "stdin"
}
},
"nasArchive": {
"enabled": true,
"path": "\\\\NAS\\wechat-inbox",
"auth": {
"username": "nas-user",
"password": "nas-password",
"domain": "WORKGROUP"
},
"organizeByDate": true,
"overwrite": false
}
}remoteAgents 里的 key 就是微信里的 @ 名称。上面的配置启用后,可以在微信里发送:
@lan 总结一下这个文件
远端服务需要实现一个 POST /agent JSON 接口。协议见 examples/remote-agent-protocol.md,最小 FastAPI 示例见 examples/remote-agent-fastapi.py。
启动示例远端 Agent:
cd examples
pip install fastapi uvicorn pydantic
LAN_AGENT_API_KEY=change-me uvicorn remote-agent-fastapi:app --host 0.0.0.0 --port 8787如果机器 A 是 Linux 且有 Codex CLI,机器 B 是 Windows 且也有 Codex CLI,推荐只让 B 运行 cli-in-wechat 作为微信入口:
微信
-> B / Windows: cli-in-wechat
@codex -> B 本机 Codex
@codexa -> A / Linux HTTP Agent -> A 本机 Codex
文件 -> B 下载 -> NAS 指定目录
A 上启动 HTTP Agent wrapper,B 上把它配置成 remoteAgents.codexa。完整步骤见 examples/multi-machine-codex.md,Codex wrapper 示例见 examples/codex-http-agent.py。
localAgents 可以把本机任意命令行工具注册成微信 @名称。协议见 examples/local-agent.md。
例如:
{
"localAgents": {
"localpy": {
"displayName": "Local Python Agent",
"command": "python",
"args": ["examples/local-agent-echo.py"],
"promptMode": "stdin"
}
}
}微信里发送:
@localpy 你好,读取刚才的文件
默认只启动一个 default ClawBot。需要接入多个微信 ClawBot 时,在配置里加入:
{
"clawbots": [
{ "name": "default" },
{ "name": "work" },
{ "name": "family" }
]
}也可以在微信里配置:
/clawbot list
/clawbot add work
/clawbot remove work
新增或删除 ClawBot profile 后需要重启服务。每个 profile 会单独保存:
- 登录凭据
- poll cursor
- context token
- 会话状态
首次启动新 profile 时会显示对应二维码,需要用目标微信 ClawBot 扫码登录。
启用 nasArchive 后,微信发来的图片、文件、视频会同时保存到:
- 桥接服务本地媒体目录
- 指定 NAS 设备和文件夹,例如
\\NAS01\wechat-inbox\project-a\2026-06-30\report.pdf
归档后的 nasPath 会传给本机 CLI 和远端 Agent,方便 NAS 上的 Agent 直接读取或后续自动化处理。
Windows 推荐使用 UNC 路径:
{
"nasArchive": {
"enabled": true,
"path": "\\\\192.168.1.10\\share\\wechat-inbox\\project-a",
"organizeByDate": true,
"overwrite": false
}
}这里的 path 就是“指定设备 + 指定文件夹”。可用 NAS 主机名,例如 \\\\NAS01\\wechat-inbox\\project-a,也可用 IP,例如 \\\\192.168.1.10\\share\\wechat-inbox\\project-a。
如果 NAS 共享需要用户名和密码,Windows 下可以配置:
{
"nasArchive": {
"enabled": true,
"path": "\\\\NAS01\\wechat-inbox\\project-a",
"auth": {
"username": "nas-user",
"password": "nas-password",
"domain": "WORKGROUP"
}
}
}也可以直接在微信里配置:
/nas auth nas-user nas-password WORKGROUP
/nas auth clear
Windows 下归档前会自动执行共享连接。Linux/macOS 建议先用系统方式挂载 NAS,再把 path 配成挂载目录。
Linux/macOS 可先挂载 NAS,再填写挂载目录:
{
"nasArchive": {
"enabled": true,
"path": "/mnt/nas/wechat-inbox"
}
}大部分桥接配置可以直接在微信里发命令修改,配置会保存到 ~/.wx-ai-bridge/config.json。
常用配置命令:
/config show
/config default codex
/config workdir D:\Windows\Default\Documents\wechat-workspace
/clawbot list
/clawbot add work
/nas path \\NAS01\wechat-inbox\project-a
/nas auth nas-user nas-password WORKGROUP
/nas on
/nas date on
/nas overwrite off
/remote set codexa {"displayName":"Codex on Linux A","endpoint":"http://192.168.1.50:8787/agent","apiKey":"change-me","timeout":300000}
/remote list
/remote remove codexa
/local set ollama {"displayName":"Ollama Local","command":"ollama","args":["run","qwen2.5-coder:7b"],"promptMode":"stdin"}
/local list
/local remove ollama
说明:
/nas path会自动开启 NAS 归档。/nas auth会保存 NAS 用户名、密码和可选域;回复不会回显密码。/remote set和/local set写入后会热注册,通常不需要重启。- 复杂配置使用 JSON,手机输入时注意双引号必须是英文半角。
@lan 帮我分析刚发的 PDF
@localpy 处理刚收到的文件
@codex fix the bug
@claude>lan 先分析项目,再交给局域网 Agent 生成报告
>> 继续根据上一条结果处理
/send D:\tmp\report.docx
/status
/help
发送微信文件时,消息会自动附带本地路径和 NAS 路径。AI 需要主动发文件回微信时,在输出中包含:
[SEND_FILE: D:\tmp\result.png]
截至公开可见的 ClawBot/iLink API 版本,Bot 发送消息需要已有用户会话的 context_token。这意味着:
- 用户必须先给某个 ClawBot 发过至少一条消息,桥接服务才能保存该用户的
context_token。 wcli send或桥接服务后续可以基于已保存的context_token给这个用户继续发送。- 目前没有公开接口支持 Bot 对一个从未互动过的用户/会话主动创建新对话。
因此本项目支持的是“对已建立会话的主动发送/延迟发送”,不是“凭空新建微信对话”。多 ClawBot profile 会分别保存各自的 context token。
公开资料没有给出 context_token 的明确有效期;不同版本/场景下表现可能不同。有实现提到较长时间内可复用,也有实践反馈长任务静默约数分钟后可能发送失败。因此本项目按“不保证长期有效”处理:
- 长任务默认每
90s发送一次轻量 keepalive:仍在处理...。 - 最终结果发送失败时,会缓存最多 5 条未送达消息。
- 用户下一次给同一 ClawBot 发消息时,桥接服务只提示有缓存,不会自动补发,避免过时结果干扰新上下文。
- 用户可以手动补发或丢弃缓存。
可以在配置里调整 keepalive 间隔,设为 0 表示关闭:
{
"taskKeepAliveInterval": 90000
}缓存控制命令:
/pending list
/pending send
/pending clear
如果 Agent 迟到的结果已经不适合当前任务,直接发送 /pending clear 丢弃。
| 命令 | 作用 |
|---|---|
/status |
查看当前工具、模型、目录、会话 |
/dir <路径> |
设置工作目录 |
/model <名> |
设置模型 |
/mode <auto|safe|plan> |
设置权限模式 |
/msgmode <verbose|normal|compact> |
设置消息详细度 |
/resume |
浏览历史会话 |
/new |
新会话 |
/cancel |
取消当前任务 |
/send <路径> |
发送本地文件到微信 |
npm ci
npm run typecheck
npm test
npm run build项目结构:
src/
adapters/ AI CLI 和远端 HTTP Agent 适配器
bridge/ 微信消息路由、会话、格式化
ilink/ iLink 登录、轮询、发送消息、媒体上传
utils/ 日志、加解密、媒体下载、NAS 归档
examples/ 配置和远端 Agent 示例
test/ Node test 测试
- 本项目默认认为接入的 ClawBot 拥有完整配置权限;不要把 ClawBot 暴露给不可信用户。
- 如需多个微信 ClawBot,在
clawbots中配置多个 profile。每个 profile 会单独保存登录凭据、poll cursor、context token 和会话状态。 - 远端 Agent 建议设置
apiKey - NAS 共享目录建议使用专用目录和最小写权限
- 不要提交
~/.wx-ai-bridge/credentials.json auto模式会给 CLI 较高权限,请只在可信环境使用
MIT