下拉查看上一篇

cc-wechat 实战搭建:扫码即用,把 Claude Code 装进微信


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 双向通讯——文字、图片、视频、文件都支持。本文拆解完整搭建流程以及搭完之后会踩到的坑。

cc-wechat 项目

前置条件

开始之前确认以下几项:

项目 要求
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

这条命令做了三件事:

  1. 把 cc-wechat 注册为 Claude Code 的 MCP Server(用户级别)
  2. 在终端打印 iLink Bot 的二维码,用微信扫码授权
  3. 输出后续的启动命令

扫码成功后,登录凭据保存到 ~/.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 工作流的"微信遥控器"来用,而不是一个可以脱离终端独立运行的自动化系统,就不容易出事。

参考来源

评论

上滑查看下一篇