命令行工具OpenAI 协议

Codex CLI 接入 CCSub:config.toml 和 OPENAI_BASE_URL 怎么写

Codex CLI 接第三方 API:base_url 填 https://www.ccsub.net/api/v1,Key 放 OPENAI_API_KEY。0.119 起不再读 OPENAI_BASE_URL,需写 ~/.codex/config.toml。附 404、401 排查。

最后更新:Codex CLI 官网

复制即用的配置

把下面三项填进工具里即可。API Key 在控制台「API 密钥」页面创建。

base_url
https://www.ccsub.net/api/v1(必须带 /api/v1)
OPENAI_API_KEY
sk-你的CCSub密钥
model
gpt-5.5(启动后可用 /model 切换)
~/.codex/config.toml(Windows:%USERPROFILE%\.codex\config.toml)
model = "gpt-5.5"
model_provider = "ccsub"

[model_providers.ccsub]
name = "CCSub"
base_url = "https://www.ccsub.net/api/v1"
wire_api = "responses"
env_key = "OPENAI_API_KEY"

model 可填 claude-sonnet-5 等,全部可用型号 ID 见 型号列表。 还没有 Key? 先注册账号。

配置步骤速览

  1. 1

    安装 Codex CLI

    安装 Node.js 18 以上版本后执行 npm install -g @openai/codex@latest(macOS / Linux 需要 sudo),用 codex --version 查看版本号。

  2. 2

    创建 CCSub API Key

    注册 CCSub,在控制台「API 密钥」页面创建密钥并复制 sk- 开头的 Key。

  3. 3

    把 Key 写进 OPENAI_API_KEY

    macOS / Linux 在 ~/.zshrc 里加 export OPENAI_API_KEY="sk-你的密钥",Windows 用 PowerShell 写入用户环境变量,然后重开终端。

  4. 4

    写 ~/.codex/config.toml

    新建或编辑 ~/.codex/config.toml,添加 model_providers.ccsub:base_url 为 https://www.ccsub.net/api/v1,wire_api 为 responses,env_key 为 OPENAI_API_KEY,并把 model_provider 设为 ccsub。

  5. 5

    启动并验证

    在项目目录执行 codex,发一句话确认有回复,再到 CCSub「使用记录」里核对这次请求。

Codex CLI 是 OpenAI 的终端编程助手。它走的是 OpenAI Responses 接口(请求路径 /responses),所以接 CCSub 时用的是 OpenAI 兼容地址 https://www.ccsub.net/api/v1,和 Claude Code 的 https://www.ccsub.net 不一样,这一点最容易搞混。

先看版本,决定用哪种写法

Codex 的配置方式在 2026 年变过一次。先在终端执行 codex --version:

不同版本的配置方式
0.118 及更早
OPENAI_BASE_URL环境变量可用(0.118 会提示已弃用),即 CCSub 安装文档里的写法
0.119 及之后
~/.codex/config.toml不再读取 OPENAI_BASE_URL,必须在配置文件里写提供方

不确定的话直接用下面的 config.toml 写法,新旧版本都适用。

推荐写法:在 config.toml 里加一个自定义提供方

第一步,把 Key 放进环境变量 OPENAI_API_KEY(和 CCSub 安装文档用的是同一个变量名):

echo 'export OPENAI_API_KEY="sk-你的密钥"' >> ~/.zshrc
source ~/.zshrc

Windows 在 PowerShell 里执行:

[System.Environment]::SetEnvironmentVariable('OPENAI_API_KEY', 'sk-你的密钥', 'User')

第二步,编辑 ~/.codex/config.toml(Windows 是 %USERPROFILE%\.codex\config.toml,没有就新建):

model = "gpt-5.5"
model_provider = "ccsub"

[model_providers.ccsub]
name = "CCSub"
base_url = "https://www.ccsub.net/api/v1"
wire_api = "responses"
env_key = "OPENAI_API_KEY"

几个字段的意思:base_url 是请求地址,Codex 会在后面拼 /responses;wire_api 只能写 responses,旧教程里的 chat 在新版本会直接报错;env_key 告诉 Codex 从哪个环境变量读 Key。自定义提供方默认不需要 OpenAI 账号登录,所以启动时不会再弹出 ChatGPT 登录界面。

TOML 的顺序有讲究。 model 和 model_provider 是顶层键,必须写在第一个 [model_providers.ccsub] 之前。写在后面的话,它们会被当成这个表的字段,看起来配置了、实际不生效。另外,ccsub 这个名字可以自己起,但不能叫 openai、ollama、lmstudio,这几个是 Codex 内置的保留名。

旧版本写法:环境变量

Codex 0.118 及以前,可以只用两个环境变量,这也是 CCSub 安装文档 里的写法:

echo 'export OPENAI_BASE_URL="https://www.ccsub.net/api/v1"' >> ~/.zshrc
echo 'export OPENAI_API_KEY="sk-你的密钥"' >> ~/.zshrc
source ~/.zshrc

升级到 0.119 之后这个变量会被忽略,请求又会发回 OpenAI 官方,表现为要求登录或者 401。遇到这种情况改用上面的 config.toml 写法即可。

还有一种写法是在 config.toml 顶部写一行 openai_base_url = "https://www.ccsub.net/api/v1",改的是 Codex 内置 openai 提供方的地址。内置提供方要求先登录,需要再执行一次 printenv OPENAI_API_KEY | codex login --with-api-key。步骤比自定义提供方多,一般不推荐。

启动和切换型号

cd ~/你的项目
codex

model 可填 gpt-5.5 等,全部可用型号 ID 见 型号列表。改 config.toml 里的 model,或者在 Codex 里输入 /model 都可以切换。发一句话后,到 CCSub 控制台的「使用记录」里能看到这次请求,就说明配置成功。

几个容易踩的坑

  • 项目目录里的配置不算数。 项目级 .codex/config.toml 里的 model_provider、model_providers、openai_base_url 会被忽略,必须写在用户目录的 ~/.codex/config.toml。
  • 从桌面图标启动读不到变量。 Codex 的桌面应用或编辑器插件如果是从程序坞、开始菜单启动的,可能读不到你在 shell 里 export 的 OPENAI_API_KEY。先从终端启动排除这个原因。
  • 不要和 Claude Code 的地址混用。 Claude Code 填 https://www.ccsub.net,Codex 填 https://www.ccsub.net/api/v1。两个工具共用同一把 CCSub Key 没问题。

经常在多个服务之间切换的话,可以用 CC Switch,它的预设列表里有 CCSub,会自动帮你写好 Codex 的配置。终端里还想用 Claude 的话,见 Claude Code 接入教程。

常见报错和排查

404 Not Found

原因:base_url 路径写错,例如多写了一层(/api/v1/v1)或者只写了 /api。

处理:base_url 改成 https://www.ccsub.net/api/v1。它和 Claude Code 的写法不一样,不要混用。

401 authentication_error: Missing or invalid API key

原因:env_key 指向的环境变量没设置,或者 Codex 是从桌面图标启动的、读不到终端里的变量。

处理:在终端执行 echo $OPENAI_API_KEY 确认有值,从同一个终端启动 codex。

wire_api = "chat" is no longer supported

原因:沿用了旧教程里的 wire_api = "chat",新版 Codex 只支持 Responses 接口。

处理:改成 wire_api = "responses",CCSub 提供 /api/v1/responses。

改了 config.toml 但 model 设置没生效

原因:model、model_provider 这些顶层键写在了 [model_providers.ccsub] 下面,被当成了这个表的字段。

处理:把顶层键移到文件最上方,放在第一个 [表] 之前。

402 insufficient_balance:余额不足

原因:余额不够本次请求的预估费用,或月卡当天额度已用完。

处理:到 /zh/purchase 充值;月卡额度在北京时间 0 点重置,用完后改扣余额。

更多报错的原因和处理办法,见 报错排查总览;安装环境问题见 故障排查文档。

常见问题

OPENAI_BASE_URL 环境变量为什么不生效了?

Codex 从 0.119 版本起不再读取 OPENAI_BASE_URL(0.118 会提示已弃用)。用 codex --version 看版本,新版本请改用 ~/.codex/config.toml 里的 model_providers 配置。

base_url 是 /v1 还是 /api/v1?

按 CCSub 文档统一写 https://www.ccsub.net/api/v1,Codex 会在后面拼 /responses。最常见的 404 是路径多写或少写了一段,例如 /api/v1/v1 或只写了 /api。

启动 Codex 还是让我登录 ChatGPT 账号?

说明 Codex 还在用内置的 openai 提供方。按本文写一个自定义提供方并设置 model_provider = "ccsub",自定义提供方从 env_key 指定的环境变量读 Key,不会弹登录界面。

项目目录里的 .codex/config.toml 能配置 CCSub 吗?

不能。按 Codex 官方文档,项目级 config.toml 里的 model_provider、model_providers 和 openai_base_url 会被忽略,必须写在用户目录的 ~/.codex/config.toml。

model 应该填什么?

model 可填 gpt-5.5 等,全部可用型号 ID 见 CCSub 型号列表页。改 config.toml 里的 model,或者在 Codex 里用 /model 切换。

查看全部工具接入教程

还没有 CCSub 账号?

注册后在控制台创建 API Key,把上面的配置填进工具即可开始使用。按量付费的余额不过期,用多少扣多少。