Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

在 Claude Code 中使用 Codex / ChatGPT 订阅模型:cc-switch-cli 配置教程

目标:保留 Claude Code 的交互方式 / Agent Harness,但让实际模型请求通过 cc-switch-cli 转发到已登录的 Codex / ChatGPT 订阅账号,例如使用 gpt-5.6-sol

本文记录的是一套在 macOS 上实际跑通的完整流程。


1. 最终效果

配置完成后,调用链路如下:

Claude Code
   ↓  Anthropic Messages API
cc-switch local proxy
   ↓  protocol conversion
Codex OAuth / ChatGPT subscription
   ↓
gpt-5.6-sol

启动后 Claude Code 顶部会显示类似:

gpt-5.6-sol · API Usage Billing

并且可以正常对话。


2. 环境要求

本文测试环境:

  • macOS
  • zsh
  • Claude Code 已安装
  • Codex CLI 已安装
  • 有可正常使用的 ChatGPT / Codex 订阅账号
  • cc-switch-cli 使用官方 release 二进制安装

检查:

claude --version
codex --version

3. 安装 Codex CLI

如果还没有 Codex:

npm install -g @openai/codex

然后登录:

codex login

浏览器完成授权。

建议先确认订阅和目标模型本身能正常使用:

codex --model gpt-5.6-sol

进入后输入:

hi

如果能够正常回复,说明:

  • Codex OAuth 正常
  • ChatGPT / Codex 订阅正常
  • gpt-5.6-sol 有权限使用

4. 安装 cc-switch-cli

推荐直接使用官方 release 安装脚本。

curl -fsSL https://github.com/SaladDay/cc-switch-cli/releases/latest/download/install.sh | bash

默认安装位置通常是:

~/.local/bin/cc-switch

如果提示不在 PATH 中:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

检查:

cc-switch --help

5. 登录 Codex Managed Account

运行:

cc-switch auth login

终端会显示类似:

Open this URL: https://auth.openai.com/codex/device
Enter code: XXXX-XXXXX
Waiting for authorization...

打开浏览器完成设备授权。

完成后可查看:

cc-switch auth list

6. 在 cc-switch 中创建 Claude → Codex Provider

启动 TUI:

cc-switch

进入 Claude Providers 页面。

新增 Provider:

Add Provider

模板选择:

Codex

建议配置:

Provider name: Codex
ChatGPT Account: 选择刚刚登录的 Managed Account
Default fallback model: gpt-5.6-sol

进入 Model Mapping。

如果模型列表还没加载,可以在 Model Mapping 页面按:

Space

自动拉取账号可用模型。

例如可能看到:

gpt-5.4
gpt-5.4-mini
gpt-5.5
gpt-5.6-luna
gpt-5.6-sol
gpt-5.6-terra

推荐把主要角色映射到:

Default Haiku Model   → gpt-5.6-sol
Default Sonnet Model  → gpt-5.6-sol
Default Opus Model    → gpt-5.6-sol
Default Fable Model   → gpt-5.6-sol
Subagent Model        → gpt-5.6-sol

保存 Provider。

然后确认:

cc-switch provider list

应该看到类似:

ID                Name
codex             Codex

注意:

Provider ID 是 codex

不是显示名称 Codex


7. 为什么不能直接让 Claude Code 请求 Codex Backend

Codex Provider 本身的 upstream 是:

https://chatgpt.com/backend-api/codex

但 Claude Code 默认发送的是 Anthropic Messages 协议:

/v1/messages

而 Codex backend 使用的是 OpenAI / Responses 风格接口。

因此正确方式不是:

Claude Code
   ↓
chatgpt.com/backend-api/codex

而是:

Claude Code
   ↓
cc-switch local proxy
   ↓
protocol conversion
   ↓
Codex backend

也就是说,必须经过 cc-switch local proxy


8. 启动 cc-switch 本地 Proxy

先查看当前状态:

cc-switch proxy show

如果已有 daemon 占用 proxy,可先停掉:

cc-switch daemon stop

确认:

cc-switch proxy show

理想状态:

Running: no

然后以前台 verbose 模式启动 Claude proxy:

cc-switch proxy --verbose serve --takeover claude

正常会看到:

Local Proxy Running

Listening on http://127.0.0.1:15721

Claude: /v1/messages
Manual takeover enabled for: claude

保持这个终端不要关闭。


9. 测试本地 Proxy

另开一个终端:

curl -i http://127.0.0.1:15721/v1/messages

正常可能返回:

HTTP/1.1 405 Method Not Allowed
allow: POST

这是正常的。

因为 curl 默认使用 GET,而 /v1/messages 只接受 POST。

重点是:

127.0.0.1:15721 可以正常访问

10. 正确启动 Claude Code

不要直接让 Claude Code 请求:

https://chatgpt.com/backend-api/codex

而是显式让 Claude Code 请求本地 cc-switch proxy:

ANTHROPIC_BASE_URL=http://127.0.0.1:15721 \
ANTHROPIC_AUTH_TOKEN=proxy-placeholder \
ANTHROPIC_MODEL=gpt-5.6-sol \
claude

成功后 Claude Code 顶部应显示:

gpt-5.6-sol · API Usage Billing

输入:

hi

如果出现正常回复,例如:

Hi! How can I help?

说明配置成功。


11. 创建短命令 claude-gpt-auto

为了避免每次手动启动 proxy 和填写环境变量,可以写一个 zsh function。

建议使用下面这个版本。

cat >> ~/.zshrc <<'EOF'

claude-gpt-auto() {
  # 检查 15721 是否已经有 cc-switch proxy 在监听
  if ! nc -z 127.0.0.1 15721 >/dev/null 2>&1; then
    # 如果 daemon 正在运行,先关闭,避免 takeover 冲突
    cc-switch daemon stop >/dev/null 2>&1 || true

    # 后台启动 Claude proxy
    nohup cc-switch proxy serve --takeover claude \
      >/tmp/cc-switch-claude-proxy.log 2>&1 &

    # 等待 proxy 启动,最多约 5 秒
    for i in {1..10}; do
      if nc -z 127.0.0.1 15721 >/dev/null 2>&1; then
        break
      fi
      sleep 0.5
    done
  fi

  ANTHROPIC_BASE_URL=http://127.0.0.1:15721 \
  ANTHROPIC_AUTH_TOKEN=proxy-placeholder \
  ANTHROPIC_MODEL=gpt-5.6-sol \
  claude "$@"
}

alias cg='claude-gpt-auto'

EOF

source ~/.zshrc

检查:

type claude-gpt-auto

正常应该显示:

claude-gpt-auto is a shell function

以后直接输入:

claude-gpt-auto

或者更短:

cg

即可。


12. 查看 Proxy 日志

如果使用 claude-gpt-auto 后台启动 proxy:

tail -f /tmp/cc-switch-claude-proxy.log

可以实时查看 cc-switch 日志。


13. 常见问题

13.1 Claude Code 显示 gpt-5.6-sol,但提示模型不可用

例如:

There's an issue with the selected model (gpt-5.6-sol).
It may not exist or you may not have access to it.

先确认原生 Codex 是否可用:

codex --model gpt-5.6-sol

如果原生 Codex 正常,而 Claude Code 不正常,通常不是账号权限问题,而是:

Claude Code 没有经过 cc-switch proxy

检查:

cc-switch proxy show

并确保 Claude Code 使用:

ANTHROPIC_BASE_URL=http://127.0.0.1:15721

13.2 cc-switch proxy serve --takeover claude 提示 daemon session active

例如:

cannot run foreground proxy takeover while a daemon-managed proxy session is active

执行:

cc-switch daemon stop

然后:

cc-switch proxy show

确认:

Running: no

再执行:

cc-switch proxy --verbose serve --takeover claude

13.3 kill proxy 后又自动出现

运行:

ps aux | grep '[c]c-switch'

如果看到:

cc-switch daemon start --detach

说明 proxy 子进程由 daemon 管理。

只 kill proxy child 没用,daemon 会自动重新拉起。

正确方式:

cc-switch daemon stop

13.4 如何检查 Claude Code 实际加载的临时 settings

启动:

cc-switch start claude codex

另开终端:

ps aux | grep '[c]laude --settings'

会看到:

claude --settings /var/folders/.../cc-switch-claude-codex-xxxx.json

然后:

cat /var/folders/.../cc-switch-claude-codex-xxxx.json

重点检查:

"ANTHROPIC_BASE_URL"

如果是:

https://chatgpt.com/backend-api/codex

说明 Claude Code 是直接请求 Codex backend,而没有经过本地协议转换 proxy。

我们最终跑通的方式是:

ANTHROPIC_BASE_URL=http://127.0.0.1:15721

14. 可选:Claude Code 中安装 Codex MCP

如果还希望 Claude Code 内部把 Codex CLI 当成 MCP tool 使用,可以额外配置:

claude mcp add codex -s user -- codex mcp-server

检查:

claude mcp list | grep codex

正常可能显示:

codex: codex mcp-server - ✔ Connected

但需要注意:

Codex MCP 和本文的主模型切换不是一回事。

MCP 只是让 Claude Code 可以调用 Codex 作为一个工具。

本文实现的是:

Claude Code 主模型请求
→ cc-switch proxy
→ Codex OAuth
→ GPT 模型

15. 最终推荐工作流

日常使用只需要:

cg

内部自动完成:

检查 127.0.0.1:15721
        ↓
proxy 未运行
        ↓
停止冲突 daemon
        ↓
后台启动 cc-switch proxy
        ↓
设置 ANTHROPIC_BASE_URL
        ↓
设置 gpt-5.6-sol
        ↓
启动 Claude Code

最终:

Claude Code UX / Agent Harness
+
Codex OAuth / ChatGPT Subscription
+
GPT-5.6 Sol

References


Disclaimer

cc-switch-cli 是第三方开源项目,并非 OpenAI 或 Anthropic 官方产品。

相关接口、OAuth 流程、Claude Code 行为以及模型名称未来都可能发生变化。如果后续版本无法工作,建议优先检查:

cc-switch --version
claude --version
codex --version
cc-switch proxy show
cc-switch auth list

以及 cc-switch-cli 最新 README / Issues。

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors