Codex CLI 接 DeepSeek / Kimi / Qwen:config.toml 八行配置,三个模型实测花费
OpenAI Codex CLI 接国产模型:在 ~/.codex/config.toml 加一个 Bumo Router 供应商(wire_api = responses),一个 Key 切 DeepSeek、Kimi、Qwen,附 3 个模型写代码跑测试的实测耗时、token 和花费。

可以接。在 ~/.codex/config.toml 里加一个供应商,base_url 填 https://router.bumo.cc/v1,wire_api 填 "responses",Key 放进环境变量 BUMO_API_KEY,Codex 就能用 DeepSeek、Kimi、Qwen 写代码。 我们让三个模型各做一次「写函数 + 写测试 + 跑测试」,全部一次通过。最划算的是 qwen/qwen3.8-flash,这一次约 1 分钱;deepseek/deepseek-flash 约 2 分钱、速度最快;kimi/kimi-k3 约 0.23 元,适合难一点的活。
还没有 Key:到 router.bumo.cc/user/api-keys 注册并创建一把,充值后即可调用。国内直连,按人民币计费。
核验日期:2026-11-13,Codex CLI 0.159.2(npm 安装),Linux,用一个全新的 CODEX_HOME 目录从零照着本文做了一遍。
第 1 步:安装 Codex CLI
npm install -g @openai/codex
codex --version
第 2 步:写配置
编辑 ~/.codex/config.toml(没有就新建),加入下面 8 行:
model = "deepseek/deepseek-flash"
model_provider = "bumo"
[model_providers.bumo]
name = "Bumo Router"
base_url = "https://router.bumo.cc/v1"
env_key = "BUMO_API_KEY"
wire_api = "responses"
每一行的作用:
model:默认模型,必须是带厂商前缀的完整 ID,和 https://router.bumo.cc/v1/models 里一致。model_provider:指向下面定义的bumo供应商。不写这一行,Codex 仍然会去连 OpenAI。base_url:填到/v1为止,Codex 会自己拼/responses。地址要用router.bumo.cc。env_key:Codex 从这个环境变量读 Key,配置文件里不出现明文 Key。wire_api = "responses":新版 Codex 只支持 Responses API,Router 对国产模型也提供这个接口,本文三个模型都走它跑通。
这段配置和 Router 接入中心 里 Codex CLI 一栏一致,登录后在那里选模型、复制即可。
第 3 步:设置 Key,启动
export BUMO_API_KEY="你的 Router Key"
codex
想长期生效,把 export 那行写进 ~/.bashrc 或 ~/.zshrc。
不进交互界面、直接跑一个任务:
codex exec -s workspace-write "写一个 fizzbuzz 函数和测试,然后运行测试"
-s workspace-write 允许它在当前目录里写文件和执行命令,不加的话默认只读。
换模型
临时换用 -m:
codex -m kimi/kimi-k3
codex -m qwen/qwen3.8-flash
长期换就改 config.toml 里的 model。交互界面里也可以用 /model 切换。同一把 Key 对所有模型通用,不用为每家厂商单独开账号。
实测:三个模型各写一次代码
任务是同一句话:「写 fizz.py,定义 fizzbuzz(n);写 test_fizz.py 用 assert 测 n=15;运行 python3 test_fizz.py 确认通过。」每个模型在一个空目录里从零开始,codex exec -s workspace-write 非交互执行。跑完我们自己再运行一次测试文件,确认真的通过。
token 取自 Codex 本地会话日志($CODEX_HOME/sessions 里的 token_count 事件),花费按 Router 模型页的高峰价计算(缓存命中部分按缓存价):
DeepSeek Flash(deepseek/deepseek-flash)
- 结果:一次通过
- 耗时:21 秒
- token:输入 29,366(其中缓存命中 25,600),输出 1,182
- 花费:约 0.018 元
Kimi K3(kimi/kimi-k3)
- 结果:一次通过
- 耗时:50 秒
- token:输入 19,350(其中缓存命中 12,288),输出 600
- 花费:约 0.23 元
Qwen3.8 Flash(qwen/qwen3.8-flash)
- 结果:一次通过,还自己多加了 n=0、n=3 两条边界断言
- 耗时:42 秒
- token:输入 21,835(其中缓存命中 13,312),输出 933
- 花费:约 0.011 元
几点观察:
- 输入 token 的大头是 Codex 自带的系统提示词和工具定义,一次小任务就有两三万 token,用户那句话只占几十个。所以小任务的花费主要看输入价和缓存价,缓存价便宜的模型更占便宜。
- 日常写代码用 DeepSeek Flash 或 Qwen3.8 Flash,一次一两分钱;Kimi K3 单价高一个数量级,留给需要更强推理的任务。
- DeepSeek Flash 有闲时价,工作日 9
12 点、1418 点以外半价,晚上跑批量任务更便宜。
常见问题
- 启动时出现
Model metadata for ... not found. Defaulting to fallback metadata:Codex 内置的模型表里只有 OpenAI 自家模型,对其他模型都会打这条警告。实测三个模型都能正常读写文件、执行命令,可以忽略。 - 401
Invalid or missing API key:没有在当前终端export BUMO_API_KEY,或 Key 复制不完整。echo $BUMO_API_KEY看一眼。 - 还是去连了 api.openai.com:
model_provider = "bumo"没写,或写在了[model_providers.bumo]段下面。这一行必须放在文件顶部、所有[...]段之前。 - 模型不存在:Model ID 漏了
deepseek/这类厂商前缀。 - 地址写成了 api.bumo.cc:这个域名对 POST 请求会 301 跳转,跳转后 Key 会丢,表现为 401。一律用
router.bumo.cc。 - 能不能用 GPT 或 Claude 模型:本文只覆盖国产模型。Router 当前的模型列表以 /v1/models 为准。
边界
本次验证了 Linux 上 Codex CLI 0.159.2 的 codex exec 非交互模式,三个模型各一次写文件、执行命令的任务。没有覆盖交互界面里的图片输入、MCP 工具和长时间多轮会话。价格以 Router 模型页为准,会随厂商调价变化。
想用图形界面一次配好 Claude Code、Codex、OpenCode 三个工具,可以看 magpie 一键接入不墨 Router。



