Claude Code 切换为 OpenAI 格式 API 接入说明

发布时间:2026/6/28 4:52:39
Claude Code 切换为 OpenAI 格式 API 接入说明 Claude Code 切换为 OpenAI 格式 API 接入说明一、适用场景与前提已安装Claude Codeclaude命令可正常运行无论当前走官方登录还是 Anthropic 直连。手里有第三方中转站提供的 OpenAI 格式 API一个 base URL形如https://xxx/v1/chat/completions、一个模型名、一个 API Key。目标让 Claude Code 不再走 Anthropic 格式端点/v1/messages改为走OpenAI 格式端点/v1/chat/completions。本文以 cloudrouter 中转 GLM5.2 为示例但流程对任意 OpenAI 格式中转通用——把 URL / 模型名 / Key 换成你自己的即可。二、原理为什么不能直连Claude Code 只会发Anthropic 格式请求OpenAI 格式端点听不懂。解决办法是在本地加一层翻译代理claude-code-routerCCRClaude Code ──(Anthropic格式)──► CCR(本地 127.0.0.1:3456) ──(OpenAI格式)──► 中转站 ──► 模型CCR 负责两种格式互译。配好后Claude Code 以为自己在跟 Anthropic 端点对话实际请求被翻译成 OpenAI 格式转发给你指定的中转站。三、涉及的两个配置文件目标状态预览Key 位用占位符表示——真实 Key 由 Claude 在执行时写入不写进本文档。1.~/.claude-code-router/config.json翻译路由{LOG:true,Providers:[{name:relay,api_base_url:https://你的中转站/v1/chat/completions,api_key:你的API Key,models:[模型名],transformer:{use:[openai]}}],Router:{default:relay,模型名,background:relay,模型名,think:relay,模型名,longContext:relay,模型名,webSearch:relay,模型名}}2.~/.claude/settings.json让 Claude Code 指向本地 CCR{env:{ANTHROPIC_BASE_URL:http://127.0.0.1:3456,ANTHROPIC_AUTH_TOKEN:test,ANTHROPIC_DEFAULT_HAIKU_MODEL:模型名,ANTHROPIC_DEFAULT_SONNET_MODEL:模型名,ANTHROPIC_DEFAULT_OPUS_MODEL:模型名},model:opus,theme:dark}说明ANTHROPIC_AUTH_TOKEN: test是给本地 CCR 的占位鉴权不是真实 Key真实 Key 只在config.json里。model: opus配合ANTHROPIC_DEFAULT_OPUS_MODEL让 Claude Code 的 opus 档实际落到你的目标模型。四、一键部署把下面整段提示词粘进 Claude Code复制下方代码块全部内容粘进 Claude Code 对话框回车。Claude 会向你索取 Key 并完成全部配置Key 不会被打印回显。帮我把 Claude Code 的 API 从 Anthropic 格式切换为 OpenAI 格式经本地 claude-code-router 翻译。请按下面步骤执行全程不要在对话里回显、打印或记录我的 API Key 明文 1. 安装 claude-code-routerCCR先检查 ccr 是否存在没有就执行 npm install -g musistudio/claude-code-router装完跑 ccr -v 确认版本。若全局安装报权限错误提示我配置 npm prefix 到用户目录或改用 sudo不要擅自用 sudo。 2. 一次性向我索取三项信息中转站 OpenAI 格式端点形如 https://xxx/v1/chat/completions、模型名、API Key。拿到 Key 后只能写入配置文件禁止在后续任何输出、日志、记忆文件里出现 Key 明文。 3. 写 ~/.claude-code-router/config.jsonProvider 名用 relayapi_base_url 填我给的端点api_key 填我给的 Keymodels 含我给的模型名transformer 用 {use:[openai]}Router 的 default / background / think / longContext / webSearch 全部设为 relay,模型名。若文件已存在先备份为 config.json.bak 再覆盖。写完对文件 chmod 600。 4. 修改 ~/.claude/settings.json保留已有键仅设置/更新 env 下的 ANTHROPIC_BASE_URLhttp://127.0.0.1:3456、ANTHROPIC_AUTH_TOKENtest、ANTHROPIC_DEFAULT_SONNET_MODEL模型名、ANTHROPIC_DEFAULT_OPUS_MODEL模型名、ANTHROPIC_DEFAULT_HAIKU_MODEL模型名顶层 model 设为 opus。改前备份为 settings.json.bak。不要写入任何真实 Key。 5. 执行 ccr start等待就绪再 ccr status 确认监听在 127.0.0.1:3456 且状态 Running。 6. 端到端测试用 curl 向 http://127.0.0.1:3456/v1/messages 发一个 POSTmodel 字段填 claude-sonnet-4-5-20250929、max_tokens 给小值、messages 问你是什么模型确认返回 HTTP 200 且响应里 model 字段是我的目标模型名。 7. 汇报测试结果并告诉我日常启动方式ccr start 后用 ccr code和切回 Anthropic 直连的方法。全程不要回显 Key。五、验证可选粘进 Claude Code部署后想复查链路是否正常粘这段帮我核查 Claude Code 当前是否正确走 OpenAI 格式链路1) ccr status 看服务状态与端口2) curl 本地 127.0.0.1:3456 的 /v1/messagesmodel 字段填 claude-sonnet-4-5-20250929 发一个小请求确认返回的 model 是我的目标模型、HTTP 2003) 读 ~/.claude/settings.json 确认 ANTHROPIC_BASE_URL 指向 127.0.0.1:3456。给出通过/未通过结论与原因。不要回显 Key。六、日常使用部署完成后每次开机后用 Claude Code 的标准动作ccr start—— 启动本地翻译代理开机一次常驻后台。ccr code—— 经代理启动 Claude Code日常用这条。因为~/.claude/settings.json已把 base_url 指向本地 3456所以ccr start之后直接敲claude也会走 CCR但务必先ccr start否则本地代理没起来claude会连不上。七、回退到 Anthropic 格式直连粘进 Claude Code想切回不走 CCR、直接用中转站的 Anthropic 端点时粘这段帮我把 Claude Code 从 CCR/OpenAI 格式切回 Anthropic 格式直连1) 把 ~/.claude/settings.json 里 env 的 ANTHROPIC_BASE_URL 改回我的中转站 Anthropic 端点我会告诉你形如 https://xxx、ANTHROPIC_AUTH_TOKEN 改回我的 Anthropic Key2) 视需要删除 ANTHROPIC_DEFAULT_*_MODEL 三个映射键或保留3) ccr stop 停掉本地代理。改前备份 settings.json。全程不要回显 Key。八、注意事项Key 安全CCR 不支持从环境变量读取上游 KeyKey 必须落在~/.claude-code-router/config.json里。本流程由 Claude 写入不会出现在本文档、对话或日志中配置文件已设chmod 600仅属主可读。effort / 思考档位经 CCR→第三方模型这条链路Claude Code 的/effort命令与--effort参数会失效环境检测为非官方后端即锁定多数第三方模型如 GLM5.2默认即深度思考无需也无法配置 effort不必折腾。模型名用中转站/v1/models列出的准确 id带方括号后缀的变体如glm-5.2[1m]通常不被识别[1m]只是1M 上下文的标注、并非合法模型名。npm 权限若npm install -g报EACCES把 npm 全局目录指到用户目录npm config set prefix ~/.npm-global并加入 PATH或按提示用sudo不要反复重试。直连与 CCR 并存settings.json指向本地 3456 时claude与ccr code都走 CCR若想临时直连中转站临时改ANTHROPIC_BASE_URL即可互不破坏。配置变更生效改了config.json后用ccr restart让新配置生效。