先说原理,Codex 的内部架构,其实分了两层:
Auth 层:负责你的登录状态、Plus 会员验证、插件权限、Mobile 解锁、额度查询。这一层认的是你的 ChatGPT 账号。
Model 层:负责实际发出去的对话请求,把你输入的内容送到某个模型,拿回来回复。这一层认的是 config.toml 里配置的 provider。
这两层目前是解耦的。
所以理论上,你可以让 Auth 层继续认 ChatGPT,保留 Plus 权益、Mobile 功能、插件等,而把 Model 层悄悄换成你自己的 API。
怎么做?看下面:
需要准备什么
- 一个有效的 ChatGPT 账号,Free 即可,因为免费的用户也可以登录Codex的移动端来远程使用本机的Codex。
- 一个支持 OpenAI Responses API 的第三方中转站账号。
- 找到 Codex 的两个配置文件:
~/.codex/auth.json和~/.codex/config.toml
任意支持 /v1/responses 端点的中转平台即可,支持OpenAI最新的responses 模式,完整适配Codex。
第一步:先登录 ChatGPT 账号
在修改任何配置文件之前,先在 Codex 里正常完成 ChatGPT 账号登录,保持登录态。
这一步的顺序很关键,如果你先改配置再登录,Auth 层会出问题。
第二步:修改 auth.json
找到文件 ~/.codex/auth.json,用任意文本编辑器打开。
找到这两个字段,改成如下值:
{"auth_mode":"chatgpt","OPENAI_API_KEY":null}
其他字段一律不动。
auth_mode 改为 "chatgpt" 表示登录验证继续走 ChatGPT。
OPENAI_API_KEY 设为 null 表示不使用官方 API key,避免 Codex 用它去调用 OpenAI 官方接口。
第三步:修改 config.toml
找到文件 ~/.codex/config.toml,在文件末尾追加以下内容:
[model_providers.xxx]
name = "xxx"
base_url = "https://xxxx"
wire_api = "responses"
experimental_bearer_token = "xxxx"
requires_openai_auth = true
web_search = "live"
supports_websockets = false
字段说明,(以下的字段根本就不用看,复制下来交给Claude Code或者Wrap就可以)
- •
model_provider:指定使用哪个 provider,要和下面[model_providers.xxx]的名称一致 model:第三方 api 的模型名带 provider 前缀,格式是openai/模型名base_url:第三方的 API 地址wire_api:固定填"responses",表示走 OpenAI Responses API 协议experimental_bearer_token:你的 第三方 API Key,在 第三方 api 控制台生成requires_openai_auth:填true,让 Codex 以为还在 OpenAI 体系里,这是绕过检测的关键字段
第四步:重启 Codex,验证是否生效
保存两个配置文件后,完全退出 Codex 再重新打开。
发一条测试消息,如果能正常回复,说明 Model 层已经切换成功。
验证方式,在 第三方 api 控制台的用量记录里,应该能看到刚才那条请求的消费记录或者直接在Codex的桌面端左下角个人中心查看使用量。
如果有,说明对话确实走了第三方 api。
切换完成后,Codex移动端和桌面端互为镜像。
几个需要注意的地方
历史对话会消失
切换 provider 之后,之前的历史对话记录会看不到。这是 Codex 的机制,对话记录和 provider 绑定,换了 provider 就相当于新建账户。
这个目前没有绕过的办法。
插件解锁
通过这种方式之前灰色的插件也解锁了,同时模型的快速模式会显示闪电图标。
电脑端从一个中转站切换到另一个中转站的 key 之后手机端会显示离线
目前还没找到解决方案,欢迎佬友探索。
1 个帖子 - 1 位参与者