图灵 APIAI 大模型 API 中转站

首页 / 客户端配置 / Codex CLI

Codex CLI 接入图灵 API

Codex CLI 用 TOML 配置文件定义模型供应商,走的是 Responses 协议而不是 Chat Completions。它的核心坑只有一个:wire_api 写错会被直接拒绝。

命令行Responses 协议TOML 配置

配置速查

Codex CLI 的字段全在 config.toml 里,四个值必须对齐。

配置项填什么容易错在哪
base_urlhttps://turingapi.space/v1这里要带 /v1,与 Claude Code 相反
wire_apiresponses写成 chat 会被直接拒绝
env_key环境变量名,如 TURING_API_KEY指的是变量名,不是密钥本身
密钥放环境变量不要写进 config.toml
为什么是 responses:Codex CLI 走 OpenAI 的 Responses 协议,请求打到 /v1/responses。图灵 API 三条协议都支持,所以这条路能通;但如果 wire_api 写成 chat,Codex 会去请求 /v1/chat/completions 并带上不兼容的请求体,直接被拒。

前置准备

配置文件路径固定,准备好密钥就可以开始。

1
创建一个 API 密钥

在 注册页 建账号,控制台新建密钥并保存。

2
确认配置文件位置

macOS / Linux 在 ~/.codex/config.toml,Windows 在 %USERPROFILE%\.codex\config.toml。目录不存在就手动建。

3
把密钥放进环境变量

终端里 export TURING_API_KEY="sk-...",或写进 shell 配置文件。密钥不要落进 toml。

配置步骤

改一个文件、设一个环境变量,然后重启 Codex CLI。

写入 config.toml 主流程

  1. 打开或新建 ~/.codex/config.toml
  2. 加入 model 与 model_provider 两个顶层字段
  3. 增加一个 [model_providers.turingapi] 段
  4. 把 wire_api 写成 responses
  5. 保存后用 codex 启动并发起一次对话
model = "gpt-6.1-sol"
model_provider = "turingapi"

[model_providers.turingapi]
name = "Turing API"
base_url = "https://turingapi.space/v1"
env_key = "TURING_API_KEY"
wire_api = "responses"

段名 [model_providers.turingapi] 里的 turingapi 必须和 model_provider 的值完全一致。

设置密钥环境变量 必做

  1. macOS / Linux:写进 ~/.zshrc 或 ~/.bashrc
  2. Windows:用 setx TURING_API_KEY "sk-..."
  3. 改完重开终端,Codex 才能读到
export TURING_API_KEY="sk-你的密钥"

变量名要和 config.toml 里的 env_key 一模一样,大小写敏感。

多供应商并存 进阶

  1. 在同一个 config.toml 里可以定义多个 [model_providers.xxx] 段
  2. 用 model_provider 决定当前用哪一个
  3. 也可以把模型和供应商打包成 profile 按需切换
[profiles.fast]
model = "gpt-5.6-terra"
model_provider = "turingapi"

想同时保留官方账号和这里,用 profile 切换比每次改配置更安全。

验证是否配置成功

看到这些就说明通了

  1. codex 能正常启动,没有配置解析错误
  2. 发起一次对话,能流式返回
  3. 控制台「用量」页出现记录

配置解析错误会在启动时直接报出来,能启动就说明 toml 语法和段名都对。

常见报错对照

  1. 配置文件解析失败 → 检查 TOML 引号与段名拼写
  2. 400 / 请求被拒 → wire_api 是不是写成了 chat
  3. 401 → env_key 指向的变量不存在或密钥错
echo $TURING_API_KEY

这条命令输出为空,说明环境变量没设上,Codex 拿不到密钥。

常见问题

Codex CLI 的配置问题基本都是 TOML 层面的,看报错就能定位。

wire_api 到底该写什么?

responses。Codex CLI 走 Responses 协议,写成 chat 会去请求 Chat Completions 并带上不兼容的请求体,直接被拒。

base_url 要不要带 /v1?

要带。https://turingapi.space/v1。这一点和 Claude Code 正好相反——Claude Code 自己补 /v1,Codex CLI 不补。

能把密钥直接写进 config.toml 吗?

不建议。配置文件容易被同步、备份、误提交到仓库。用 env_key 指向环境变量,文件里只留变量名。

改了配置没生效?

Codex CLI 启动时读配置,改完要重启进程。另外确认改的是当前用户目录下的那份 config.toml,而不是项目目录里的另一份。

为什么一直提示找不到 provider?

model_provider 的值和 [model_providers.X] 里的 X 不一致。两者字符串必须完全相同,包括大小写。

相关客户端

还没密钥?注册后直接创建一个 邮箱注册即用,控制台自助创建密钥、查看用量与余额。
免费注册 →

接入过程卡住了?到 QQ 群 1128182538 说明「客户端 + 报错码 + 时间点」,比只说"用不了"好排查得多。其他通用问题见 常见问题。