当前位置: 首页 > news >正文

基于[ClaudeCode]源码魔改重建深度集成微信消息桥使微信用户可直接与 Claude 对话,Claude 也可主动向微信用户发送文字、图片和文件

基于Anthropic官方不情愿开源的ClaudeCode源码魔改 — Claude Code微信集成版(CyberClaude)

项目仓库:https://github.com/oocsoo/CyberClaude

微信saas服务平台:www.wechatbot.online (需付费,自行选择) ,亦可使用企业微信魔改!

基于 Anthropic Claude Code 源码重建,并深度集成微信消息桥,使微信用户可直接与 Claude 对话,Claude 也可主动向微信用户发送文字、图片和文件。(版权归Anthropic官方)


目录

  • 架构概览
  • 环境要求
  • 快速开始
  • 微信配置
  • 启动方式
  • 消息类型支持
  • Claude 主动发送能力
  • 文件存储(天翼云 OSS)
  • 模型配置
  • 目录结构
  • 工作原理

架构概览

微信用户 │ 发送消息(文字/语音/图片) ▼ 微信服务(WebSocket + HTTP API) │ ▼ interactive-bridge.ts ← 后台静默运行 │ 文字直接注入 │ 语音 → 腾讯云 ASR → 文字 │ 图片 → 阿里云 Qwen3 → 描述文字 ▼ Claude Code REPL(交互式终端) │ Claude 处理,可调用所有工具 │ 新加入工具: WechatSendImage / WechatSendFile │ 如果star数超过1000,我再把语音回复功能加上! ▼ 回复文本 → 微信用户

环境要求

依赖版本
Bun≥ 1.3.5
Node.js≥ 24.0.0
微信saas服务WebSocket + HTTP API

环境变量(必填):

ANTHROPIC_AUTH_TOKEN=sk-ant-...# Claude API KeyANTHROPIC_BASE_URL=https://...# API 代理地址(如使用中转)

快速开始

# 1. 安装依赖buninstall# 2. 复制并填写微信配置cpwechat-config.json.example wechat-config.json# 编辑 wechat-config.json(见下方说明)# 3. 启动(自动挂载微信桥)bun run dev -- --dangerously-skip-permissions

启动后终端进入交互模式,同时后台自动连接微信 Hook 服务,微信消息会直接注入 CyberClaude


微信配置

编辑项目根目录的wechat-config.json

{"robotId":"wxid_xxxxxxxxxxxxxxxx","authorization":"wx_xxxxxxxxxxxxxxxx","serverIp":"your.websocket.server.ip","serverPort":5555,"apiHost":"your.api.server.host","allowFrom":[],"name":"Claude 助手","aliyunApiKey":"sk-xxxxxxxxxxxxxxxx"}
字段必填说明
robotId微信机器人的 wxid(如wxid_abc123
authorizationAPI 鉴权 Token
serverIpWebsocket服务器 IP
serverPortWebSocket 服务器 端口,默认5555
apiHost微信 HTTP API 服务器地址(ip:port或域名)
allowFrom白名单 wxid 列表,空数组表示接受所有人消息
name机器人名称(仅用于日志显示)
aliyunApiKey阿里云 DashScope Key,用于图片识别;留空则跳过图片消息

启动方式

交互式模式(推荐)

bun run dev -- --dangerously-skip-permissions
  • 进入 Claude Code 交互终端
  • 项目目录存在wechat-config.json时,自动在后台启动微信桥
  • 微信消息注入终端,Claude 回复后同步发回微信

仅 Claude Code(不启动微信桥)

bun run dev

不带--dangerously-skip-permissions时,不会自动启动微信桥。


消息类型支持

微信消息类型MsgType处理方式
文字1直接注入 Claude
图片3阿里云 Qwen3 图像理解 → 描述文字注入 Claude
语音34腾讯云 ASR 语音识别 → 文字注入 Claude
其他(文件、链接等)其他忽略

语音识别(腾讯云 ASR):

  • 格式:SILK(微信原生格式)
  • 语言:16k 中文普通话
  • 识别失败时向用户回复错误提示

图片识别(阿里云 Qwen3 Omni):

  • 通过阿里云 DashScope 实时 WebSocket API
  • 输出:详细的图片内容描述,作为 Claude 的输入上下文
  • 未配置aliyunApiKey时回复提示信息

Claude 主动发送能力

微信桥启动后,Claude 可主动调用以下工具向微信用户发送内容:

WechatSendImage — 发送图片

参数: source 图片来源,支持: - 本地绝对路径(自动上传 OSS 后发送) - 公网 HTTP/HTTPS URL(直接发送)

示例场景:用户说"截图发我一下"→ Claude 截图保存本地 → 调用此工具自动上传并发送。

WechatSendFile — 发送文件

参数: source 文件来源,支持本地路径或公网 URL fileName (可选) 微信端显示的文件名,省略时自动从路径提取

支持任意格式:PDF、Word、Excel、ZIP、代码文件等。

这两个工具仅在微信桥连接后对 Claude 可见,不影响普通 Claude Code 会话。


模型配置

优先级顺序

模型选择遵循以下优先级(从高到低):

1. /model 命令(会话中动态切换) ← 最高优先级 2. --model CLI 启动参数 3. ANTHROPIC_MODEL 环境变量 4. settings.json 中的 model 字段 5. 订阅等级默认值 ← 最低优先级

模型别名

启动或切换模型时可使用简短别名,无需记忆完整模型 ID:

别名对应模型说明
opusclaude-opus-4-6最强模型
sonnetclaude-sonnet-4-6均衡模型(默认)
haikuclaude-haiku-4-5-20251001最快/最省
bestclaude-opus-4-6永远指向最强模型
opus[1m]claude-opus-4-6 + 100 万 token 上下文需付费订阅
sonnet[1m]claude-sonnet-4-6 + 100 万 token 上下文需付费订阅
opusplan计划模式 → Opus,普通模式 → Sonnet自动切换

[1m]后缀可附加在任意别名后,启用 100 万 token 扩展上下文(仅限付费订阅,不支持第三方 API)。


环境变量

模型选择
# 指定主模型(别名或完整 ID)ANTHROPIC_MODEL=sonnetANTHROPIC_MODEL=claude-opus-4-6# 覆盖各级别默认模型(用于锁定具体版本)ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-6ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5-20251001# 覆盖内部快速小模型(token 估算等轻量任务使用)ANTHROPIC_SMALL_FAST_MODEL=claude-haiku-4-5-20251001
API 连接
# 自定义 API 端点(中转代理、私有部署)ANTHROPIC_BASE_URL=https://your-proxy.example.com# API KeyANTHROPIC_API_KEY=sk-ant-...ANTHROPIC_AUTH_TOKEN=sk-ant-oat01-...# Bearer Token 格式(部分代理使用)# 自定义请求头ANTHROPIC_CUSTOM_HEADERS='{"X-Custom": "value"}'
AWS Bedrock
# 启用 Bedrock 模式CLAUDE_CODE_USE_BEDROCK=true# 区域配置AWS_DEFAULT_REGION=us-east-1ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION=us-west-2# 单独指定 Haiku 区域# 认证AWS_BEARER_TOKEN_BEDROCK=your-token# Bearer Token 认证(替代 IAM)CLAUDE_CODE_SKIP_BEDROCK_AUTH=true# 跳过认证(仅测试/代理)
Google Cloud Vertex AI
# 启用 Vertex AI 模式CLAUDE_CODE_USE_VERTEX=true# 项目与区域ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-projectCLOUD_ML_REGION=us-central1# 按模型指定区域(优先级最高)VERTEX_REGION_CLAUDE_HAIKU_4_5=us-east1VERTEX_REGION_CLAUDE_3_5_SONNET=europe-west1# GCP 认证GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.jsonCLAUDE_CODE_SKIP_VERTEX_AUTH=true# 跳过认证(仅测试)
Azure AI Foundry
# 启用 Foundry 模式CLAUDE_CODE_USE_FOUNDRY=true# 端点(二选一)ANTHROPIC_FOUNDRY_RESOURCE=my-resource# 自动构建 https://my-resource.services.ai.azure.comANTHROPIC_FOUNDRY_BASE_URL=https://...# 直接指定完整 URL# 认证ANTHROPIC_FOUNDRY_API_KEY=your-azure-key# 不设则使用 Azure AD DefaultAzureCredentialCLAUDE_CODE_SKIP_FOUNDRY_AUTH=true# 跳过认证(仅测试)
功能开关
# 禁用旧版模型 ID 自动重映射(保留旧 ID 直接使用)CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP=true# 禁用快速模式CLAUDE_CODE_DISABLE_FAST_MODE=true

CLI 参数

# 启动时指定模型bun run dev ----modelopus bun run dev ----modelclaude-sonnet-4-6# 恢复默认bun run dev ----modeldefault# 打印模式的备用模型(主模型过载时自动切换)bun run dev--print"你好"--modelsonnet --fallback-model haiku# 思维模式bun run dev ----thinkingenabled# 开启深度推理bun run dev ----thinkingadaptive# 自动判断是否推理bun run dev ----thinkingdisabled# 关闭推理

会话中切换模型(/model 命令)

/model# 打开交互式选择器/model opus# 直接切换到 Opus/model sonnet[1m]# 切换到 Sonnet 百万上下文版/model default# 恢复默认模型/model--info# 显示当前模型信息

settings.json 模型字段

位置:~/.claude/settings.json

{"model":"sonnet","availableModels":["opus","sonnet","haiku","claude-sonnet-4-6"],"modelOverrides":{"claude-opus-4-6":"us.anthropic.claude-opus-4-6-v1:0","claude-sonnet-4-6":"anthropic.claude-sonnet-4-6:0"}}
字段说明
model默认模型,支持别名或完整 ID
availableModels企业白名单,限制可用模型范围;未设置则不限制
modelOverridesAnthropic ID → 云厂商 ID 映射(主要用于 Bedrock ARN)

各 API 提供商的 Bedrock 模型 ID 参考

Anthropic 模型AWS Bedrock ID
claude-opus-4-6us.anthropic.claude-opus-4-6-v1:0
claude-sonnet-4-6us.anthropic.claude-sonnet-4-6-v1:0
claude-haiku-4-5-20251001us.anthropic.claude-haiku-4-5-v1:0

OpenAI 兼容模式

Claude Code 内置 OpenAI 格式适配层,可对接任何兼容POST /v1/chat/completions接口的服务,包括 OpenRouter、Azure OpenAI、本地 Ollama、各类中转代理等。

工作原理

启用后,Claude Code 会在发请求前自动:

  1. 将 Anthropic 格式的请求(/v1/messages)转换为 OpenAI 格式(/v1/chat/completions
  2. 将 OpenAI SSE 流的响应转换回 Anthropic 格式
  3. 工具调用、多轮对话全程透明转换,Claude 无感知
方式一:环境变量(推荐)
# 启用 OpenAI 兼容模式CLAUDE_CODE_COMPATIBLE_API_PROVIDER=openai# 接口地址(到 /v1 之前的部分)ANTHROPIC_BASE_URL=https://openrouter.ai/api# 该服务的 API KeyANTHROPIC_API_KEY=sk-or-v1-...# 该服务上的模型名称ANTHROPIC_MODEL=gpt-4o
方式二:配置文件持久化

写入~/.claude/config.json(全局配置文件):

{"customApiEndpoint":{"provider":"openai","baseURL":"https://openrouter.ai/api","apiKey":"sk-or-v1-xxxxxxxx","model":"anthropic/claude-3-5-sonnet","savedModels":["anthropic/claude-3-5-sonnet","gpt-4o","deepseek/deepseek-r1"]}}
方式三:会话中动态切换

在交互终端中使用斜杠命令:

/add-model gpt-4o# 添加并切换到指定模型/add-model deepseek/deepseek-r1# 支持任意 OpenAI 兼容模型名/remove-model gpt-4o# 从保存列表中移除
常见服务配置示例

OpenRouter(支持数百个模型):

ANTHROPIC_BASE_URL=https://openrouter.ai/apiANTHROPIC_API_KEY=sk-or-v1-...ANTHROPIC_MODEL=anthropic/claude-opus-4# 或 gpt-4o、deepseek/r1 等CLAUDE_CODE_COMPATIBLE_API_PROVIDER=openai

Azure OpenAI

ANTHROPIC_BASE_URL=https://<your-resource>.openai.azure.com/openai/deployments/<deployment>ANTHROPIC_API_KEY=<azure-api-key>ANTHROPIC_MODEL=gpt-4oCLAUDE_CODE_COMPATIBLE_API_PROVIDER=openai

Ollama(本地模型)

ANTHROPIC_BASE_URL=http://localhost:11434ANTHROPIC_API_KEY=ollama# 任意非空值即可ANTHROPIC_MODEL=llama3.2# 已拉取的模型名CLAUDE_CODE_COMPATIBLE_API_PROVIDER=openai

CLAUDE中转代理

ANTHROPIC_BASE_URL=https://4399code.com/claudecodeANTHROPIC_AUTH_TOKEN=sk-ant-oat01-...# 如果代理兼容 Anthropic 原生格式,不需要设置 CLAUDE_CODE_COMPATIBLE_API_PROVIDER
注意事项
项目说明
请求路径兼容模式发送到baseURL/v1/chat/completions,原生模式发送到baseURL/v1/messages
模型名称必须填写目标服务识别的模型名,不能用 Claude Code 的别名(如opus
工具调用自动在 Anthropictool_use↔ OpenAItool_calls之间转换
思维模式OpenAI 兼容模式不支持扩展思维(--thinking),此参数会被忽略
1M 上下文[1m]后缀不适用于第三方模型
优先级配置文件中的provider字段优先于CLAUDE_CODE_COMPATIBLE_API_PROVIDER环境变量

快速模式(Fast Mode)

  • 支持 Opus 4.6 / Sonnet 4.6 / Haiku 4.5
  • 切换到不支持的模型时自动关闭
  • 需要付费订阅,免费账号不可用

计划模式自动升级

  • 使用haiku时进入计划模式,自动升级到 Sonnet
  • 使用opusplan别名:计划模式用 Opus,普通模式用 Sonnet

旧版模型 ID 重映射

  • claude-opus-4claude-opus-4-0claude-opus-4-1自动重映射到当前 Opus 版本
  • 仅限第一方 API;Bedrock/Vertex/Foundry 原样传递
  • 设置CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP=true可禁用此行为

目录结构

Claude-Code/ ├── src/ │ ├── wechat-mode/ │ │ ├── interactive-bridge.ts # 交互式微信桥(核心) │ │ │ WebSocket 接收、ASR/图片识别、 │ │ │ 天翼云 OSS 上传、REPL 消息注入 │ │ └── index.ts # 独立无头模式(备用) │ │ │ ├── tools/ │ │ ├── WechatSendImageTool/ # 发图片工具 │ │ └── WechatSendFileTool/ # 发文件工具 │ │ │ ├── utils/ │ │ ├── wechatHook.ts # 桥接钩子(零依赖单例) │ │ └── messageQueueManager.ts # REPL 消息注入队列 │ │ │ ├── entrypoints/ │ │ └── cli.tsx # 启动入口,自动挂载微信桥 │ │ │ ├── main.tsx # onTurnComplete 回调注册 │ └── screens/REPL.tsx # 交互式终端(React + Ink) │ ├── wechat-config.json # 微信配置(不提交到 git) ├── wechat-config.json.example # 配置模板 └── package.json

工作原理

消息接收链路

  1. cli.tsx检测到--dangerously-skip-permissions+wechat-config.json存在,调用startWechatInteractiveBridge()
  2. interactive-bridge.ts建立 WebSocket 连接到微信 Hook 服务
  3. 收到消息后:
    • 文字:直接进入步骤 4
    • 语音:下载 SILK 文件 → 腾讯云 ASR → 文字
    • 图片:下载图片 → 阿里云 Qwen3 → 描述文字
  4. 发送方的wxid入队(pendingWechatSenders),文字内容通过enqueue()注入 REPL
  5. REPL 将文字作为用户输入提交给 Claude

回复发送链路

  1. Claude 完成回复,REPL.tsx触发onTurnComplete(messages)
  2. main.tsx调用notifyWechatTurnComplete(messages)
  3. interactive-bridge.ts的回调从messages中提取最后一条助手文本
  4. 从队列取出对应wxid,调用微信 API 发送回复
  5. 若 Claude 调用了WechatSendImage/WechatSendFile,文件先上传 OSS 再发送

权限机制

微信桥下 Claude 拥有完整工具权限(bypassPermissions),无需逐条确认,可直接执行 Bash 命令、读写文件、调用所有工具。

http://www.jsqmd.com/news/583865/

相关文章:

  • MS5540C传感器驱动开发:类SPI协议与校准算法详解
  • LeetCode hot 100 (8-11,自用2026.04.03)
  • Spring Boot注解大赏:40个常用注解助你一臂之力
  • 嵌入式开发中的策略模式应用与优化
  • 探索脊髓损伤与性别差异的统计分析
  • 【数据结构与算法】第24篇:哈夫曼树与哈夫曼编码
  • Cypress是什么
  • 告别token焦虑,Claude Code 本地免费运行
  • 学术研究利器:OpenClaw+千问3.5-9B自动整理文献综述
  • OpenClaw错误处理:gemma-3-12b-it任务失败自动恢复机制
  • 别让APP名字和图标毁了你的Toast!一招教你Android优化技巧
  • 2026-04-02 打卡第 2 天
  • 技术创业中的风险管理:从内核开发到商业稳定
  • JavaScript是什么
  • CSS高频八股
  • 密胺餐具批发新选择:为何河北悦源贸易有限公司成为餐饮采购的可靠伙伴? - 2026年企业推荐榜
  • 百度网盘提取码智能解析:解决资源获取痛点的自动化方案
  • 【数据结构】线索二叉树之中序遍历线索化详解与实现
  • 2026最权威的六大AI论文网站解析与推荐
  • Arduino多板型编译期引脚元数据库:variants_collector
  • 技术创业中的技术创新:从内核开发到商业价值
  • OpenClaw安全审计:Qwen3-32B私有镜像下的操作日志与回滚机制
  • 2026届学术党必备的六大AI辅助论文神器推荐
  • OpenClaw安全防护方案:Gemma-3-12b-it任务执行权限管控
  • 2026年云南全屋定制如何选?深度解析昆明木菲装饰的一站式整装之道 - 2026年企业推荐榜
  • OpenClaw模型微调:优化千问3.5-35B-A3B-FP8在特定任务的表现
  • G-Helper:华硕硬件全能调控工具 玩家与创作者指南
  • OpenClaw性能调优实战:Qwen3-32B在RTX4090D上的量化推理加速
  • 2026届最火的AI辅助论文助手解析与推荐
  • 低成本数据标注:OpenClaw+Phi-3-vision-128k-instruct半自动化标记工具