CLI-WeChat-Bridge

将 AI 命令行工具以最为原生的方式,集成到微信 ClawBot 中,目前支持集成 Codex、Claude Code、OpenCode、Pi Agent。 支持微信和本地终端线程(thread/session)共享、双向对话,支持将本地文件传输至微信,微信也支持发送文件到终端。现已支持多cli切换、微信表情绑定指令。

470
Stars
49
Forks
TypeScript
语言
2026/8/23
添加时间

⚠️ 第三方软件声明

本 Skill 为第三方开源软件,独立托管于 GitHub。SkillTip 仅为信息目录,不控制或维护底层仓库。所显示的安全检查为自动化且范围有限,安装前请自行审查源码。

阅读服务条款

安装

添加到你的 Claude Code skills 目录:

# Add to your Claude Code skills
git clone https://github.com/UNLINEARITY/CLI-WeChat-Bridge

快速入门

使用 CLI-WeChat-Bridge 等 Skills 的指南。

安全报告

已验证

上次扫描:—

{
  "status": "PASSED",
  "issues": []
}

README.md

CLI WeChat Bridge

Typing SVG

GitHub stars npm version npm downloads scoped npm downloads License CI

命令行工具的微信桥接:本项目将微信消息桥接到本地运行的 CodexClaude CodeOpenCodePi,同时把本地输出、审批请求与运行状态同步回微信。

项目围绕本地工作流设计,重点是保留本地原生终端体验:你仍然在本地使用原生 CLI 和高级启动参数,微信负责远程输入、结果回流与状态同步。

文档导航

  • 问题排查:上下文 token、网络代理、本地 endpoint、已知限制等常见问题。
  • 运行配置:数据目录、上传大小限制、调试开关等环境变量。
  • 开发说明:源码运行、测试、构建、打包和全局 smoke 验证。
  • 发布说明:各版本变更与升级说明。
  • 通信架构:各 CLI 适配器的通信机制、PTY / RPC 依赖分析和技术决策。

这个项目解决什么问题?

本项目适合这样的使用场景:

  • 你的主工作流仍在本地终端中进行;
  • 你希望继续使用 Codex、Claude Code、OpenCode、Pi 等原生 CLI,而不是迁移到网页或托管机器人;
  • 你希望离开电脑后,仍能通过微信向本地会话发送请求,并接收必要输出和状态更新。

本项目不试图把微信变成新的主工作界面。它的定位是:

  • 本地 CLI 仍然是主工作界面,并保持原生的使用逻辑;
  • 微信是远程入口,用来接入本地会话;
  • 会话一致性、线程状态和审批流仍以本地会话为中心

快速开始

1. 环境要求

  • Node.js >= 24.0.0(建议直接安装官网 LTS 版本)
  • 已安装以下任意一种本地 CLI,并尽量保持最新版本:

2. 安装

发布版本可以直接从 npm 安装:

npm install -g cli-wechat-bridge@latest

安装后,可以在任意项目目录中直接运行 wechat-codexwechat-claudewechat-opencodewechat-pi,或使用 wechat-daemon 保持长期连接。

兼容性说明:旧包名 @unlinearity/cli-wechat-bridge 会继续同步发布,已经安装旧包名的用户可以正常升级;新用户优先使用更短的 cli-wechat-bridge

安装遇到问题?(node-pty 原生模块)

本项目使用 node-pty 为 CLI 适配器提供完整终端模拟。Claude Code 适配器当前通过 PTY 交互模式工作,node-pty 不可用时会回退到兼容模式,但 Claude Code 在此模式下可能无法正常桥接;Codex 适配器主要通过 WebSocket RPC 通信,通常不受影响;OpenCode 适配器不依赖 node-pty;Pi 直接继承可见 companion 的真实终端,也不需要 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

安装编译工具后重新安装:npm install -g cli-wechat-bridge@latest

macOS 用户:如遇编译问题,安装 Xcode 命令行工具:xcode-select --install

Windows 用户

  • 需要 Windows 10 1809(build 18309)或更高版本
  • 如果 node-pty 加载失败,运行 npm rebuild node-pty 或重新安装
  • 确保已安装 Visual C++ Redistributable

运行 wechat-daemon --doctor 可快速检查环境状态。详见 问题排查

3. 完成微信登录

全局安装后运行:

wechat-setup

登录流程会:

  1. 获取微信登录二维码;
  2. 在终端打印二维码;
  3. 等待你在微信中扫码并确认;
  4. 保存本地登录凭据。

微信登录二维码

登录成功后,程序会清理旧的同步游标和上下文 token,避免旧会话状态污染新的登录状态。数据目录、状态文件和旧版本迁移说明见 问题排查

首次安装或微信登录过期时,四个直接启动命令也会在前台提示扫码登录。

4. 先从微信发一条同步消息(重要)

启动 bridge 后,建议先在微信里向 Bot 发送一条消息,例如 hello、你要执行的任务,或任意一句话。这样 bridge 能拿到最新的微信会话 context_token,之后本地终端中的输入、最终回复和审批提示才能稳定同步回微信。

如果冷启动或长时间闲置后直接从本地终端先发消息,bridge 通常仍会捕获这条本地输入并交给 Codex / Claude Code / OpenCode / Pi 处理,但回发到微信时可能因为旧的 context_token 失效而失败。表现是:本地已经有回复,微信暂时收不到;等你先从微信发来一条消息后,后续双向同步就能恢复正常。

5. 直接启动本地 CLI

先进入需要操作的项目目录:

cd D:\work\your-project

然后选择一个单命令入口:

使用的本地 CLI启动命令
Codexwechat-codex
Claude Codewechat-claude
OpenCodewechat-opencode
Piwechat-pi

这些命令会自动完成以下动作:

  1. 校验或刷新微信登录凭据;
  2. 如果当前目录已有 wechat-daemon,则委托 daemon 切换到对应 CLI;
  3. 如果没有 daemon,则创建或复用内部 transient bridge runtime;
  4. 如果旧 runtime 正在服务其他目录,则安全停止旧 runtime 并切换到当前目录;
  5. 等待当前目录对应的本地 endpoint 就绪;
  6. 打开可见的本地 CLI 会话。

没有 daemon 时,四个直接命令按单活工作区切换器工作:

  • 同一时间只有一个项目与微信对话;
  • Codex 在当前目录重复执行时会复用已有会话;Claude Code、OpenCode 和 Pi 启动器默认新建会话;
  • Pi 如需显式恢复上一次会话,可使用 wechat-pi --session-start-mode restore
  • 如果当前目录已经有可见 companion / panel 在运行,则不会重复打开第二个窗口;
  • 如果检测到可见端仍在运行但 worker 状态异常(如 stopped / error),会自动重启 bridge 再重新打开可见端;
  • 在其他目录执行会显式切换活动工作区。

wechat-codex-startwechat-claude-startwechat-opencode-startwechat-pi-start 暂时保留为过渡别名,功能与直接命令一致,但会输出弃用提示,并将在下一版本移除。

6. 常驻 daemon 模式(支持多 CLI 切换)

如果你希望微信连接长期保持在线,并在 Codex / Claude Code / OpenCode / Pi 之间来回切换,可以在项目目录启动统一 daemon:

cd D:\work\your-project
wechat-daemon

启动后,在微信里发送以下指令即可选择当前活动终端:

指令行为
/codex [prompt]切换到 Codex;携带 prompt 时切换后立即转发剩余文本
/claude [prompt]切换到 Claude Code;携带 prompt 时切换后立即转发剩余文本
/opencode [prompt]切换到 OpenCode;携带 prompt 时切换后立即转发剩余文本
/pi [prompt]切换到 Pi;携带 prompt 时切换后立即转发剩余文本

daemon 启动后,后续切换都可以直接从微信发起;如果对应 CLI 还没有可见窗口,daemon 会自动打开或复用它,不需要再手动运行 wechat-codexwechat-claudewechat-opencodewechat-pi

多CLI 示例

当前 daemon 行为如下:

  • daemon 绑定启动时的工作目录;暂不支持在微信里切换工作目录;
  • 启动时会自动接管并清理旧的单 bridge 进程、失效 lock 和旧 endpoint;
  • 切换适配器不会关闭之前的 CLI;
  • 如果对应适配器已经有可见 CLI 在运行,则直接复用;
  • 如果还没有对应 CLI,daemon 会自动打开一个新的可见终端;
  • 如果当前活动 CLI 的本地窗口被关闭,下一条普通微信输入会自动重开可见终端;Codex 会重置旧 runtime 的残留 busy/turn 状态并建立新的可见 thread;
  • Codex / Claude / OpenCode / Pi 的重要输出都会带上 [codex][claude][opencode][pi] 标签再发回微信;
  • 可以在微信里发送 /daemon-stop 停止 daemon。

也可以在启动时指定初始 CLI:

wechat-daemon --adapter codex
wechat-daemon --adapter claude --profile work

当同一工作目录已有 wechat-daemon 在运行时,四个直接启动命令会自动委托给 daemon:请求 daemon 切到对应 CLI,并在需要时打开可见终端,不会停止 daemon 或关闭其他 CLI。

其中 wechat-pi 默认表示启动一个新的 Pi session;如果 Pi TUI 已经可见,daemon 会在现有窗口中创建新 session。微信中的 /pi 仅用于切换适配器,仍会复用已经连接的 Pi TUI。

适配器支持情况

目前支持将本地文件发送到微信,微信也允许发送文件给本地 cli 解析 (注意模型本身要具备处理对应文件的能力!)

文件传输

微信发来的图片和普通文件也会被接收并保存到本地:

  • bridge 会将本地路径追加到转发给 Codex / Claude Code / OpenCode / Pi 的 prompt 中,模型可按需读取或解析这些文件;
  • 当前不会自动 OCR 图片,也不会自动抽取 PDF / DOCX 正文;如需解析,由本地 CLI 根据路径完成。
  • 具体保存位置见 问题排查
适配器当前状态说明
codex已接入wechat-codex 自动确保内部 runtime 并打开可见 Codex;微信跟随本地 thread
claude已接入wechat-claude 自动启动或复用 Claude Code;会话、最终回复与审批按 Claude session 语义同步
opencode已接入wechat-opencode 自动启动或复用 OpenCode;支持本地 session 跟随及微信 /new / /new-session
pi已接入wechat-pi 启动用户原生 Pi TUI,并通过本地 extension 让微信接管同一 session,支持最终回复、停止、新建和恢复 session

Pi 按全权限本地代理运行:bridge 不增加工具审批层,并传入 --approve 信任当前项目;读写文件和执行命令均使用启动 wechat-pi 的本地用户权限。原生 TUI 的主题、快捷键、模型选择和 extension UI 都会保留。wechat-pi 本身就是被微信接管的 Pi TUI;不要再启动第二个 Pi 进程同时写入同一个 session 文件。

Codex 示例

Codex windows

Codex Linux

Claude Code 示例

Claude Windows

Claude Linux

OpenCode 示例

OpenCode 模式下,微信侧支持 /new/new-session 创建新 session;如果在本地 OpenCode CLI 中创建新 session,微信消息也会跟随新的 session。

命令说明

常用全局命令

类型命令
登录与更新wechat-setupwechat-check-update
常驻 daemonwechat-daemon
Codexwechat-codex
Claude Codewechat-claude
OpenCodewechat-opencode
Piwechat-pi

wechat-*-start 暂时作为弃用别名保留一个版本。公开的 wechat-bridge* 命令和 Shell adapter 已移除;内部 bridge runtime 仍由直接命令和 daemon 自动管理。

Daemon CLI 参数

示例:

wechat-daemon --cwd D:\work\my-project
wechat-daemon --adapter codex
wechat-daemon --adapter claude --profile work

支持参数:

  • --cwd <path>:指定 daemon 绑定的工作目录;
  • --adapter <codex|claude|opencode|pi>:启动 daemon 后立即切换到指定 CLI;
  • --profile <name-or-path>:传给 daemon 创建的对应适配器;
  • --no-open:只创建 runtime slot,不自动打开可见 CLI;
  • --doctor:检查环境、CLI、锁、endpoint 和 daemon 状态。

直接启动命令参数

适用于 wechat-codexwechat-claudewechat-opencodewechat-pi

wechat-codex --cwd D:\work\my-project
wechat-claude --profile work
wechat-opencode --cwd D:\work\my-project
wechat-pi --cwd D:\work\my-project --model openai/gpt-5.6-sol

支持参数:

  • --cwd <path>:指定 runtime 与可见 CLI 对应的工作目录;
  • --profile <name-or-path>:传给内部 runtime;
  • --timeout-ms <ms>:等待当前目录 endpoint 的最长时间,默认 15000
  • --session-start-mode <restore|new>:显式选择恢复或新建会话;
  • 其他未知参数会继续透传给可见的底层 CLI。

默认会话策略:Codex 恢复当前会话;Claude Code、OpenCode 和 Pi 新建会话。

wechat-codex --yolo
wechat-codex --model gpt-5.2 --yolo
wechat-claude --dangerously-skip-permissions
wechat-claude --model sonnet --dangerously-skip-permissions

其中,--yolo 会传给 Codex;--dangerously-skip-permissions 会传给 Claude Code。它们只影响本地可见 CLI,不会覆盖内部 runtime 的连接参数、微信登录状态或工作区锁。由于这两类参数会降低审批保护,建议只在可信工作区中使用。

微信侧支持的指令

指令说明
普通文本发送到当前活动会话
/codex [prompt] / /claude [prompt] / /opencode [prompt] / /pi [prompt]daemon 模式下切换活动 CLI;已有 CLI 会复用,没有则自动打开;可选 prompt 会在切换成功后立即转发
/status查看 bridge 当前状态
/stop中断当前任务
/reset重建当前本地会话
/new/new-sessionOpenCode 或 Pi 模式下新建 session
/confirm / /deny处理 CLI 权限请求;需要一次性 code 的请求会在消息中提示具体确认格式
/daemon-stopdaemon 模式下停止常驻进程
/bindings查看当前所有表情绑定
/bind [表情] /命令绑定表情到指定命令
/unbind [表情]解除指定表情的绑定

说明:微信侧 /resume 目前暂时保持禁用;需要切换 Codex / Claude / OpenCode / Pi 会话时,优先在本地 companion 中使用 /new 或对应 CLI 的会话命令,微信会跟随本地活动会话。

表情绑定

Daemon 模式支持将微信表情映射为命令,在微信中发送表情即可快速触发操作。(不过注意,第一次启动相关cli的时候,最好不要带消息,等启动完成再“表情+文本”快速给指定 cli 发送消息。

表情触发

默认绑定:

表情命令说明
[OK]/confirm批准权限请求
[闭嘴]/stop中断当前任务
[拥抱]/claude切换到 Claude Code
[强]/codex切换到 Codex
[胜利]/opencode切换到 OpenCode
[再见]/daemon-stop停止 daemon

管理命令:

/bindings              查看当前所有绑定
/bind [表情] /命令     绑定表情到命令,如 /bind [微笑] /status
/unbind [表情]         解除绑定,如 /unbind [微笑]

触发规则:

  • 表情必须出现在消息开头才会触发(如 [OK] 触发,你好[OK] 不触发);
  • 如果表情后面还有文本(如 [拥抱]帮我写个脚本),会先执行命令再将剩余文本作为消息转发;
  • 大小写不敏感([OK][ok] 等价);
  • 修改后立即生效并持久化到 ~/.cli-bridge/emoji-bindings.json,重启 daemon 后保留。

工作区模型

本项目采用“当前目录即当前工作区”的模型:

  • 从哪个目录启动 wechat-codex / wechat-claude / wechat-opencode / wechat-pi,哪个目录就是当前工作区;
  • 直接命令会自动管理同一工作区的内部 runtime 与可见 CLI;
  • 不同工作区的运行状态相互隔离。

目前支持两种运行模型:

  • 直接启动模式:单 owner、内部 transient runtime、单活动工作区;
  • wechat-daemon:单 owner、单 daemon、绑定一个启动工作区,但可在这个工作区内同时保留 Codex / Claude Code / OpenCode / Pi 四个 CLI slot。

对四个直接启动命令来说,这意味着:

  • 如果同一工作区已有 daemon,它们会委托 daemon 切换 CLI;
  • 如果没有 daemon,它们会作为单活工作区切换器工作;
  • 当前目录重复执行是幂等的;
  • 在其他目录执行会触发工作区切换,而不是并行多开。

版本更新

检查更新

运行以下命令检查是否有新版本:

wechat-check-update

该命令会显示:

  • 当前安装的版本;
  • 远程仓库的最新版本;
  • 如果有更新,会提供详细的更新指引。

没有 daemon 时,四个直接命令启动的内部 runtime 会按现有缓存策略检查更新。自动检查在后台异步执行,不影响启动速度。

获取最新版本

如果你使用 npm 全局安装,建议直接执行:

npm install -g cli-wechat-bridge@latest

升级后请重启正在运行的 bridge 和 companion 终端,确保它们加载同一版本。

致谢

感谢支持

感谢 issue 反馈者和 PR 贡献者。

创作不易,如果觉得它有帮助或有意思,可以请喝杯奶茶。❤️

相关链接

主要依赖:

运行与开发基础:

  • Node.js:运行发布包和 CLI 入口
  • TypeScript:源码语言和构建工具链
  • Bun:源码模式运行与测试工具
  • ESLint:代码检查

社区与参考:

License

本项目采用双协议授权:

开源协议:AGPL-3.0

  • 个人使用、学习、研究:完全免费
  • 修改和衍生作品必须以相同协议(AGPL-3.0)开源
  • 通过网络提供基于本项目的服务,也必须公开完整源代码

商业授权

如果你希望在闭源商业产品中使用本项目(不公开你的源代码),需要获得商业许可。请联系作者获取商业授权方案:

Star History Chart

常见问题

What is CLI-WeChat-Bridge?

CLI-WeChat-Bridge is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by UNLINEARITY. 将 AI 命令行工具以最为原生的方式,集成到微信 ClawBot 中,目前支持集成 Codex、Claude Code、OpenCode、Pi Agent。 支持微信和本地终端线程(thread/session)共享、双向对话,支持将本地文件传输至微信,微信也支持发送文件到终端。现已支持多cli切换、微信表情绑定指令。. It has 470 GitHub stars.

Is CLI-WeChat-Bridge safe to use?

CLI-WeChat-Bridge returned warnings in SkillsLLM's automated security scan. It has no critical vulnerabilities, but review the flagged issues in the Security Report section before adding it to your workflow.

How do I install CLI-WeChat-Bridge?

Clone the repository with "git clone https://github.com/UNLINEARITY/CLI-WeChat-Bridge" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is CLI-WeChat-Bridge written in?

CLI-WeChat-Bridge is primarily written in TypeScript. It is open-source under UNLINEARITY on GitHub, so you can review or fork the full source.

Are there alternatives to CLI-WeChat-Bridge?

Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh CLI-WeChat-Bridge against similar tools.

评论 (0)

暂无评论,成为第一个分享想法的人!

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情

claude-code

by anthropics

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

120,03119,897Shell
AI 智能体
查看详情

开发者还喜欢

基于喜欢此 Skill 的开发者投票和收藏

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情