不降级、不破解,用本地代理让 Codex 最新桌面版跑在 DeepSeek 上
OpenAI Codex 使用 Responses API,而 DeepSeek 只提供 Chat Completions API。两者协议不兼容,直接对接会返回 400。
| 维度 | Codex ≥ v0.81.0 | DeepSeek API |
|---|---|---|
| 协议 | Responses API | Chat Completions API |
| 端点 | /v1/responses |
/v1/chat/completions |
| 工具调用 | tools 内联 |
tool_calls 独立消息 |
本指南使用 codex-bridge 在本地做协议翻译,无需降级 Codex 版本。
Codex Desktop (v0.129.0+)
│
│ Responses API
▼
codex-bridge (localhost:4000)
│
│ Chat Completions API
▼
DeepSeek API (api.deepseek.com)
- codex-bridge:Node.js 单文件,零依赖,~2000 行
- 支持流式 SSE、思考模式 (
reasoning_content)、工具调用回合 - 内存占用 ~30MB
- Windows 10/11
- Node.js ≥ 18 —
nodejs.org - Codex 桌面版 —
releases - DeepSeek API Key —
platform.deepseek.com - 终端(Git Bash 推荐)
git clone https://github.com/wujfeng712-ui/codex-bridge.git ~/.codex/codex-bridge编辑 ~/.codex/codex-bridge/.env:
DEEPSEEK_API_KEY=sk-your-key-here
DEEPSEEK_MODELS=deepseek-v4-pro,deepseek-v4-flash,deepseek-reasoner
DEFAULT_PROVIDER=deepseek
LOG_LEVEL=info~/.codex/config.toml
cli_auth_credentials_store = "file"
model = "deepseek-v4-pro"
model_provider = "local_proxy"
[model_providers.local_proxy]
name = "local_proxy"
base_url = "http://127.0.0.1:4000/v1"
wire_api = "responses"
requires_openai_auth = true~/.codex/auth.json
{
"auth_mode": "apikey",
"OPENAI_API_KEY": "sk-your-key-here"
}echo "sk-your-key-here" | codex login --with-api-key验证:codex login status 应显示 Logged in using an API key。
cd ~/.codex/codex-bridge
node --env-file=.env proxy.mjs输出:
[codex-bridge] Listening on http://localhost:4000
[codex-bridge] Deepseek: https://api.deepseek.com/v1
打开 Codex 桌面版,切换模型:
/model deepseek-v4-pro # 推理模型
/model deepseek-v4-flash # 快速模型
codex exec "回复一个字:好"看到模型为 deepseek-v4-pro、提供方为 local_proxy,且正常输出即表示成功。
桌面版仍然弹登录窗口
这是 Codex Issue #2450 的已知问题。用 CC Switch 可绕过:
- 下载
.msi安装 - Codex 选项卡 → 添加供应商
- API Key 填 DeepSeek 密钥,Base URL 填
http://127.0.0.1:4000/v1 - 启用后重启 Codex
wire_api = chat is no longer supported
Codex v0.81.0 起只支持 wire_api = "responses"。确认 config.toml 中为此值,由代理做 Chat Completions 翻译。
端口 4000 被占用
netstat -ano | findstr ":4000"
taskkill /PID <PID> /F或在 .env 中改 PROXY_PORT,同步更新 config.toml 的 base_url。
关闭终端后代理停了
见 进阶 → 开机自启。
方式一:任务计划程序
$action = New-ScheduledTaskAction -Execute "node" `
-Argument "--env-file=$env:USERPROFILE\.codex\codex-bridge\.env $env:USERPROFILE\.codex\codex-bridge\proxy.mjs" `
-WorkingDirectory "$env:USERPROFILE\.codex\codex-bridge"
$trigger = New-ScheduledTaskTrigger -AtLogon
Register-ScheduledTask -TaskName "CodexBridge" -Action $action -Trigger $trigger `
-Description "Codex → DeepSeek" -RunLevel Highest方式二:启动文件夹
在 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup 创建快捷方式:
- 目标:
node --env-file=.env proxy.mjs - 起始位置:
C:\Users\<用户名>\.codex\codex-bridge
编辑 .env 的 DEEPSEEK_MODELS,逗号分隔,重启代理后在 Codex 内 /model 切换。
- codex-bridge — 协议翻译代理
- Codex — OpenAI 官方仓库
- DeepSeek API — API 文档
- CC Switch — 多供应商管理工具
- Issue #2450 — 登录强制弹窗
MIT © 2026