˗ˋˏ ♡ ˎˊ˗˗ˋˏ ♡ ˎˊ˗˗ˋˏ ♡ ˎˊ˗˗ˋˏ ♡ ˎˊ˗˗ˋˏ ♡ ˎˊ˗˗ˋˏ ♡ ˎˊ˗˗ˋˏ ♡ ˎˊ˗˗ˋˏ ♡ ˎˊ˗
1. 背景 ฅʕ•̫͡•
作为一名预算有限的前端开发er,在实际工作中,我们常常面临以下痛点ฅʕ•̫͡•:
- GPT 成本较高:频繁调用 OpenAI 的 GPT 模型会产生不小的开销。
- 希望使用国内模型:出于网络、合规性或成本考虑,有时更倾向于使用国内的 AI 模型。
- 不同任务需要不同模型:并非所有场景都需要最强的模型,根据任务复杂度选择合适的模型可以优化成本与效率。
Soooooooo! ✧ ʕ̢̣̣̣̣̩̩̩̩·͡˔· Ɂ̡̣̣̣̣̩̩̩̩✧
针对不同的开发场景,我们可以参考以下模型选择策略:
| 场景 | 推荐模型 |
|---|---|
| 日常代码编写 | GLM / Claude |
| 大型架构分析 | GPT |
| 图片、多模态任务 | GPT |
| 简单代码补全 | Flash 类模型 |
因此,我期望构建一个解决方案,其核心流程如下:
Codex CLI
|
↓
CLIProxyAPI
|
↓
第三方模型
2. 整体架构
( ᵒ̴̶̷̤ꈊ˂̶̤̀ )✧
2.1 为什么需要 CLIProxyAPI?
Codex CLI 默认调用:OpenAI Responses API
而很多第三方模型提供:Chat Completions API
两者协议不同,因此增加代理层:
text
┌─────────────┐
│ Codex CLI │
└──────┬──────┘
│
│ Responses API
↓
┌───────────────┐
│ CLIProxyAPI │
│ │
│ 协议转换 │
│ 模型路由 │
│ Key管理 │
└──────┬────────┘
│
│ Chat API
↓
┌─────────────┐
│ GLM/GPT │
└─────────────┘
2.2 CLIProxyAPI 主要负责
- 接收 Codex 请求
- 转换 API 协议
- 根据模型名称选择目标模型
- 转发到对应服务
3. 环境准备
3.1 安装要求
支持平台:
bash
macOS
Linux
Windows
依赖环境:
bash
node >= 22
npm
环境检查:
bash
node -v
npm -v
4. 安装 Codex CLI
4.1 安装步骤
安装命令:
bash
npm install -g @openai/codex@latest
验证安装:
bash
codex --version
安装成功提示:
bash
codex-cli x.x.x

5. 安装 CLIProxyAPI
CLIProxyAPI 是专门用于 Codex / Claude Code 等 CLI 工具的 API 协议转换工具。
5.1 创建目录并下载
下载 macOS Apple Silicon 版本:
bash
mkdir -p ~/.codex
bash
curl -L \
-o /tmp/cliproxy.tar.gz \
https://github.com/router-for-me/CLIProxyAPI/releases/latest/download/CLIProxyAPI_darwin_arm64.tar.gz
其他版本下载:
下载地址:CLIProxyAPI Releases,请下载对应平台的版本。
解压文件:
bash
cd /tmp
tar -xzf cliproxy.tar.gz
复制文件:
bash
cp cli-proxy-api ~/.codex/
chmod +x ~/.codex/cli-proxy-api
验证安装:
bash
~/.codex/cli-proxy-api --help
6. 配置 CLIProxyAPI
注:我这里配的是免费版的glm,如果有需要也可以改为你对应的版本
创建:
bash
vim ~/.codex/cliproxy-config.yaml
示例:
shell
host: "127.0.0.1"
port: 8317
debug: false
api-keys:
- "sk-codex-local"
openai-compatibility:
- name: "glm"
base-url: "https://open.bigmodel.cn/api/paas/v4"
api-key-entries:
- api-key: "YOUR_GLM_KEY"
models:
- name: "glm-4.7-flash"
alias: "glm-4.7-flash"
说明
api-keys
这是:Codex → CLIProxyAPI认证使用。
例如:
api-keys:
- sk-codex-local
api-key
这是:CLIProxyAPI → GLM真实 API Key。
两者不要混淆。
7. 启动 CLIProxyAPI
前台启动
bash
~/.codex/cli-proxy-api \
-config ~/.codex/cliproxy-config.yaml
用于调试。
后台启动
bash
nohup ~/.codex/cli-proxy-api \
-config ~/.codex/cliproxy-config.yaml \
> ~/.codex/proxy.log 2>&1 &
查看日志:
bash
tail -f ~/.codex/proxy.log
- 检查:
bash
lsof -i:8317
8. 配置 Codex
配置文件:
bash
~/.codex/config.toml
示例:
bash
model_provider = "glm-proxy"
model = "glm-4.7-flash"
[model_providers.glm-proxy]
name = "GLM via CLIProxyAPI"
base_url = "http://127.0.0.1:8317/v1"
env_key = "CODEX_GLM_KEY"
wire_api = "responses"
9. 配置环境变量
添加:
bash
echo '
export CODEX_GLM_KEY="sk-codex-local"
' >> ~/.zshrc
生效:
bash
source ~/.zshrc
检查:
bash
echo $CODEX_GLM_KEY
10. 验证模型
查看代理模型:
bash
curl \
http://127.0.0.1:8317/v1/models \
-H "Authorization: Bearer $CODEX_GLM_KEY"
返回:
json
{
"data":[
{
"id":"glm-4.7-flash"
}
]
}
说明:
- CLIProxyAPI 正常;
- Key 正常;
- 模型注册成功。
- 使用 Codex
启动:
bash
codex
例如:
bash
分析当前项目架构
或者:
bash
codex "优化这个函数"
自动修改:
bash
codex --full-auto \
"修复这个bug"
(⸝⸝•‧̫•⸝⸝)
12. 模型切换方式
12.1 修改默认模型
编辑:
bash
~/.codex/config.toml
例如:
bash
GLM:
model="glm-4.7-flash"
GPT:
model="gpt-5.5"
修改后重新启动 Codex。
12.2 临时指定模型
不修改配置:
bash
codex --model glm-4.7-flash
例如:
bash
codex --model gpt-5.5
适合临时测试。
12.3 多 Provider 配置
推荐方式:
同时保留多个模型。
例如:
bash
model_provider="openai"
model="gpt-5.5"
[model_providers.glm-proxy]
name="GLM"
base_url="http://127.0.0.1:8317/v1"
env_key="CODEX_GLM_KEY"
wire_api="responses"
效果:
默认:
Codex
↓
GPT
指定:
codex --model glm-4.7-flash
↓
GLM
13. CLI 与 ChatGPT Desktop 的区别
这是实际使用中最容易踩坑的地方。
Codex CLI
读取:
~/.codex/config.toml
可以:
Codex CLI
↓
CLIProxyAPI
↓
GLM
适合:
- 编码
- 重构
- Debug
桌面端 Codex 通常使用:
ChatGPT Account,而不是完全依赖config.toml
因此,可以使用 GPT 官方模型;不一定支持第三方 Provider;多模态能力依赖官方模型。
例如:
GPT
支持:
√ 图片
√ Pet
√ 多模态
GLM:
可能只支持文本
14. 常见问题
ʕ•̫͡• ʔ•̫͡•ཻʕ•̫͡•ʔ•͓͡•ʔʕ•̫͡• ʔ•̫͡•ཻʕ•̫͡•ʔ•͓͡•ʔʕ•̫͡• ʔ•̫͡•ཻʕ•̫͡•ʔ•͓͡•ʔʕ•̫͡• ʔ•̫͡•ཻʕ•̫͡•ʔ
14.1 Missing CODEX_GLM_KEY
原因:环境变量不存在。
解决:
bash
source ~/.zshrc
14.2 429 Too Many Requests
例如:
json
{
"code":"1113",
"message":"余额不足或无可用资源包"
}
说明不是 Codex 问题。
检查:
bash
curl /v1/responses
确认GLM 余额;套餐;API Key。
14.3 模型不存在
例如:
bash
model glm-xxx not found
检查:
bash
curl /v1/models
确认代理暴露模型。
15. 推荐开发环境方案
方案一:低成本开发
Codex CLI
↓
CLIProxyAPI
↓
GLM-4.7-Flash
适合:
- 日常开发
- 代码阅读
- Bug修复
方案二:高级能力
ChatGPT Desktop
↓
GPT模型
适合:
- 图片
- 多模态
- Agent能力
- 总结
通过 CLIProxyAPI,可以让 Codex CLI 接入第三方大模型。
核心流程:
安装 Codex CLI
↓
安装 CLIProxyAPI
↓
配置模型 Provider
↓
启动代理
↓
配置 config.toml
↓
选择模型
最终实现:
一个 Codex,多个模型按场景切换
◔.̮◔✧