配置 Codex
Kitcoding 通过 OpenAI 兼容端点接入 Codex。
前置条件
- 已创建令牌,推荐分组:
Codex专用或Codex特价。 - 安装 Codex 需要 Node.js(npm 方式),详见 环境检查。
一、安装
npm install -g @openai/codex@latestbrew install --cask codex二、生成配置目录
安装后先运行一次 codex,让它自动生成 .codex 配置目录及其中的文件。
三、配置 config.toml
打开上一步生成的配置目录:
- Windows:
Win + R输入%userprofile%\.codex - macOS:访达
Command + Shift + G输入~/.codex
目录里若缺 config.toml 或 auth.json,手动新建同名文件即可。在 config.toml 写入:
model = "gpt-5.6-sol"
model_provider = "kitcoding"
model_reasoning_effort = "high"
model_verbosity = "high"
web_search = "live"
[model_providers.kitcoding]
name = "kitcoding"
base_url = "https://kitcoding.com/v1"
wire_api = "responses"
requires_openai_auth = true逐项说明
base_url必须带/v1—— 这是最常见的踩坑点;漏写整个字段则会默默打到 OpenAI 官方。[model_providers.kitcoding]里的名字会影响历史会话的可见性,详见 疑难解答。openai/ollama是保留名不能用。model:按 模型广场 实际可用模型填写,必须照抄模型 ID。Codex专用组:gpt-5.6-sol(默认推荐)、gpt-5.6-terra、gpt-5.6-luna、gpt-5.5、gpt-5.4、gpt-5.4-miniCodex特价组:gpt-5.6、gpt-5.6-sol、gpt-5.6-terra、gpt-5.5、gpt-5.4
model_reasoning_effort:合法取值为minimal/low/medium/high/xhigh(xhigh是否可用取决于模型)。写别的值(例如max)会被拒绝。model_verbosity:low/medium/high。web_search:disabled/cached/indexed/live,默认cached。要联网实时检索就写live。
两个过期字段
中转站配置模板常见这两项,实测(Codex v0.153.0)性质并不一样:
| 老写法 | 状态 | 后果 |
|---|---|---|
disable_response_storage = true | 已成未知字段 | 默认被静默忽略,不产生任何效果;开启 --strict-config 则直接报错 |
[features] web_search_request = true | 废弃但仍识别 | 还能用,但建议换成顶层 web_search = "live" |
自检你的配置有没有过期字段:
codex --strict-config exec "hi"有问题会精确报出文件名和行号:
Error loading config.toml:
~/.codex/config.toml:3:1: unknown configuration field `disable_response_storage`
|
3 | disable_response_storage = true
| ^^^^^^^^^^^^^^^^^^^^^^^^没报错就说明配置对当前版本是干净的。日常用不必加这个参数——它是专门用来体检的。
四、配置 auth.json
在 auth.json 写入已创建的令牌:
{
"OPENAI_API_KEY": "你的-kitcoding-令牌"
}五、验证
终端运行 codex,能正常对话即成功。若报错,先跑 codex doctor 检查安装、配置与鉴权状态。
用 cc-switch 配置(可选捷径)
不想手动改 config.toml / auth.json?cc-switch 可在图形界面里一键安装 Codex 并填好配置,自动写入上面两个文件,因此选这条路就无需手动执行第一~四步。详见 cc-switch 文档。
疑难解答
接中转站时最容易踩的三个点,均为实测结论。
历史会话突然全部消失
Codex 的会话历史按 provider 名字隔离。 把 provider 从 custom 改成 kitcoding 之后,codex resume 里就再也找不到改名前的会话了。
实测(v0.153.0,同一目录、其余配置完全相同,只改 provider 名):
| 操作 | codex resume --last 结果 |
|---|---|
| provider 名不变 | ✅ 续上原会话(session id 不变) |
| 只把 provider 改个名 | ❌ 开了个全新会话,历史看不到了 |
结论
provider 名字一旦定下来就别再改。会话记录其实还躺在 ~/.codex/sessions/ 里没丢,只是 resume 按名字匹配不上了。
如果已经改了名想找回历史,可以用 codex-provider-sync 做会话迁移。
报 reserved built-in provider
自定义 provider 不能叫这两个名字,它们是内置 ID:
Error loading config.toml: model_providers contains reserved built-in provider IDs: `openai`.
Built-in providers cannot be overridden. Rename your custom provider (for example, `openai-custom`).实测可用的名字:kitcoding、anthropic、azure、gemini、amazon-bedrock、oss,以及带短横线或点的自定义名(kit-cheap、kit.cheap)都行。只有 openai 和 ollama 会被拒。
base_url 自查清单
配错 base_url 的表现往往是「请求成功但打到了别处」或 404,比报错更难查:
| 检查项 | 正确写法 |
|---|---|
| Codex(OpenAI 兼容) | https://kitcoding.com/v1 —— 必须带 /v1 |
| Claude Code(Anthropic 格式) | https://kitcoding.com —— 不要加 /v1 |
| 协议 | 用 https,别写 http |
| 字段是否存在 | 漏写 base_url 时请求会默默打到 OpenAI 官方,不报错 |
配完用 codex --strict-config exec "hi" 体检一遍,再看启动横幅里的 provider: 是不是你配的那个。
配好 Codex 后,ChatGPT App 可直接复用这份配置。多分组切换见 高阶指南。