paceaitian/cc-wechat 是一个把 Claude Code 接入微信的开源工具。它的核心路径非常直白:
微信 → 腾讯 iLink API → MCP Server (long-poll) → Claude Code ← sendMessage ← reply tool
不需要 OpenClaw,不需要逆向微信协议,直接调用腾讯官方的 iLink Bot API。安装只需要一条 npx cc-wechat@latest install,扫码登录后就能在微信对话框里和本地的 Claude Code 双向通讯——文字、图片、视频、文件都支持。本文拆解完整搭建流程以及搭完之后会踩到的坑。

前置条件
开始之前确认以下几项:
| 项目 | 要求 |
|---|---|
| Claude Code | v2.1.80 及以上 |
| Node.js | >= 22 |
| 微信 | iOS / Android / macOS / Windows 均可,需支持 iLink Bot 扫码 |
如果你的 Claude Code 版本低于 2.1.80,Channel 功能可能无法使用。先 claude --version 确认一下。
快速安装
一条命令搞定:
npx cc-wechat@latest install
这条命令做了三件事:
- 把 cc-wechat 注册为 Claude Code 的 MCP Server(用户级别)
- 在终端打印 iLink Bot 的二维码,用微信扫码授权
- 输出后续的启动命令
扫码成功后,登录凭据保存到 ~/.claude/channels/wechat/<profile>/account.json,下次启动不需要重新扫。
启动 Claude Code + 微信频道
安装完成后,启动命令是:
claude --dangerously-load-development-channels server:wechat-channel
--dangerously-load-development-channels 是因为 cc-wechat 目前作为开发态 Channel 加载。启动后 Claude Code 会同时监听终端输入和微信消息——你既可以在终端里像往常一样使用 Claude Code,也可以从微信那边发消息过来。
遇到 "Channels are not currently available" 怎么办
这是最常见的问题。Anthropic 对 Channel 功能做了分阶段灰度发布,你的 Claude Code 版本可能还没被放开。cc-wechat 提供了一个独立的补丁工具来解决:
npx cc-channel-patch@latest
这个补丁做了三处修改:
| 补丁目标 | 作用 |
|---|---|
tengu_harbor feature flag |
绕过 Anthropic 的灰度发布检查 |
| Channel gate auth | 跳过 accessToken 验证(适用于代理用户) |
| UI notice | 移除"Channels are not currently available"的提示 |
补丁的特点:
- 跨平台:Windows、macOS、Linux、WSL 全部支持
- 自动检测:区分原生安装和 npm 安装的 Claude Code,自动找到正确的文件路径
- 正则匹配:不硬编码版本号,适配所有 Claude Code 版本
- 安全回退:如果 Claude Code 正在运行,生成
.patched文件供你手动替换
如果你升级了 Claude Code 版本,补丁可能被覆盖,需要重新执行一次。想还原的话:
npx cc-channel-patch unpatch
手动安装方式
如果你不想用 npx cc-wechat@latest install 一键安装,也可以分步操作:
# 1. 全局安装 cc-wechat
npm i -g cc-wechat
# 2. 手动注册 MCP Server(用户级别)
claude mcp add -s user wechat-channel -- npx -y cc-wechat@latest
# 3. 扫码登录
npx cc-wechat login
# 4. 启动
claude --dangerously-load-development-channels server:wechat-channel
手动方式的好处是你能精确控制每一步,出问题时更容易定位。
实际使用
登录成功后,在微信里找到你授权的 iLink Bot 对话,直接发消息:
- 文字:
帮我检查一下 src/auth/token.ts 里的刷新逻辑 - 图片:截一张报错截图发过去,Claude Code 会读取并分析
- 文件:发
.log、.json等文件,Claude Code 按需处理
Claude Code 收到消息后可以调用它所有的工具——Read、Edit、Bash、WebSearch、Write——所有执行都在你启动 cc-wechat 的那台机器本地进行。回复通过 reply tool 原路返回微信,支持文本和媒体。
需要注意的是:权限确认仍然需要在终端完成。这是 Claude Code 自身的限制——当 Agent 需要执行有风险的操作时,你需要回到终端点确认。不能完全"无脑"用微信远程操控。
多账号配置
cc-wechat 支持按项目使用不同的微信账号。通过 WECHAT_PROFILE 环境变量区分:
在项目根目录创建 .mcp.json:
{
"mcpServers": {
"wechat-channel": {
"command": "npx",
"args": ["-y", "cc-wechat@latest"],
"env": { "WECHAT_PROFILE": "work" }
}
}
}
每个 profile 的凭据独立存储:
~/.claude/channels/wechat/<profile>/
├── account.json # 登录凭据
└── sync-buf.txt # 消息同步游标
不带 WECHAT_PROFILE 时使用全局默认账号(存储在 ~/.claude/claude.json 关联的目录下)。新 profile 首次需要重新扫码登录。
典型用法:个人微信用默认 profile,公司微信用 WECHAT_PROFILE=work,不同项目自动切换。
iLink Bot API 速览
cc-wechat 底层调用了 7 个腾讯 iLink 接口,了解它们有助于排查问题:
| 接口 | 用途 |
|---|---|
get_bot_qrcode |
获取登录二维码 |
get_qrcode_status |
轮询扫码状态 |
getupdates |
长轮询拉取新消息(35 秒超时) |
sendmessage |
发送消息 |
sendtyping |
显示"正在输入"状态 |
getconfig |
获取 typing ticket |
getuploadurl |
获取 CDN 上传签名(用于图片/视频/文件) |
消息拉取使用的是长轮询(long-poll),不是 WebSocket。35 秒超时意味着网络不稳定时可能偶尔断开,cc-wechat 会自动重连。
常见踩坑与对策
1. 补丁被 Claude Code 更新覆盖
Claude Code 自动更新后,cc-channel-patch 打的补丁会失效。解法:更新后重跑 npx cc-channel-patch@latest。如果你用 npm 全局安装了 Claude Code,可以考虑锁版本。
2. 登录态过期
iLink Bot 的 session 会过期,过期后微信消息不再转发。重新扫码:
npx cc-wechat login
3. 语音消息只有文字
cc-wechat 对语音消息只提取转写文本,不传递原始音频。这是设计选择——Claude Code 本身也不处理音频。
4. 图片发过去没反应
如果你的 Claude Code 使用的模型不支持 vision(例如某些第三方中转的纯文本模型),图片会被忽略。确认你用的是支持多模态的 Claude 模型。
5. 必须先从微信端发第一条消息
iLink Bot 的机制要求用户先发起消息,系统才为该会话分配 context token。Claude Code 不能主动推消息到微信——必须用户先开口。
6. 安全问题
从微信触发的 Claude Code 操作在本地机器上执行。强烈建议:
- 不要在生产服务器上使用
- 启动时保持默认权限模式,危险操作会弹终端确认
- 如果多人能给你的 iLink Bot 发消息,考虑限制白名单
与其他方案的关系
cc-wechat 的定位很明确:Claude Code 的微信 Channel 实现。如果你需要多平台(飞书/钉钉/Slack/Telegram),看 chenhg5/cc-connect。如果你想通过插件市场安装,看 Wangnov/gewe-cc。如果你想要一个完整的多模型 AI 微信助手(而不只是 Claude Code 桥接),看 zhayujie/chatgpt-on-wechat。
cc-wechat 的优势在于:最少依赖、最直接的路径、只做一件事。
总结
cc-wechat 把"在微信里用 Claude Code"这件事压缩到了极简路径:一条 npx cc-wechat@latest install、一次扫码、一个启动命令。它不试图重新包装 Claude Code,只做消息桥接——微信消息进来,走 iLink API 到本地 MCP Server,再喂给 Claude Code;Claude Code 的回复原路返回微信。架构简单意味着出问题容易排查,也意味着稳定性更可控。
唯一需要记住的是:方便不等于安全。权限确认仍在终端,不要在不受控的环境里运行。把它当成你已有 Claude Code 工作流的"微信遥控器"来用,而不是一个可以脱离终端独立运行的自动化系统,就不容易出事。
评论