移动端Codex配第三方中转API:Auth层和Model层解耦的奇妙用法


Codex移动端灰度开放后,用ChatGPT账号登录就能远程控制本机的Codex干活,体验确实丝滑。但后台收到最多的一条留言是:中转API能不能跑?
我一开始也没底。毕竟Codex对接口的校验挺严格的,普通中转站根本喂不进去。研究了一下午配置文件,发现它的Auth层和Model层是完全分开走的,这就给了操作空间。
今天把完整配置过程记录下来,你照着走一遍就能通。
原理:两道门,各管各的
Codex处理一次对话请求,要过两道关卡。
第一道叫Auth层。它管的是"你是谁"这个问题:登录态、Plus会员、插件权限、Mobile解锁、额度查询,全在这层。验证通过就行了,它不关心你后面用哪家的API。
第二道叫Model层。这层管的是"实际干活":把你输入的对话内容送到某个模型那里,拿回复回来。它看的只有config.toml里的provider配置。
重点来了——这两层是解耦的。Auth层认你的ChatGPT账号,Model层认你的config配置,互相不通信。
打个比方:Auth层就像小区的门禁卡,证明你是业主;Model层就像你家请的装修队,门禁不管你请的是哪家公司。
所以思路就很清晰了:让Auth层继续用ChatGPT账号过门禁,Model层悄悄换成coding.rexai.top来干活。
你需要准备三样东西
- 一个ChatGPT账号,Free档就够。Codex移动端支持免费用户远程调用本机的Codex实例。
- 一个支持 OpenAI Responses API 的中转站账号,推荐 coding.rexai.top ,这是我自用的中转服务,实测能跑通。为什么非它不可后面说。
- 两份配置文件的路径记好:
~/.codex/auth.json和~/.codex/config.toml
关于第二点多说两句。Codex发请求用的是OpenAI的Responses API,对应路径是/v1/responses。市面上大部分中转站只适配了/v1/chat/completions这个老路径,请求一过去直接404或者405。coding.rexai.top
是目前少数明确支持Responses API的中转平台之一。
配置过程(四步走)
第一步:先登录,后改配置
这步的顺序特别重要。
先正常打开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去扣额度"。
文件里其他字段一字不动,保持原样就行。
第三步:改config.toml
打开~/.codex/config.toml,在文件末尾追加下面这段:
model_provider = "rexai"
model = "openai/gpt-4.1"
[model_providers.rexai]
name = "RexAI"
base_url = "https://coding.rexai.top/api/v1"
wire_api = "responses"
experimental_bearer_token = "你的 API Key"
requires_openai_auth = true
逐个解释一下这些字段:
model_provider:告诉Codex用哪个provider。这个名字要和下面[model_providers.xxx]方括号里的名字完全一致。model:模型名。格式是openai/模型名,前缀openai/不能省,否则找不到模型。base_url:中转站API入口地址,这里填coding.rexai.top。wire_api:必须填"responses"。这个字段决定了Codex发请求走哪个协议。填responses就是走OpenAI最新的Responses API。experimental_bearer_token:填你从中转站控制台生成的API Key。requires_openai_auth:填true。这个字段是关键——它让Codex以为自己还在OpenAI的体系内,不会因为换了provider就报权限错误。
第四步:验证是否生效
保存配置后,完全退出Codex(不是最小化,是退出),然后重新打开。
发一条测试消息过去,看看能不能正常回复。
验证是不是真的走了中转站,有两种方式:一是去中转站控制台看用量记录,二是看Codex桌面端左下角的个人中心里的使用量统计。如果两边都有记录,说明Model层切换成功了。
切换后的效果
切换完成之后,移动端和桌面端是互为镜像的关系。桌面端显示走的是中转站,移动端同步显示。
这意味着你在手机上打开Codex App,远程控制本机Codex的时候,实际对话请求也是从中转站出去的,不会走官方额度。
几个踩过的坑
历史记录没了
切换provider之后,对话记录跟provider绑定。换了provider等于开了个新号,之前的对话一条都看不到。这个目前没辙,切之前想清楚。
模型名的前缀不能省
中转站的模型命名规则是openai/gpt-4.1、openai/gpt-4o这种带前缀的格式。你要是直接写gpt-4.1,Codex会报模型找不到。别问我怎么知道的。
普通中转为什么不行
再说一遍这个关键点:wire_api = "responses"模式下,Codex发出去的请求走的是/v1/responses端点。这个端点和大家熟悉的/v1/chat/completions是两套东西。中转站如果没有专门适配Responses API,请求到那里就是404或者405。
说白了,这套方案的根基就是Codex架构上Auth和Model的解耦设计。ChatGPT账号负责证明你是谁,中转站负责把活干完。门禁是门禁,装修队是装修队,各管各的。
想跟着学更多AI编程实战?关注「全栈之巅-梦兽编程」公众号,每周更新Rust/AI干货。
也欢迎了解梦兽编程AI编程助手服务 ,帮你把AI编程工具用到生产环境。
FAQ
Q: 切换后Plus会员权益还在吗?
A: 在的。Auth层继续走ChatGPT认证,Plus权益、插件权限、Mobile解锁都不受影响。只是实际对话请求从中转站走了。
Q: 除了coding.rexai.top还有别的中转能用吗?
A: 理论上只要支持/v1/responses端点的中转都行。coding.rexai.top
是我自用的,稳定性和速度都不错。你要是找到了别的,欢迎留言告诉我。
Q: 移动端和桌面端能分别配不同provider吗?
A: 不行。配置文件是全局的,两端共享一套配置。
