OpenAI Codex 命令行通过 ~/.codex/config.toml 自定义 provider,把请求指向网关的 Responses API。Key 走环境变量注入。
$ npm install -g @openai/codex # 或 Homebrew: $ brew install codex $ codex --version
| 字段 | 填什么 | 说明 |
|---|---|---|
base_url | https://your-domain.com/v1 | 要带 /v1。Codex 会拼成 /v1/responses |
wire_api | "responses" | 用 Responses 协议(Codex 原生)。也可用 "chat" 走 chat/completions |
env_key | "SUB2API_KEY" | Codex 从这个环境变量读取 Key |
model | gpt-5-codex | 用网关放开的模型名 |
/v1,而 Codex 的 base_url 要带 /v1。别搞混。
编辑 ~/.codex/config.toml(不存在就新建),加入一个自定义 provider 并设为默认:
# ===== 默认走 sub2api ===== model_provider = "sub2api" model = "gpt-5-codex" # ===== 自定义供应商:sub2api 网关 ===== [model_providers.sub2api] name = "sub2api" base_url = "https://your-domain.com/v1" # 带 /v1 wire_api = "responses" # Responses 协议 env_key = "SUB2API_KEY" # 从此环境变量读 Key
$ echo 'export SUB2API_KEY="sk-xxxxxxxxxxxxxxxx"' >> ~/.zshrc $ source ~/.zshrc
PS> setx SUB2API_KEY "sk-xxxxxxxxxxxxxxxx" # 重开终端后生效
$ codex ▌ Codex CLI — provider: sub2api — model: gpt-5-codex › 写个快速排序 ... 正常生成即代表已走 sub2api 网关 ✓ # 也可临时覆盖模型/供应商,不改配置文件: $ codex -m gpt-5-codex -c model_provider=sub2api
如果你的模型/客户端更适合 Chat 协议,把 wire_api 改成 "chat" 即可,网关会命中 /v1/chat/completions:
[model_providers.sub2api] name = "sub2api" base_url = "https://your-domain.com/v1" wire_api = "chat" # ← 改这里 env_key = "SUB2API_KEY"
| 现象 | 原因 / 处理 |
|---|---|
404 on responses | base_url 没带 /v1,或写成了 /v1/responses(只到 /v1 即可)。 |
401 unauthorized | SUB2API_KEY 没设或值不对;echo $SUB2API_KEY 确认。 |
| provider 不生效 | model_provider 名要和 [model_providers.xxx] 里的 xxx 完全一致。 |
模型 not allowed | 后台把该模型加入 Key 所在分组白名单。 |
/backend-api/codex/responses,一般无需手动配置 —— 用上面的 /v1 + wire_api="responses" 就够了。