与 Codex 集成

本页介绍如何用 cc-router 应用内置的 Codex 配置编辑器,一键把 Codex 接入你聚合好的虚拟模型。Codex 通过 cc-router 的 POST /v1/responses 入口调用你配置到 cc-router 的所有大模型 —— 无论上游原本是 Anthropic 协议还是 OpenAI 协议,cc-router 都会自动协议翻译并按你设定的虚拟槽位调度。

这是 cc-router 原生的接入方式:点一次按钮就同时写好 ~/.codex/config.toml~/.codex/auth.json 两个文件,无需安装第三方工具。Codex CLI 与 Codex Desktop 共用同一套 ~/.codex 配置,所以配置一次,两端都能用。

备选方案:如果你已经在用 cc-switch 管理多个 Codex 供应商,也可以走 与 Codex 集成(cc-switch) 那条路。本页的原生方式更直接,是推荐做法。

前置要求

  • 已按 快速开始 安装并配置好 cc-router,至少绑定了一个虚拟模型
  • 已安装 Codex CLI 或 Codex Desktop(任一个即可,两者共用 ~/.codex 配置)
  • 与 Claude Desktop 接入不同,Codex 这条线只用 HTTP :23456 端口,不需要 HTTPS、不需要 CA 证书

第一步:打开「接入指南 → Codex」

打开 cc-router,左侧切到 接入指南,顶部标签页选 Codex

页面里的 Codex 配置编辑器 同时展示并读写两个文件:~/.codex/config.toml~/.codex/auth.json,各自右上角的「已同步」表示编辑器内容与磁盘一致。

cc-router 接入指南中的 Codex 配置编辑器

第二步:点「插入 cc-router 推荐配置」

点右上角的 插入 cc-router 推荐配置 按钮,cc-router 会同时填充下方两个文件

  • config.toml:注入一个名为 cc-router 的自定义 provider 和对应 profile
  • auth.json:写入 cc-router 的 token

自动备份:写入前 cc-router 会自动把原文件备份为 *.cc-router.bak(如 config.toml.cc-router.bak),即便覆盖也能找回原配置。

第三步:分别保存两个文件

两个编辑器各有独立的「保存」按钮,分别点一下把改动写回磁盘即可。生成的内容如下:

~/.codex/config.toml

# cc-router 推荐配置 — 由 cc-router 接入指南生成
# 使用: codex -p cc-router "你的提问"
# 修改后保存即可生效,codex 下次启动会读取此文件。

[model_providers.cc-router]
name = "cc-router"
base_url = "http://127.0.0.1:23456/v1"
wire_api = "responses"
env_key = "OPENAI_API_KEY"

[profiles.cc-router]
model_provider = "cc-router"
model = "model-sonnet"

~/.codex/auth.json

{
  "OPENAI_API_KEY": "app 自动填入的真实 token"
}

OPENAI_API_KEY 里填的就是 cc-router 的 token,与 Claude Code / Claude Desktop 用的是同一个config.tomlenv_key = "OPENAI_API_KEY" 告诉 Codex 去 auth.json 里取这个键作为鉴权头。

用法

接入后,在终端用 -p 指定 cc-router profile 启动 Codex CLI:

codex -p cc-router "你的提问"

换用不同虚拟槽位

config.tomlprofiles.cc-routermodel 字段决定走哪个虚拟槽位,按需改成下面之一即可(改完保存,Codex 下次启动生效):

model对应 cc-router 虚拟槽位适合做
model-opusopus 槽位规划、长上下文推理
model-sonnetsonnet 槽位主力写代码
model-haikuhaiku 槽位工具调用、轻量任务

与 cc-switch 路径的关键差异:原生方式直接填 cc-router 的虚拟槽位名(model-sonnet 等)。这和 cc-switch 那条路 要求填 gpt-5.x 别名不同 —— 原生注入用的是 cc-router 暴露给 /v1/responses 的虚拟槽位名。

Codex Desktop 共用同一套配置

因为 Codex CLI 与 Codex Desktop 读的是同一份 ~/.codex 配置,上面配好后 Desktop 也能直接用。如果 Desktop 之前登录过 OpenAI 官方账号,重启一次 Codex Desktop 让配置生效,再在模型选择器里选 cc-router profile 即可。

局域网共享

如果 Codex 和 cc-router 不在同一台机器上,把 config.toml 里的 base_url 改成 cc-router 所在机器的局域网 IP,路径后缀 /v1 必须保留

base_url = "http://192.168.1.50:23456/v1"

IP 改成你自己的,端口以 cc-router 设置页底部「实际监听端口」为准。

验证

回到 cc-router 主界面,左侧切到 日志请求日志,跑一次 Codex 对话,应能看到请求被记录,客户端 列显示 Codex CLICodex Desktop虚拟模型 列显示对应槽位,真实模型 列显示最终路由到的上游真名。

排错

  • 404 Not Found —— base_url 末尾少了 /v1。cc-router 的 Responses 入口在 /v1/responses,少这一段会找不到 handler。改成 http://127.0.0.1:23456/v1
  • 401 Unauthorized —— cc-router 的 token 可能轮换过了。回到本页重新点 插入 cc-router 推荐配置,再分别 保存 两个文件,即可写入最新 token。
  • profile 没生效 —— CLI 端忘了加 -p cc-router;Desktop 端切换后没重启。
  • model_not_found / 400 model is required —— model 字段拼错了。原生路径必须填 cc-router 的虚拟槽位名(model-opus / model-sonnet / model-haiku)。
  • 想恢复原配置 —— cc-router 写入前已自动备份为 *.cc-router.bak,把它改回原名即可还原。

安全提示

  • OPENAI_API_KEY(即 cc-router token)是访问凭据,等同于直接调用你的所有上游 provider,勿外泄、勿提交到代码仓库。注意 ~/.codex/auth.json 里是明文。
  • 仅在受信任的局域网中暴露 cc-router 端口;公网暴露需自行评估风险,并配合反向代理 + 鉴权层加固。