把本地 AI 命令行接到微信远程使用(CLI-WeChat-Bridge)
CLI-WeChat-Bridge 把本机运行的 Codex、Claude Code、OpenCode、Pi 接入微信与企业微信,让你在手机上向本地会话发指令、收输出和审批提示。它用 TypeScript 写,走 npm 全局安装,本地终端仍是主界面。这篇文章拆解它的适用场景、主要功能、安装步骤、关键参数与几个已知坑,帮读者判断自己的远程工作流要不要用它。
本地的 AI 命令行工具很适合跑长任务,Codex、Claude Code 这类 CLI 一次会话可能持续十几分钟到几十分钟。人一离开电脑,这段进程就只能回来再看,中间补不了指令,也处理不了审批提示。
CLI-WeChat-Bridge 是一个用 TypeScript 写的桥接工具,把本机运行的 Codex、Claude Code、OpenCode、Pi 接入微信和企业微信,让手机也能向本地会话发指令、收输出与审批提示。
它的定位是本地优先。CLI 仍然是主工作界面,微信或企业微信承担远程输入和结果回流,会话状态、线程和审批流都以本地会话为中心,不另起一套托管环境。
它解决的是什么问题
要把手机和本地终端连起来,常见的两条路都不顺手。一条是把工作流整体搬到网页版客户端或者托管机器人上,搬过去之后本地的工作目录、启动参数和已有的 history 会话都用不上,等于重建一套环境。另一条是远程桌面,手机上的操作体验差,还得让桌面一直在线。
这个项目走的是第三条路:本地 CLI 原样运行,bridge 在中间转发消息。你在终端里用什么启动参数、在哪个目录工作,微信这一侧接的就是同一段会话。
覆盖范围是 Codex、Claude Code、OpenCode、Pi 四个 CLI,通道上支持个人微信与企业微信。企业微信走的是官方智能机器人长连接,不需要公网回调地址。
典型使用场景
- 本地跑长任务的人。在终端里起一段 Codex 会话处理重构或排错,出门后用微信继续看输出、补指令,bridge 保留同一段 thread。
- 企业微信用户。在企业微信客户端的「工作台 → 智能机器人」里创建 API 模式机器人,选择使用长连接,拿到 Bot ID 和 Secret 后跑
wecom-setup接入。 - 同时用多个 CLI 的人。用
wechat-daemon常驻,在微信或企微里发/codex、/claude、/opencode、/pi切换当前活动终端,不用回到电脑上开窗口。 - 想在手机上处理审批的人。本地 CLI 的审批请求会同步回对应通道,人不在电脑前也能处理。
几个常见疑问
Claude Code 只回 (no final reply) 是怎么回事?
这是早期版本暴露的问题:跑 claude code 时,回答完成后微信侧收到的是 (no final reply),拿不到真正的回复正文。这条 Issue 有 13 条评论,目前状态为已解决。
本地执行 /resume 之后微信为什么还连着旧会话?
在 wechat-codex 里键入 /resume 可以切到本地历史会话,但微信侧仍连在启动时新建的那个会话上,两边对不上。相关 Issue 状态为已解决。
同一个目录下并行跑的 codex 消息为什么会串?
只启动一个 wechat-bridge-codex 和一个 wechat-codex 时,同目录下另有一个更早启动的 codex 在干活,结果后者的消息出现在微信上。这个串话问题状态为已解决。
主要功能
- 四个 CLI 适配器。Codex 已验证 0.149.x–0.161.x,OpenCode 同时支持 1.18.x 与 2.0.x,Pi 已验证 0.85.1 且需要本机可执行
pi命令,Claude Code 通过 PTY 交互模式工作。 - 双向线程共享。微信或企业微信与本地终端共享 thread/session,双向对话,本地输出、审批请求与运行状态都会同步回对应通道。
- 文件双向传输。本地文件可以传到微信,微信也能发文件回终端。
- 多 CLI 切换。
wechat-daemon常驻后,在对应通道发/codex [prompt]、/claude [prompt]、/opencode [prompt]、/pi [prompt]切换活动终端;带 prompt 时切换后立即转发剩余文本。 - 远程模型与计划模式控制。1.1.8 起
/model、/model <编号>与/plan扩展到全部四个适配器。 - /all 广播。1.2.0 新增,把同一段提示词发给全部已启动的 CLI。
- daemon IPC。1.2.0 起
wechat-daemon与wecom-daemon通过带认证的本地 IPC 接口向外部程序开放。 - 微信表情绑定指令。可以把微信表情绑定成指令使用。
安装与最短示例
环境要求是 Node.js 大于等于 22.13.0,以及本机 PATH 中已装好至少一个受支持的 CLI。bridge 只调用可直接执行的独立 CLI,不会去发现 ChatGPT.app 这类桌面应用内部捆绑的私有可执行文件。
npm install -g cli-wechat-bridge@latest
旧包名 @unlinearity/cli-wechat-bridge 会继续同步发布,装过旧包名的可以直接升级,新用户用更短的 cli-wechat-bridge。
安装时如果 npm 提示 install/postinstall 脚本未被 allowScripts 允许,需要带上包名重装:
npm uninstall -g cli-wechat-bridge
npm install -g cli-wechat-bridge@latest --allow-scripts=cli-wechat-bridge,node-pty
Linux 上还需要编译工具。Debian / Ubuntu 用 sudo apt install build-essential python3,RHEL / Fedora 用 sudo dnf groupinstall "Development Tools" && sudo dnf install python3,Alpine 用 apk add build-base python3。macOS 遇到编译问题装 Xcode 命令行工具。Windows 需要 Windows 10 1809(build 18309)或更高版本,并装好 Visual C++ Redistributable。
登录个人微信:
wechat-setup
二维码默认是 small 模式,Windows 终端渲染异常时改用 wechat-setup --qr-mode normal。企业微信先建好 API 模式机器人,再跑 wecom-setup,然后在企微里发 /pair <code> 完成配对。
进入项目目录后启动:
cd D:\work\your-project
wechat-codex
四个直接启动命令分别是 Codex 的 wechat-codex、Claude Code 的 wechat-claude、OpenCode 的 wechat-opencode、Pi 的 wechat-pi,企业微信侧对应 wecom-codex、wecom-claude、wecom-opencode、wecom-pi。
想让通道长期在线并在多个 CLI 之间切换,改用 daemon:
wechat-daemon
wecom-daemon --adapter claude
启动后先在微信里发一条消息,比如 hello,让 bridge 拿到最新的 context_token。这样本地终端的输入、最终回复和审批提示才能稳定同步回微信;冷启动后直接从本地先发消息,回发时可能因为旧 token 失效而失败。
关键参数
--qr-mode normal:把登录二维码从 small 切成普通模式。--adapter codex或--adapter claude:daemon 启动时指定初始 CLI。--profile work:daemon 启动时指定 profile,可写成wechat-daemon --adapter claude --profile work。--doctor:wechat-daemon --doctor用来快速检查环境状态。--cwd <project-dir>:源码运行方式下指定工作目录,例如bun run bridge:codex -- --cwd <project-dir>。- 数据目录、上传大小限制、调试开关通过环境变量配置,具体字段名在
docs/configuration.md,README 没有直接列出。
结果在哪里看
终端是主界面。Codex、Claude、OpenCode、Pi 的重要输出发回通道时会分别带上 [codex]、[claude]、[opencode]、[pi] 标签,方便分辨消息来自哪一路。
微信或企业微信这一侧接收回复与状态,1.2.0 起在派发任务期间会显示原生「正在输入」状态。会话对应的 thread 在两边共享,直接用 /resume 可以恢复。
出错时看 bridge.log,Issue 里的报错信息就是从这里来的。数据目录与状态文件的位置在 docs/troubleshooting.md 中说明。
实际使用中的坑
下面这些是仓库 Issue 里出现过的实际问题,状态都已解决,列出来是为了让你遇到时知道不是自己装错了。
- Windows 上 Node v24.16.0 环境里,微信登录成功后执行
wechat-codex-start报错Timed out waiting for the codex bridge,日志里是wechat_send_failed: context=fatal_error。这条 Issue 有 10 条评论。 - macOS 26.1 上跑
wechat-claude-start提示posix_spawnp failed,排查下来是本机 Node 还停在 14 版本,而项目要求 22.13.0 以上。 - Claude adapter 状态卡在 busy,回复完成后内部状态没有回到 idle,之后从微信发的消息被拒绝,返回
Claude is still working on: ...。 - OpenCode 升到 2.0.18 后 bridge 起不来,报
fatal_error: Failed to start OpenCode: OpenCode health check failed (HTTP 401),1.2.1 已接入 OpenCode 2。
和同类的差别在哪
| 项目 | 适合谁 | 部署方式 | 主要限制 | 什么情况下选它更合适 | 项目地址 |
|---|---|---|---|---|---|
| CLI-WeChat-Bridge | 本地用 Codex、Claude Code 跑长任务,想用微信或企微远程接手同一段会话的人 | npm 全局安装,需要 Node.js 22.13.0 以上;Claude Code 适配器依赖 node-pty 原生模块 | daemon 绑定启动时的工作目录,不支持从远程通道切换目录;Claude Code 依赖 PTY,node-pty 不可用时回退模式可能无法正常桥接 | 主工作流留在本地终端,缺的只是手机端一个入口 | CLI-WeChat-Bridge |
| stablyai/orca | 要在一个界面里同时驾驭大量并行 agent 的开发者 | 仓库没有说明 | 定位是并行 agent 的 ADE,入口不是微信这类即时通讯通道 | 需要图形化的多 agent 编排界面,而不是把单段会话接到手机上 | stablyai/orca |
| iOfficeAI/AionUi | 想要一个常驻桌面应用来跑 OpenClaw、Hermes、Claude Code、Codex、OpenCode 等的人 | 仓库没有说明 | 定位是独立的 cowork 应用,未逐一核实它与微信通道的集成方式 | 希望有独立图形界面常驻运行,不依赖微信作为入口 | iOfficeAI/AionUi |
本项目做的是单段会话的桥接,没有多 agent 编排面板。要在同一个界面里管理多支并行 agent,或者希望用图形客户端而不是微信当入口,Orca 与 AionUi 的形态更合适。另一个实际差异在环境:Windows 上 node-pty 容易加载失败,遇到时得 npm rebuild node-pty 或重装,Linux 服务器上这一步相对省事。
适合谁:本地终端是你的主工作界面,用 Codex、Claude Code、OpenCode 或 Pi 跑长任务,需要一个手机端入口又不想迁移工作流的人;已经习惯把企业微信当协作入口的团队也能用上,企微通道走官方长连接,不用自己配公网地址。
不适合谁:需要图形化多 agent 编排的人;不想在本机装 Node.js 与原生编译工具的人;以及希望不依赖微信登录态就能远程接入的场景。个人微信通道依赖扫码登录,使用前需要自行确认账号的使用方式是否符合平台条款。
焚评:这个项目的量化评分
本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 9.3 分(满分 10)。下表是各维度的得分:
| 评分维度 | 得分 |
|---|---|
| 热度动量(权重 25%) | 10.0 / 10 |
| 开发活跃(权重 25%) | 7.4 / 10 |
| 社区响应(权重 15%) | 10.0 / 10 |
| 文档质量(权重 15%) | 10.0 / 10 |
| 发布节奏(权重 10%) | 9.8 / 10 |
| 风险控制(权重 10%) | 10.0 / 10 |
评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。
内容核验说明
这篇把本地 CLI 接微信的边界写到了可照做的程度:安装、参数、已知坑都落在能核对的位置,README 没列的环境变量也注明去哪找。适合已经用 Codex、Claude Code 跑长任务、只缺手机端入口的人;想多 agent 编排或不愿装 Node 与编译工具的不必看。
文中的 CLI 版本兼容范围、功能清单与参数说明来自原作者公开披露,诀.com未独立验证;焚评评分由焚.com授权引用,同样未在本站复核。提到的报错、串话、状态卡 busy 等现象均出自仓库 Issue 报告,未在本站环境实测,结果不保证在读者环境复现。用户反馈摘要
根据仓库 Issue 来看,反馈集中在接入与状态两类问题:posix_spawnp failed(本机 Node 版本低)、context_token 缺失导致发不出消息、Claude 回复只显示 (no final reply)、并行 codex 消息串到微信、/resume 后微信仍连旧会话、OpenCode 2.0 健康检查 401。多数报告标记为已解决;有一条待解决:OpenCode 适配器把子会话创建误判为本地切换,会中断进行中的微信任务。
基于该仓库公开 Issue 整理,只反映提交者报告的现象与诉求,不代表诀.com 立场,也不代表问题已被确认。项目来源与说明
开源项目:UNLINEARITY(UNLINEARITY)
本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。
查看项目仓库