基于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.5Node.js≥ 24.0.0微信saas服务WebSocket HTTP API环境变量必填ANTHROPIC_AUTH_TOKENsk-ant-...# Claude API KeyANTHROPIC_BASE_URLhttps://...# 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_abc123authorization✅API 鉴权 TokenserverIp✅Websocket服务器 IPserverPortWebSocket 服务器 端口默认5555apiHost✅微信 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。环境变量模型选择# 指定主模型别名或完整 IDANTHROPIC_MODELsonnetANTHROPIC_MODELclaude-opus-4-6# 覆盖各级别默认模型用于锁定具体版本ANTHROPIC_DEFAULT_OPUS_MODELclaude-opus-4-6ANTHROPIC_DEFAULT_SONNET_MODELclaude-sonnet-4-6ANTHROPIC_DEFAULT_HAIKU_MODELclaude-haiku-4-5-20251001# 覆盖内部快速小模型token 估算等轻量任务使用ANTHROPIC_SMALL_FAST_MODELclaude-haiku-4-5-20251001API 连接# 自定义 API 端点中转代理、私有部署ANTHROPIC_BASE_URLhttps://your-proxy.example.com# API KeyANTHROPIC_API_KEYsk-ant-...ANTHROPIC_AUTH_TOKENsk-ant-oat01-...# Bearer Token 格式部分代理使用# 自定义请求头ANTHROPIC_CUSTOM_HEADERS{X-Custom: value}AWS Bedrock# 启用 Bedrock 模式CLAUDE_CODE_USE_BEDROCKtrue# 区域配置AWS_DEFAULT_REGIONus-east-1ANTHROPIC_SMALL_FAST_MODEL_AWS_REGIONus-west-2# 单独指定 Haiku 区域# 认证AWS_BEARER_TOKEN_BEDROCKyour-token# Bearer Token 认证替代 IAMCLAUDE_CODE_SKIP_BEDROCK_AUTHtrue# 跳过认证仅测试/代理Google Cloud Vertex AI# 启用 Vertex AI 模式CLAUDE_CODE_USE_VERTEXtrue# 项目与区域ANTHROPIC_VERTEX_PROJECT_IDyour-gcp-projectCLOUD_ML_REGIONus-central1# 按模型指定区域优先级最高VERTEX_REGION_CLAUDE_HAIKU_4_5us-east1VERTEX_REGION_CLAUDE_3_5_SONNETeurope-west1# GCP 认证GOOGLE_APPLICATION_CREDENTIALS/path/to/service-account.jsonCLAUDE_CODE_SKIP_VERTEX_AUTHtrue# 跳过认证仅测试Azure AI Foundry# 启用 Foundry 模式CLAUDE_CODE_USE_FOUNDRYtrue# 端点二选一ANTHROPIC_FOUNDRY_RESOURCEmy-resource# 自动构建 https://my-resource.services.ai.azure.comANTHROPIC_FOUNDRY_BASE_URLhttps://...# 直接指定完整 URL# 认证ANTHROPIC_FOUNDRY_API_KEYyour-azure-key# 不设则使用 Azure AD DefaultAzureCredentialCLAUDE_CODE_SKIP_FOUNDRY_AUTHtrue# 跳过认证仅测试功能开关# 禁用旧版模型 ID 自动重映射保留旧 ID 直接使用CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAPtrue# 禁用快速模式CLAUDE_CODE_DISABLE_FAST_MODEtrueCLI 参数# 启动时指定模型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默认模型支持别名或完整 IDavailableModels企业白名单限制可用模型范围未设置则不限制modelOverridesAnthropic ID → 云厂商 ID 映射主要用于 Bedrock ARN各 API 提供商的 Bedrock 模型 ID 参考Anthropic 模型AWS Bedrock IDclaude-opus-4-6us.anthropic.claude-opus-4-6-v1:0claude-sonnet-4-6us.anthropic.claude-sonnet-4-6-v1:0claude-haiku-4-5-20251001us.anthropic.claude-haiku-4-5-v1:0OpenAI 兼容模式Claude Code 内置 OpenAI 格式适配层可对接任何兼容POST /v1/chat/completions接口的服务包括 OpenRouter、Azure OpenAI、本地 Ollama、各类中转代理等。工作原理启用后Claude Code 会在发请求前自动将 Anthropic 格式的请求/v1/messages转换为 OpenAI 格式/v1/chat/completions将 OpenAI SSE 流的响应转换回 Anthropic 格式工具调用、多轮对话全程透明转换Claude 无感知方式一环境变量推荐# 启用 OpenAI 兼容模式CLAUDE_CODE_COMPATIBLE_API_PROVIDERopenai# 接口地址到 /v1 之前的部分ANTHROPIC_BASE_URLhttps://openrouter.ai/api# 该服务的 API KeyANTHROPIC_API_KEYsk-or-v1-...# 该服务上的模型名称ANTHROPIC_MODELgpt-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_URLhttps://openrouter.ai/apiANTHROPIC_API_KEYsk-or-v1-...ANTHROPIC_MODELanthropic/claude-opus-4# 或 gpt-4o、deepseek/r1 等CLAUDE_CODE_COMPATIBLE_API_PROVIDERopenaiAzure OpenAIANTHROPIC_BASE_URLhttps://your-resource.openai.azure.com/openai/deployments/deploymentANTHROPIC_API_KEYazure-api-keyANTHROPIC_MODELgpt-4oCLAUDE_CODE_COMPATIBLE_API_PROVIDERopenaiOllama本地模型ANTHROPIC_BASE_URLhttp://localhost:11434ANTHROPIC_API_KEYollama# 任意非空值即可ANTHROPIC_MODELllama3.2# 已拉取的模型名CLAUDE_CODE_COMPATIBLE_API_PROVIDERopenaiCLAUDE中转代理ANTHROPIC_BASE_URLhttps://4399code.com/claudecodeANTHROPIC_AUTH_TOKENsk-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-4、claude-opus-4-0、claude-opus-4-1自动重映射到当前 Opus 版本仅限第一方 APIBedrock/Vertex/Foundry 原样传递设置CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAPtrue可禁用此行为目录结构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工作原理消息接收链路cli.tsx检测到--dangerously-skip-permissionswechat-config.json存在调用startWechatInteractiveBridge()interactive-bridge.ts建立 WebSocket 连接到微信 Hook 服务收到消息后文字直接进入步骤 4语音下载 SILK 文件 → 腾讯云 ASR → 文字图片下载图片 → 阿里云 Qwen3 → 描述文字发送方的wxid入队pendingWechatSenders文字内容通过enqueue()注入 REPLREPL 将文字作为用户输入提交给 Claude回复发送链路Claude 完成回复REPL.tsx触发onTurnComplete(messages)main.tsx调用notifyWechatTurnComplete(messages)interactive-bridge.ts的回调从messages中提取最后一条助手文本从队列取出对应wxid调用微信 API 发送回复若 Claude 调用了WechatSendImage/WechatSendFile文件先上传 OSS 再发送权限机制微信桥下 Claude 拥有完整工具权限bypassPermissions无需逐条确认可直接执行 Bash 命令、读写文件、调用所有工具。