跳转到内容
免费注册
Codex

Codex:使用第三方 API 并保留登录态与历史

通过手动 config.toml 或 CC Switch 使用第三方 API,同时保留 Codex 官方登录。逐项解释认证、模型和可选调优参数,并说明会话历史与常见错误。

你可以让模型请求使用 BetterToken API Key,同时保留 Codex 官方账号登录。手动配置和 CC Switch 管理使用同一原则:官方登录凭据与第三方模型请求凭据分开。

开始前准备

先在 Codex App、Codex CLI 或 Extension 中完成官方登录,并准备 BetterToken API Key 和模型广场里的完整 Model ID。CLI、App 和 Extension 需要使用相同的 CODEX_HOME 才会共享配置。

BetterToken API Key · 模型广场

配置方式

手动配置

保留官方登录凭据

完全退出 Codex,将现有配置备份到私密位置。官方登录凭据可能在 auth.json 或系统凭据存储中;保留当前存储方式,不改写为 API Key JSON。文件不存在时不要为了本方案创建假的登录文件。

编辑 config.toml

打开用户级 config.toml:macOS / Linux 默认 ~/.codex/config.toml,Windows 默认 %USERPROFILE%\.codex\config.toml;自定义 CODEX_HOME 时使用该目录。合并下面的设置,顶层键放在所有 TOML 表之前,不要重复添加已有表。只在本机将 YOUR_API_KEY 换成 BetterToken API Key。

model_provider = "bettertoken"
model = "gpt-6-astra"
[model_providers.bettertoken]
name = "BetterToken"
base_url = "https://bettertoken.ai/v1"
wire_api = "responses"
requires_openai_auth = true
experimental_bearer_token = "YOUR_API_KEY"
supports_websockets = false

保留官方登录生成的凭据,不要改成 API Key JSON。requires_openai_auth = true 使用官方认证流程;模型请求由当前 provider 的 experimental_bearer_token 提供第三方 Key。启用前者时 env_key 会被忽略,因此不要直接用它替换 Bearer Key。不要分享包含 Key 的配置文件。

配置参数

参数作用与位置默认行为与示例
model_provider用户配置顶层;选择下方定义的配置 ID。默认 openai;本页使用 bettertoken。
model顶层;模型广场中的完整 Model ID。示例 gpt-6-astra,按需要替换。
nameprovider 表内;仅用于显示的名称。BetterToken 不是模型 ID。
base_urlprovider 表内;模型 API 的 Base URL。使用 https://bettertoken.ai/v1;Codex 自行添加 /responses。
wire_apiprovider 表内;请求协议。当前仅支持 responses,省略时也是该值。
requires_openai_authprovider 表内;使用 OpenAI 认证流程及凭据存储。默认 false;本页使用 true。它不是保留登录文件的开关。
experimental_bearer_tokenprovider 表内;第三方请求的 Bearer Key。填 BetterToken API Key;它不改写官方登录缓存。此项仍受支持,但以明文保存在配置中。
supports_websocketsprovider 表内;Responses WebSocket 支持。默认 false;本页保持 HTTP/SSE 传输。

可选模型与连接设置

下面两项放在 config.toml 顶层,按需要使用,不是保留登录的前提。

review_model = "gpt-6-astra"
model_reasoning_effort = "high"
参数作用与位置默认行为与示例
review_model顶层;/review 使用的模型。可省略;默认使用当前会话模型。
model_reasoning_effort顶层;模型投入的推理力度。示例 high;有效档位和默认值取决于模型。

下面三项是可选调优,不是接入前提。需要时将它们合并到已有的 [model_providers.bettertoken] 表内,不要创建第二个同名表。

request_max_retries = 4
stream_max_retries = 8
stream_idle_timeout_ms = 300000
参数作用与位置默认行为与示例
request_max_retriesprovider 表内;HTTP 请求的最大重试次数。默认 4;按连接情况调整。
stream_max_retriesprovider 表内;流式响应中断后的重连次数。默认 5;8 是可选的自定义值。
stream_idle_timeout_msprovider 表内;流式响应无活动时的超时,单位毫秒。默认 300000;这是空闲超时,不是整次任务的总时限。

CC Switch 配置

  1. 使用当前 CC Switch,先切到 OpenAI Official,启动 Codex 并完成官方账号登录。

  2. 在 设置 → 应用配置 → Codex 中开启 非接管切换时保留官方登录。该开关控制直连切换;路由接管期间官方登录会保留。

  3. 在 CC Switch 的 Codex 页面添加或启用 BetterToken:Base URL 填 https://bettertoken.ai/v1,协议选择 OpenAI Responses API,填入 BetterToken API Key 和 Model ID。BetterToken 原生支持 Responses,不需要协议转换或路由接管。

  4. 保存并启用该配置。第三方 Key 写入 config.toml 的 provider 设置,不写入官方 auth.json。

统一会话历史(可选)

统一 Codex 会话历史 只影响 CLI 的 resume 列表。当前桌面版已能显示全部会话,只用桌面版无需开启。迁移已有历史时按提示选择,CC Switch 会先备份。跨 provider 继续旧会话可能因 encrypted_content 不兼容失败,切换后优先新建会话。

重启并验证

  1. 完全退出并重新启动你实际使用的 Codex 客户端,新建会话。

  2. 确认官方账号仍处于登录状态;在支持相应功能的客户端检查插件或 Remote Control。

  3. 发送简短测试消息,确认使用指定 Model ID,并在 BetterToken 使用记录中核对请求。账号显示本身不代表模型请求的计费方。

配置层级与旧参数

模型和推理设置不要写入 [projects."<path>"]。项目专属模型可以放在受信任项目的 .codex/config.toml 顶层,但 provider 与认证配置仍放在用户配置。新版命名 profile 使用 CODEX_HOME 下的 NAME.config.toml,通过 codex --profile NAME 选择,不使用旧的 [profiles.NAME] 或顶层 profile 选择器。

常见问题

现象处理方式
401、403 或登录提示核对当前 CODEX_HOME、官方登录及 provider 内的第三方 Key;不要用 API Key JSON 覆盖官方凭据。
配置被忽略或模型未改变顶层模型键放在所有 TOML 表之前,不放入 [projects."<path>"]。检查命令行、profile 和项目配置的覆盖。
disable_response_storage 或 windows_wsl_setup_acknowledged删除这些旧键;不要作为当前接入配置使用。
features.code_mode_tool_description_first若警告来自 session-flags,检查并更新生成启动参数的客户端;不要在用户配置中新增同名开关。
features.guardianv2.thread_context删除这一项,包括 profile 中的覆盖;保留其他 Guardian 设置。线程上下文始终启用。
会话历史可见,但跨 provider 续聊失败新建会话,或使用创建旧会话时的原 provider。

参考文档