国内配置 codex 和 code++
国内环境配置 Codex + Codex++(CodexPlusPlus)
说明:
- Codex:OpenAI官方编程Agent桌面客户端,国内无法直连官方接口,需要对接兼容OpenAI协议的国内大模型API(DeepSeek‑Coder、智谱GLM、通义千问等)
- Codex++(CodexPlusPlus):开源第三方增强启动器,不修改Codex原始文件,CDP注入,用来对接国内模型、免OpenAI账号登录、中文界面、会话管理
- ⚠️ Codex++本身不是大模型,只是桥接工具,需要自己准备国内大模型API‑Key。
- 仓库地址:https://github.com/BigPizzaV3/CodexPlusPlus
两种路径:
- 图形化:Codex++管理工具(Windows/macOS,推荐,零手写配置文件)
- 手动:直接修改
config.toml(适合CLI、服务器)
前置准备
- 下载官方Codex桌面客户端(ChatGPT桌面内置Codex)
- 获取国内代码大模型API Key(任选其一)
| 模型 | Base URL | 示例模型名 |
|---|---|---|
| DeepSeek | [https://api.deepseek.com](https://api.deepseek.com) |
deepseek‑coder‑v2‑instruct |
| 智谱GLM | [https://open.bigmodel.cn/api/paas/v4](https://open.bigmodel.cn/api/paas/v4) |
glm‑4‑code |
| 阿里云通义 | [https://dashscope.aliyuncs.com/compatible-mode/v1](https://dashscope.aliyuncs.com/compatible-mode/v1) |
qwen2.5‑coder‑32b‑instruct |
注册开放平台,实名认证,创建API Key,少量充值。
方案1:Codex++图形化配置(Windows优先,推荐)
1)安装
- 打开GitHub Release页面下载对应系统安装包:
CodexPlusPlus‑xxx‑setup.exe - 安装到非中文无空格路径,不要放C:\Program Files这类带空格目录
- 安装完成出现两个程序:
Codex++管理工具:做配置Codex++:必须从这个启动Codex,不要双击原版Codex图标
2)供应商配置(核心)
- 打开「Codex++管理工具」→【供应商配置】→【添加供应商】
- 参数填写示例(DeepSeek):
名称:DeepSeek‑Coder
接入模式:纯API模型(无需OpenAI账号)
BaseURL:[https://api.deepseek.com](https://api.deepseek.com)
API Key:粘贴你的sk‑xxx
上游协议:Chat Completions(国内绝大多数模型只支持这个,Responses API只有少数支持)
测试模型:deepseek‑coder‑v2‑instruct
勾选混入API‑Key
- 保存,设置为默认启用供应商
3)启动使用
- 在管理工具点【重启Codex】,或者双击桌面
Codex++快捷方式 - 右上角出现绿色圆点代表增强注入成功
- Codex内不需要登录OpenAI账号,直接对话写代码,底层走国内API
macOS额外修复:打开终端执行,解除系统隔离
sudo xattr -rd com.apple.quarantine "/Applications/Codex++.app"
sudo xattr -rd com.apple.quarantine "/Applications/Codex++ 管理工具.app"
方案2:手动修改Codex配置文件(CLI / 不想装Codex++GUI)
Codex会读取用户目录隐藏文件夹 .codex/config.toml
- Windows路径:
C:\Users\你的用户名\.codex\config.toml
如果没有
.codex文件夹,手动新建,注意开启系统显示隐藏项目。
# config.toml示例:对接DeepSeek
model_provider = "deepseek"
model = "deepseek‑coder‑v2‑instruct"
[model_providers.deepseek]
name = "DeepSeek"
base_url = "[https://api.deepseek.com/v1](https://api.deepseek.com/v1)"
env_key = "DEEPSEEK_API_KEY"
wire_api = "chat_completions"
设置环境变量(Windows PowerShell)
[Environment]::SetEnvironmentVariable("DEEPSEEK_API_KEY","sk‑xxxx","User")
重启终端/重启Codex客户端生效。
Codex++重要限制与坑
- 必须使用Codex++启动器打开程序;直接原版Codex图标打开,增强配置全部失效。
- 国内大模型绝大多数不支持 Responses API,上游协议务必选
Chat Completions,否则报400错误。 - 报错
model not found:模型名字写错,去对应开放平台文档复制准确模型ID。 - 401鉴权失败:检查API Key,注意不要带多余空格换行。
- 部分Codex原生Agent高级功能(Computer Use)依赖OpenAI私有协议,接入国产模型后会不可用,基础代码生成、重构、调试、文件读写正常。
- 网络:国内大模型API公网可访问,不需要代理。
备选方案:CC‑Switch(本地代理网关,适合同时给Codex CLI、Claude Code、Cline使用)
- 本地运行代理,自动做协议转换 Responses ↔ ChatCompletions
- 图形界面添加DeepSeek、Qwen、GLM,一键开启路由,所有AI工具统一走本地网关,不用每个工具单独配置。适合开发者同时使用多个Agent工具。
本地离线替代(无API,本地跑代码大模型)
如果你不想调用云端API,可使用Ollama本地部署代码模型,例如 deepseek‑coder、qwen2.5‑coder。
然后Codex/Codex++把base_url指向 Ollama本地地址 [http://127.0.0.1:11434/v1](http://127.0.0.1:11434/v1),本地完全离线运行。
排查问题清单
- Codex++管理工具日志面板看请求返回;
- 先在Postman测试API Key是否通,确认密钥本身没问题;
- 模型名称复制官方文档,不要自己随便起名;
- 重启Codex++,不要直接启动原版Codex。
如果你需要,我可以给你一份可直接复制的config.toml模板,分别适配DeepSeek、Qwen、GLM。
给一份可直接复制的 config.toml 模板,分别适配 DeepSeek、Qwen、GLM
config.toml 完整模板(Codex++ 适用,直接复制使用)
⚠️ 重要前置说明
- Windows路径:
C:\Users\你的用户名\.codex\config.toml,.codex是隐藏文件夹,需要开启「显示隐藏的项目」- 三选一使用,不要同时保留多个provider配置,注释掉不用的,只保留当前想用那一组
- 所有
sk-xxx替换成你自己申请的密钥,不要保留引号内示例文本- 国内模型只支持
chat_completions,不要改成 responses,否则会报错- 修改保存后,必须通过 Codex++ 启动器重启Codex 才生效
# ====================== 全局基础配置(共用,不用改)======================
# 选择启用哪个模型供应商:deepseek / qwen / glm4
model_provider = "deepseek"
# 模型名称,与上面provider对应
model = "deepseek-coder-v2-instruct"
# API协议类型,国内大模型统一用 chat_completions
wire_api = "chat_completions"
# ====================== 1. DeepSeek 深度求索 配置 ======================
[model_providers.deepseek]
name = "DeepSeek-Coder"
base_url = "[https://api.deepseek.com/v1](https://api.deepseek.com/v1)"
env_key = "DEEPSEEK_API_KEY"
# 密钥也可以直接写在这里(不推荐,明文风险),优先使用系统环境变量
# api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# ====================== 2. Qwen 通义千问(阿里)配置 ======================
[model_providers.qwen]
name = "Qwen2.5-Coder"
base_url = "[https://dashscope.aliyuncs.com/compatible-mode/v1](https://dashscope.aliyuncs.com/compatible-mode/v1)"
env_key = "QWEN_API_KEY"
# ====================== 3. GLM-4-Code 智谱清言配置 ======================
[model_providers.glm4]
name = "GLM4-Code"
base_url = "[https://open.bigmodel.cn/api/paas/v4](https://open.bigmodel.cn/api/paas/v4)"
env_key = "GLM_API_KEY"
切换模型示例
示例1:切换到阿里通义Qwen2.5-Coder
修改头部两行:
model_provider = "qwen"
model = "qwen2.5-coder-32b-instruct"
示例2:切换到智谱GLM4-Code
model_provider = "glm4"
model = "glm-4-code"
Windows 配置环境变量(PowerShell,管理员可选,用户级变量)
推荐用环境变量存放密钥,避免config.toml明文保存API Key,安全更好
# DeepSeek密钥
[Environment]::SetEnvironmentVariable("DEEPSEEK_API_KEY","sk-你的deepseek密钥","User")
# 通义千问密钥
[Environment]::SetEnvironmentVariable("QWEN_API_KEY","sk-你的dashscope密钥","User")
# 智谱GLM密钥
[Environment]::SetEnvironmentVariable("GLM_API_KEY","sk-你的bigmodel密钥","User")
执行完,关闭所有cmd/powershell、重启Codex++,环境变量才加载。
备选:直接写api_key明文(快速测试,不建议长期使用)
如果你不想配置环境变量,可以直接在对应provider内增加一行api_key,示例DeepSeek:
[model_providers.deepseek]
name = "DeepSeek-Coder"
base_url = "[https://api.deepseek.com/v1](https://api.deepseek.com/v1)"
api_key = "sk-xxxxxxxxxxxxxxxxxxxx"
常见踩坑
- base_url 末尾
/v1不要丢,很多人漏写导致404 - 模型名称严格复制官方文档,拼写大小写敏感,写错直接报model不存在
- 智谱的key格式是
sk-xxx,在智谱开放平台控制台获取 - 阿里云dashscope的key也是sk开头,要在阿里云百炼控制台申请
- 保存toml文件编码:UTF-8,不要GBK,否则Codex++读取配置乱码
可选扩展:Ollama本地离线模型配置片段(追加到文件末尾)
如果你本地Ollama跑代码模型,可以新增这个provider,切换 model_provider = "ollama"
[model_providers.ollama]
name = "Ollama-Local"
base_url = "[http://127.0.0.1:11434/v1](http://127.0.0.1:11434/v1)"
env_key = "OLLAMA_API_KEY"
# ollama本地默认不需要密钥,可以填任意字符串
示例头部:
model_provider = "ollama"
model = "deepseek-coder:6.7b"
wire_api = "chat_completions"
需要我顺便给你写一个一键设置环境变量的 .ps1 脚本吗?直接右键运行即可。
写一个一键设置环境变量的 .ps1 脚本
脚本说明
- 用户级环境变量,仅对当前Windows用户生效,不需要管理员权限
- 不会硬编码密钥,运行时交互式输入sk密钥
- 自动检测、写入3个环境变量:
DEEPSEEK_API_KEY、QWEN_API_KEY、GLM_API_KEY - 输出提示:设置完成后需要重启终端 / 重启Codex++才能加载新环境变量
- 文件保存为
set_codex_env.ps1,编码使用 UTF‑8 with BOM
<#
.SYNOPSIS
一键配置Codex++所需API密钥环境变量(用户级别,无需管理员)
#>
Write-Host "=====================================" -ForegroundColor Cyan
Write-Host " Codex++ API Key 环境变量配置脚本 " -ForegroundColor Cyan
Write-Host "=====================================" -ForegroundColor Cyan
Write-Host "`n提示:直接回车代表跳过该密钥设置`n" -ForegroundColor Gray
# 交互式输入密钥
$deepseekKey = Read-Host "请输入 DeepSeek API_KEY (sk-xxx)"
$qwenKey = Read-Host "请输入 通义千问Qwen API_KEY (sk-xxx)"
$glmKey = Read-Host "请输入 智谱GLM API_KEY (sk-xxx)"
# 设置用户环境变量
if (-not [string]::IsNullOrWhiteSpace($deepseekKey)) {
[Environment]::SetEnvironmentVariable("DEEPSEEK_API_KEY", $deepseekKey, "User")
Write-Host "✅ DEEPSEEK_API_KEY 已写入用户环境变量" -ForegroundColor Green
} else {
Write-Host "⏭️ 跳过 DeepSeek 密钥" -ForegroundColor Yellow
}
if (-not [string]::IsNullOrWhiteSpace($qwenKey)) {
[Environment]::SetEnvironmentVariable("QWEN_API_KEY", $qwenKey, "User")
Write-Host "✅ QWEN_API_KEY 已写入用户环境变量" -ForegroundColor Green
} else {
Write-Host "⏭️ 跳过 Qwen 密钥" -ForegroundColor Yellow
}
if (-not [string]::IsNullOrWhiteSpace($glmKey)) {
[Environment]::SetEnvironmentVariable("GLM_API_KEY", $glmKey, "User")
Write-Host "✅ GLM_API_KEY 已写入用户环境变量" -ForegroundColor Green
} else {
Write-Host "⏭️ 跳过 GLM 密钥" -ForegroundColor Yellow
}
Write-Host "`n================ 重要提醒 ================" -ForegroundColor Red
Write-Host "1. 环境变量已经写入系统,但当前PowerShell会话不会自动生效"
Write-Host "2. 请:关闭全部终端窗口,重启 Codex++ 启动器!"
Write-Host "3. 验证命令示例:`$env:DEEPSEEK_API_KEY"
Write-Host "==========================================" -ForegroundColor Red
Read-Host "`n按回车退出脚本"
使用步骤
- 将以上全部内容复制,新建文本,粘贴,另存为
set_codex_env.ps1 - 在文件所在文件夹,Shift+鼠标右键 → 在此处打开PowerShell窗口
- 执行:
.\set_codex_env.ps1
- 根据提示粘贴对应
sk‑密钥,不需要的直接回车跳过。
执行报错:禁止运行脚本
PowerShell默认策略阻止ps1脚本,执行一次放行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
输入 Y 确认,之后就可以运行脚本。
验证是否生效
关闭旧PowerShell,新开一个窗口执行:
$env:DEEPSEEK_API_KEY
$env:QWEN_API_KEY
$env:GLM_API_KEY
能打印出sk‑开头字符串代表环境变量写入成功。
⚠️ 安全提示:不要把ps1脚本保存密钥,本脚本内存读取,不会将密钥写进脚本文件本身。
如果你需要,我再给一个清除这三个环境变量的ps1清理脚本。
赠人玫瑰
手留余香
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【关注我】。

浙公网安备 33010602011771号