让 Codex 桌面端使用任意 LLM - 成本降低 30-50 倍
快速开始 • 支持的模型 • 常见问题 • 贡献 • 许可证
- 🚀 一行命令启动 - 无需复杂配置,开箱即用
- 💰 成本降低 30-50 倍 - 使用 DeepSeek 替代 GPT-5.5
- 🔌 多模型支持 - DeepSeek、智谱 GLM,以及任何 OpenAI 兼容 API
- 🧠 思维链完整 - 完美支持 DeepSeek V4 Pro 的 reasoning_content
- 🛡️ 功能完整 - Codex 的工具调用、沙盒环境、上下文管理全部正常
- 📖 开源免费 - MIT 许可证,欢迎贡献
| 模型 | 价格(每百万 token) | 相比官方 |
|---|---|---|
| GPT-5.5(OpenAI 官方) | $15-30 | 基准 |
| DeepSeek V4 Pro | ¥2-4(~$0.3-0.6) | 便宜 30-50 倍 |
| 智谱 GLM-4-Plus | ¥5-10(~$0.7-1.4) | 便宜 15-20 倍 |
💡 核心功能不受影响:Codex 的工具调用、沙盒环境、上下文管理等能力在客户端,不在模型。代理只负责协议转换。
git clone https://github.com/Lucasmantou/codex-proxy.git
cd codex-proxypip install -r requirements.txt方式 A:环境变量(推荐)
# Windows PowerShell
$env:DEEPSEEK_API_KEY="sk-xxxxxxxxxxxx"
# Windows CMD
set DEEPSEEK_API_KEY=sk-xxxxxxxxxxxx
# Linux/Mac
export DEEPSEEK_API_KEY="sk-xxxxxxxxxxxx"方式 B:.env 文件
cp .env.example .env
# 编辑 .env,填入你的 API Key# DeepSeek(默认)
python codex_proxy.py --upstream https://api.deepseek.com
# 智谱 GLM
python codex_proxy.py --upstream https://open.bigmodel.cn/api/paas/v4编辑 ~/.codex/config.toml(参考 config.toml.example):
model = "gpt-5.4"
model_provider = "deepseek"
sandbox_mode = "danger-full-access"
[model_providers.deepseek]
name = "DeepSeek"
base_url = "http://localhost:9090/v1"
env_key = "DEEPSEEK_API_KEY"
wire_api = "responses"- 编辑
启动Codex代理.bat,填入你的 API Key - 双击运行
- 看到
Running on http://127.0.0.1:9090后,打开 Codex
python codex_proxy.py [选项]| 参数 | 默认值 | 说明 |
|---|---|---|
--upstream |
https://api.deepseek.com |
上游 API 地址 |
--port |
9090 |
代理监听端口 |
--host |
127.0.0.1 |
代理监听地址 |
代理会自动将 Codex 内部使用的 GPT 模型名映射为其他模型:
| Codex 模型名 | DeepSeek 模型 | 智谱模型 |
|---|---|---|
| gpt-5.4 | deepseek-v4-pro | glm-4-plus |
| gpt-5.4-mini | deepseek-v4-flash | glm-4-flash |
| gpt-4o | deepseek-v4-pro | glm-4-plus |
| gpt-4o-mini | deepseek-v4-flash | glm-4-flash |
💡 如果 Codex 更新后模型名变化,只需修改
codex_proxy.py中的MODEL_MAP。
Codex 使用的是 OpenAI Responses API,而其他模型使用的是标准 Chat Completions API。两者的请求/响应格式完全不同。
请求格式对比:
// Codex 发出的请求(Responses API)
{
"model": "gpt-5.4",
"input": [{"type": "message", "role": "user", "content": "你好"}],
"tools": [...]
}
// DeepSeek 期望的请求(Chat Completions API)
{
"model": "deepseek-v4-pro",
"messages": [{"role": "user", "content": "你好"}],
"tools": [...]
}代理做了什么?
- 请求翻译:将 Responses API 格式转换为 Chat Completions 格式
- 响应翻译:将 Chat Completions SSE 转换为 Responses API SSE
- 思维链存储:本地维护
reasoning_store.json,保存和恢复思维链内容 - 消息合并:将 Codex 拆开的 assistant 消息和 function_call 合并成标准格式
📖 详细技术分析请参考:Codex前端为什么不能直接切换模型?
Q1:启动后 Codex 白屏?
原因: 代理未启动或启动顺序错误。
解决:
- 确保代理已启动(看到
Running on http://127.0.0.1:9090) - 清空
~/.codex/.codex-global-state.json中的active-workspace-roots和projectless-thread-ids - 重启 Codex
Q2:对话中断,报 400 错误?
原因: reasoning_store.json 损坏或丢失。
解决:
rm reasoning_store.json
# 重启代理Q3:多进程冲突,端口被占用?
原因: Windows 上多个 Python 进程可以同时绑定同一端口。
解决:
taskkill //F //IM python.exe
# 重启代理Q4:更新 Codex 后配置丢失?
解决:
# 备份配置
cp ~/.codex/config.toml ~/.codex/config.toml.bak
# 更新后恢复
cp ~/.codex/config.toml.bak ~/.codex/config.tomlQ5:如何切换其他模型?
修改 codex_proxy.py 中的 MODEL_MAP 和启动时的 --upstream 参数:
# 智谱 GLM
MODEL_MAP = {
"gpt-5.4": "glm-4-plus",
"gpt-5.4-mini": "glm-4-flash",
}python codex_proxy.py --upstream https://open.bigmodel.cn/api/paas/v4Q6:代理会不会很慢?
不会。 代理只做协议转换,延迟增加约 50-100ms,几乎无感。
更多问题请查看 详细部署指南。
codex-proxy/
├── codex_proxy.py # 代理主程序
├── requirements.txt # Python 依赖
├── .env.example # 环境变量模板
├── config.toml.example # Codex 配置模板
├── 启动Codex代理.bat # Windows 启动脚本
├── LICENSE # MIT 许可证
└── README.md # 本文件
欢迎贡献代码、报告问题或提出建议!
- Fork 本项目
- 创建特性分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add amazing feature' - 推送到分支:
git push origin feature/amazing-feature - 创建 Pull Request
# 克隆你的 Fork
git clone https://github.com/Lucasmantou/codex-proxy.git
cd codex-proxy
# 安装依赖
pip install -r requirements.txt
# 启动开发服务器
python codex_proxy.py --upstream https://api.deepseek.com本项目采用 MIT 许可证 - 详见 LICENSE 文件
如有问题或建议,请通过以下方式联系:
- 提交 Issue
- 微信联系:Lucas_16_1213
如果觉得有用,请给个 ⭐ Star 支持一下!