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

项目仓库:https://github.com/oocsoo/CyberClaude
在这里插入图片描述

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

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


目录


架构概览

微信用户
   │  发送消息(文字/语音/图片)
   ▼
微信服务(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 Key
ANTHROPIC_BASE_URL=https://...         # API 代理地址(如使用中转)

快速开始

# 1. 安装依赖
bun install

# 2. 复制并填写微信配置
cp wechat-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
authorization API 鉴权 Token
serverIp Websocket服务器 IP
serverPort WebSocket 服务器 端口,默认 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:

别名 对应模型 说明
opus claude-opus-4-6 最强模型
sonnet claude-sonnet-4-6 均衡模型(默认)
haiku claude-haiku-4-5-20251001 最快/最省
best claude-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=sonnet
ANTHROPIC_MODEL=claude-opus-4-6

# 覆盖各级别默认模型(用于锁定具体版本)
ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-6
ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6
ANTHROPIC_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 Key
ANTHROPIC_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-1
ANTHROPIC_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-project
CLOUD_ML_REGION=us-central1

# 按模型指定区域(优先级最高)
VERTEX_REGION_CLAUDE_HAIKU_4_5=us-east1
VERTEX_REGION_CLAUDE_3_5_SONNET=europe-west1

# GCP 认证
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
CLAUDE_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.com
ANTHROPIC_FOUNDRY_BASE_URL=https://...         # 直接指定完整 URL

# 认证
ANTHROPIC_FOUNDRY_API_KEY=your-azure-key       # 不设则使用 Azure AD DefaultAzureCredential
CLAUDE_CODE_SKIP_FOUNDRY_AUTH=true             # 跳过认证(仅测试)
功能开关
# 禁用旧版模型 ID 自动重映射(保留旧 ID 直接使用)
CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP=true

# 禁用快速模式
CLAUDE_CODE_DISABLE_FAST_MODE=true

CLI 参数

# 启动时指定模型
bun run dev -- --model opus
bun run dev -- --model claude-sonnet-4-6

# 恢复默认
bun run dev -- --model default

# 打印模式的备用模型(主模型过载时自动切换)
bun run dev --print "你好" --model sonnet --fallback-model haiku

# 思维模式
bun run dev -- --thinking enabled    # 开启深度推理
bun run dev -- --thinking adaptive   # 自动判断是否推理
bun run dev -- --thinking disabled   # 关闭推理

会话中切换模型(/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 企业白名单,限制可用模型范围;未设置则不限制
modelOverrides Anthropic ID → 云厂商 ID 映射(主要用于 Bedrock ARN)

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

Anthropic 模型 AWS Bedrock ID
claude-opus-4-6 us.anthropic.claude-opus-4-6-v1:0
claude-sonnet-4-6 us.anthropic.claude-sonnet-4-6-v1:0
claude-haiku-4-5-20251001 us.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 Key
ANTHROPIC_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/api
ANTHROPIC_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-4o
CLAUDE_CODE_COMPATIBLE_API_PROVIDER=openai

Ollama(本地模型)

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

CLAUDE中转代理

ANTHROPIC_BASE_URL=https://4399code.com/claudecode
ANTHROPIC_AUTH_TOKEN=sk-ant-oat01-...
# 如果代理兼容 Anthropic 原生格式,不需要设置 CLAUDE_CODE_COMPATIBLE_API_PROVIDER
注意事项
项目 说明
请求路径 兼容模式发送到 baseURL/v1/chat/completions,原生模式发送到 baseURL/v1/messages
模型名称 必须填写目标服务识别的模型名,不能用 Claude Code 的别名(如 opus
工具调用 自动在 Anthropic tool_use ↔ OpenAI tool_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 命令、读写文件、调用所有工具。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐