Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

cli-in-wechat

在微信中运行主流 AI 编程 CLI 工具 —— 通过微信 ClawBot 官方 iLink Bot API 实现。

支持的工具: Claude Code / Codex CLI / Gemini CLI / Kimi Code / OpenCode

它是什么

一个运行在你电脑上的桥接服务。微信是遥控器,电脑是执行端。

微信 ClawBot (手机)
    ↕  iLink Bot API — 微信官方消息通道 (不封号)
桥接服务 (你的电脑)
    ↕  spawn / Agent SDK
claude -p / codex exec / gemini -p / kimi -p / opencode run

功能

  • 5 大 CLI 工具,通过 @ 前缀随时切换
  • 最高权限默认开启
  • AskUserQuestion:Claude Code 的交互式提问转发到微信(Agent SDK)
  • 会话续接:连续对话自动保持上下文
  • /resume:浏览所有历史会话,选编号恢复(类似终端的 /resume
  • 跨通道漫游/session set <id> 从终端接续同一会话
  • 工具接力>> 传递上条结果,@tool1>tool2 链式调用
  • 40+ / 命令覆盖所有 CLI 核心 flag
  • 微信引用消息智能路由:回复哪条消息就由哪个工具接手

安装

前置要求

  • Node.js >= 18
  • 微信 已启用 ClawBot 插件(我 → 设置 → 插件)
  • 至少一个 CLI 工具:
npm install -g @anthropic-ai/claude-code   # Claude Code
npm install -g @openai/codex                # Codex CLI
npm install -g @google/gemini-cli           # Gemini CLI
npm install -g @moonshot-ai/kimi-code       # Kimi Code (或 curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash)
brew install opencode-ai/tap/opencode       # OpenCode

运行

git clone https://github.com/sgaofen/cli-in-wechat.git
cd cli-in-wechat
npm install
npm run dev           # 开发模式
npm run dev:debug     # 调试模式

首次运行显示 QR 码,用微信扫码登录 ClawBot。

CLI 工具认证

claude          # Anthropic 订阅账号
codex           # ChatGPT 账号
gemini          # 设置 GEMINI_API_KEY 或 OAuth
kimi login      # Kimi OAuth
# OpenCode: 设置 ANTHROPIC_API_KEY / OPENAI_API_KEY 等环境变量

使用方法

发消息

输入行为
直接打字发给上次使用的工具
@claude 写排序算法Claude Code
@codex fix the bugCodex CLI
@gemini 解释代码Gemini CLI
@kimi 重构模块Kimi Code
@opencode 分析项目OpenCode

切换后后续消息默认发给该工具。

工具接力

@claude 分析这个项目的架构
>> @codex 根据分析修复代码        ← Claude 输出作为 Codex 上下文
>> 继续优化                       ← 继续用 Codex
@claude>codex 先分析再修复        ← 链式调用

恢复历史会话

/resume                          ← 列出所有历史会话 + 摘要
/resume 3                        ← 恢复第 3 个
/session set <uuid>              ← 从终端接续会话

AskUserQuestion

Claude Code 需要你做选择时,问题自动转发到微信:

你发: @claude 帮我新建项目

微信收到:
  Claude Code 需要你的回答:
  ❓ What language?
    1. Python
    2. TypeScript
    3. Rust

你回复: 2
→ Claude 继续执行

完整命令列表

设置

命令作用工具
/status查看所有配置通用
/model <名>切模型所有
/mode <auto|safe|plan>权限模式所有
/effort <low|med|high|xhigh|max>思考深度Claude
/turns <数>最大轮次Claude
/budget <$>API 预算Claude
/dir <路径>工作目录通用
/system <提示>系统提示Claude
/tools <列表>允许工具Claude
/notool <列表>禁用工具Claude
/verbose已弃用(Kimi 新版无 --verbose
/bare跳过配置加载Claude
/adddir <路径>额外目录Claude/Codex
/name <名>会话命名Claude
/sandbox <ro|write|full>沙箱Codex
/searchweb 搜索Codex
/ephemeral临时模式Codex
/profile <名>配置Codex
/thinking已弃用(Kimi 新版无 --thinking
/approval <模式>审批模式Gemini
/include <目录>上下文目录Gemini
/ext <名>ExtensionsGemini
/thoughts显示 AI 思考内容通用
/msgmode <verbose|normal|compact|default>消息详细度通用

操作

命令作用
/diff查看 git 差异
/commit创建 git 提交
/review代码审查
/plan [描述]规划 / 切 plan 模式
/init创建项目配置文件
/files目录结构
/compact压缩上下文
/stats使用统计
/send <文件路径>发送本地文件到微信

会话

命令作用
/new新会话
/clear清除所有
/cancel取消任务
/fork分支会话
/resume浏览历史会话,选编号恢复
/resume <编号|uuid>恢复指定会话
/session查看当前会话 ID
/session set <id>跨通道漫游

快捷

命令等效
/yolomode=auto + effort=max
/fasteffort=low
/reset重置所有设置
/cc /cx /gm /km /oc快速切工具

权限模式

模式ClaudeCodexGeminiKimiOpenCode
auto--dangerously-skip-permissions--yolo--approval-mode yolo-p(自带 auto)--auto
safe默认权限--sandbox workspace-write--approval-mode default-p 恒 auto
plan--permission-mode plan--sandbox read-only--approval-mode plan

注:Kimi 非交互模式(-p)永远是 auto 权限,--prompt 不能与 --yolo/--auto/--plan 同用,故 /mode 对 Kimi 无效。

配置

~/.wx-ai-bridge/config.json

{
  "defaultTool": "claude",
  "workDir": "/Users/you",
  "cliTimeout": 300000,
  "allowedUsers": [],        // 见下方「安全」说明,留空 = 任何人可控制
  "tools": {
    "claude": { "args": ["--max-turns", "50"] }
  }
}

安全:allowedUsers 留空意味着任何能私聊机器人的微信好友都能以完整权限运行 CLI。 建议填入你自己的 ilink_user_id(启动日志会提示)。

网络与代理(故障排查)

所有对微信接口的请求都带 超时 + 指数退避抖动重试 + 可读诊断。瞬时网络抖动 (如 read ECONNRESETfetch failed)会被自动重试吞掉,不再像以前那样启动即崩 (issue #18)。

  • 代理:Node 的全局 fetch 默认不读代理环境变量。若你需要走代理访问微信, 设置 HTTPS_PROXY(或 HTTP_PROXY / ALL_PROXY)并安装可选依赖 undici

    npm i undici                 # 启用代理支持(可选依赖)
    export HTTPS_PROXY=http://127.0.0.1:7890
    npm run dev
  • 仍然 ECONNRESET / fetch failed:确认本机可访问 ilinkai.weixin.qq.com; 尝试关闭/更换代理或 VPN;用 npm run dev:debug 查看带诊断的日志。

  • 会话过期自动重登:token 失效(errcode -14/-13)时会自动重新出示 QR 码重登, 而不是直接退出。

架构

src/
├── index.ts              # 入口
├── config.ts             # 配置
├── cli/                  # 子命令
│   └── send.ts           # wcli send:发送本地文件到微信
├── ilink/                # 微信 iLink Bot API
│   ├── types.ts          # 协议类型
│   ├── auth.ts           # QR 扫码登录
│   └── client.ts         # 长轮询 + 发消息 + typing
├── adapters/             # CLI 工具适配器
│   ├── base.ts           # 接口 + 共享 helpers (spawnCli: 绕 .cmd shim 直连 node/exe, argv 逐字)
│   ├── claude.ts         # Agent SDK + CLI 降级
│   ├── codex.ts          # codex exec + stdin 传参
│   ├── gemini.ts         # gemini + stdin 传参 (-o json)
│   ├── kimi.ts           # kimi -p (argv 传参, spawnCli 防 cmd.exe 损坏) + --continue 续会话
│   ├── opencode.ts       # opencode run --format json
│   └── registry.ts       # 自动检测已安装工具
├── bridge/               # 桥接逻辑
│   ├── session.ts        # 会话持久化 (原子写)
│   ├── formatter.ts      # 响应格式化
│   └── router.ts         # @ 路由 + / 命令 + >> 接力 + 链式调用
│                         # + /resume 历史会话浏览
│                         # + AskUserQuestion 微信转发
└── utils/               # 工具库
    ├── http.ts           # 带超时/重试/代理的 fetch (issue #18)
    ├── media.ts          # 媒体下载 + AES 解密 + 文件名净化
    ├── crypto.ts         # AES-ECB / 签名工具
    └── logger.ts         # 分级日志

微信 iLink Bot API

微信 2026 年 3 月推出的 ClawBot 插件官方 API:

  • 域名:ilinkai.weixin.qq.com(腾讯官方)
  • 认证:QR 扫码 → Bearer token
  • 收消息:HTTP 长轮询 (35s)
  • 发消息:POST + context_token
  • 官方通道,不封号

License

MIT

关于 About

Run Claude Code, Codex, Gemini, Kimi, OpenCode in WeChat

语言 Languages

TypeScript97.5%
JavaScript2.5%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
52
Total Commits
峰值: 31次/周
Less
More

核心贡献者 Contributors