Codex CLI 配置 GrooRoute Pro:config.toml 里的 base_url 和 API Key
Codex CLI 接入 GrooRoute Pro,要在 ~/.codex/config.toml 里加一个自定义的 model_provider:base_url 填 https://grooroute.xyz/v1,wire_api 写 responses。API Key 不写进配置文件,放在环境变量 OPENAI_API_KEY 里。base_url 必须带 /v1,这是最常见的出错点。
第一步:准备 API Key
登录 GrooRoute Pro,在控制台的「API 密钥」里创建一把密钥。然后在要运行 Codex 的终端里设置环境变量:
export OPENAI_API_KEY='<your key>'
<your key> 是占位符,换成你那把密钥的内容。变量名要和配置里 env_key 写的一致。
第二步:写 ~/.codex/config.toml
把下面的内容写进 ~/.codex/config.toml:
model = "gpt-5.6-luna"
model_provider = "grooroute"
[model_providers.grooroute]
name = "GrooRoute"
base_url = "https://grooroute.xyz/v1"
env_key = "OPENAI_API_KEY"
wire_api = "responses"
示例里的 gpt-5.6-luna 是平台当前发布的模型清单里第一个声明了 Responses 协议的模型,可以换成模型页列出的其他模型 ID。所选模型要在你的档位上支持 Responses 协议,见下面「模型和协议」一节。
各项的含义:
| 配置项 | 说明 |
|---|---|
model | Codex 默认使用的模型 ID。 |
model_provider | 使用下面 [model_providers.grooroute] 这一段定义的服务。 |
base_url | 接口地址,以 /v1 结尾。Codex 只在它后面补 /responses。 |
env_key | 存放 API Key 的环境变量名。 |
wire_api | 使用 Responses 协议,对应接口 POST /v1/responses。 |
第三步:启动并验证
在设置了环境变量的同一个终端里启动 Codex,发一句话试试。能正常回复,就说明地址、密钥和模型都对。
不通的时候先看报错里的 HTTP 状态码:
- 401:密钥没带上或不被接受。检查
OPENAI_API_KEY是不是在当前终端里设置的,值是不是 GrooRoute Pro 的密钥。 - 404:地址不对。最常见的是
base_url写成了https://grooroute.xyz/v1/v1(多了一次/v1),或者把完整的接口地址填了进去。 - 413:请求体过大,一般是会话太长。开一个新会话,原样重试仍会失败。
每种状态码的原文和处理办法见常见报错排查。
模型和协议
Codex CLI 走的是 Responses 协议。站内的接入文档页会按你选的 Key 和模型生成这份配置:只有所选模型在这把 Key 的档位上声明了 Responses 协议,页面才给出 Codex CLI 的配置;否则会提示所选模型没有为这个客户端声明协议。拿不准的时候,以那一页生成的内容为准。
纯图片模型不能当作 Codex 的会话模型使用,model 要填文字模型。
base_url 为什么要带 /v1
Codex 拿到 base_url 之后,只在后面补 /responses。填 https://grooroute.xyz/v1,请求就发到 https://grooroute.xyz/v1/responses,这是正确的接口。
如果填成不带 /v1 的 https://grooroute.xyz,请求会发到 https://grooroute.xyz/responses。网关会把这类请求按 /v1/responses 处理,并在响应头里加一行 X-GrooRoute-Notice: base_url is missing /v1; use /v1/responses。它能用,但配置是错的,建议改回带 /v1 的写法。更多情形见API 地址要不要带 /v1。
常见问题
Codex CLI 的 base_url 要带 /v1 吗?
要。Codex 只在地址后面补 /responses,所以 base_url 要以 /v1 结尾。
wire_api 为什么写 responses?
站内给 Codex CLI 生成的配置用的就是 Responses 协议,对应接口 POST /v1/responses。所选模型在你的档位上没有声明这个协议时,接入文档页不会给出 Codex 配置。
API Key 放在哪里?
配置文件里只写环境变量的名字 OPENAI_API_KEY,Key 本身用 export 放进环境变量,不写进 config.toml。
base_url 忘了写 /v1 会怎样?
网关会把 POST /responses 这类请求按 /v1/responses 处理,并在响应头 X-GrooRoute-Notice 里提示地址缺少 /v1。仍然建议把配置改对。
最后更新: