Codex CLI/App 自定义 API 配置
使用 config.toml、auth.json、BetterToken API Key 和 Responses Base URL 配置 Codex CLI 与 Codex App。
Codex CLI 和 Codex App 的本地任务共用 config.toml 与 auth.json,通过 OpenAI Responses 使用 BetterToken API Key。
重点信息
| 字段 | 填写内容 |
|---|---|
| API Key | auth.json → OPENAI_API_KEY |
| Base URL | https://bettertoken.ai/v1 |
| Model | gpt-6-astra |
准备工作
- 使用 npm 或 BetterToken Automatic setup 脚本时需安装 Node.js
- 创建 BetterToken API Key
- 从模型广场或 Key 的 Setup 弹窗复制 Model ID
安装
你可以使用适用于 macOS/Linux 或 Windows 的官方独立安装程序,无需 Node.js。如果选择 npm,请先安装 Node.js,再运行:
npm install -g @openai/codex确认路径并备份
如果设置了自定义 CODEX_HOME,请编辑该目录中的 config.toml 和 auth.json。否则,macOS / Linux 使用 ~/.codex,Windows 使用 %USERPROFILE%\.codex。CLI 与 App 必须使用同一目录。WSL 有独立的用户目录。
修改前完全退出 Codex,将两个文件备份到私密位置。文件不存在时可创建。替换已有设置,不要重复追加键或表;保留无关配置。
命令行配置
BetterToken Automatic setup 脚本会写入 Codex provider 配置。脚本需要 Node.js;如果没有通过参数提供 API Key 或 Model ID,运行时会交互式提示输入。
macOS / Linux
curl -fsSL "https://bettertoken.ai/install-codex-provider.sh" | bashWindows
iwr "https://bettertoken.ai/install-codex-provider.ps1" -OutFile "$env:TEMP\install-codex-provider.ps1"; powershell -ExecutionPolicy Bypass -File "$env:TEMP\install-codex-provider.ps1"安装后,按照下方手动配置检查两个文件,修正不一致的设置后再启动 Codex。
手动配置
编辑 config.toml
本页使用用户级 config.toml。将顶层键放在所有 TOML 表之前,不要放入 [projects."<path>"];该表用于项目的 trust_level。选中的 provider ID 必须与表名一致。文件认证模式下,从当前 provider 移除 env_key 和 experimental_bearer_token。
model_provider = "bettertoken"model = "gpt-6-astra"cli_auth_credentials_store = "file"
[model_providers.bettertoken]name = "BetterToken"base_url = "https://bettertoken.ai/v1"wire_api = "responses"requires_openai_auth = truesupports_websockets = false示例使用 GPT-6 Astra(gpt-6-astra)。切换模型时,从模型广场复制完整 ID 并替换 model。GPT、Kimi 和 GLM 使用相同的文件认证结构;自动配置适用于 GPT。
编辑 auth.json
auth.json 与 config.toml 位于同一目录。如果找不到 auth.json,请在该目录中新建这个文件。将文件内容设为以下 JSON,把 YOUR_API_KEY 替换为你的 BetterToken API Key,然后保存。
{ "auth_mode": "apikey", "OPENAI_API_KEY": "YOUR_API_KEY"}配置参数
| 参数 | 作用与位置 | 默认行为与示例 |
|---|---|---|
model_provider | 用户配置顶层;选择下方定义的配置 ID。 | 默认 openai;本页使用 bettertoken。 |
model | 顶层;模型广场中的完整 Model ID。 | 示例 gpt-6-astra,按需要替换。 |
cli_auth_credentials_store | 顶层;选择登录凭据的存储位置。 | 本页显式设为 file,读取同目录的 auth.json。 |
name | provider 表内;仅用于显示的名称。 | BetterToken 不是模型 ID。 |
base_url | provider 表内;模型 API 的 Base URL。 | 使用 https://bettertoken.ai/v1;Codex 自行添加 /responses。 |
wire_api | provider 表内;请求协议。 | 当前仅支持 responses,省略时也是该值。 |
requires_openai_auth | provider 表内;使用 OpenAI 认证流程及凭据存储。 | 默认 false;本页使用 true。它不是保留登录文件的开关。 |
supports_websockets | provider 表内;Responses WebSocket 支持。 | 默认 false;本页保持 HTTP/SSE 传输。 |
auth_mode | auth.json 内;指定认证模式。 | 本页设为 apikey,会替换官方 ChatGPT 登录认证。 |
OPENAI_API_KEY | auth.json 内;API Key 认证所用密钥。 | 将 YOUR_API_KEY 替换为 BetterToken API Key。 |
这里的文件认证会切换到 API Key 模式。需要保留官方账号时,请使用保留官方登录态的配置;两种模式不要混合。它们按认证目标区分,而不是按 CLI、App 或 Extension 区分。
可选调优
下面三项是可选调优,不是接入前提。需要时将它们合并到已有的 [model_providers.bettertoken] 表内,不要创建第二个同名表。
request_max_retries = 4stream_max_retries = 8stream_idle_timeout_ms = 300000| 参数 | 作用与位置 | 默认行为与示例 |
|---|---|---|
request_max_retries | provider 表内;HTTP 请求的最大重试次数。 | 默认 4;按连接情况调整。 |
stream_max_retries | provider 表内;流式响应中断后的重连次数。 | 默认 5;8 是可选的自定义值。 |
stream_idle_timeout_ms | provider 表内;流式响应无活动时的超时,单位毫秒。 | 默认 300000;这是空闲超时,不是整次任务的总时限。 |
配置层级与旧参数
模型和推理设置不要写入 [projects."<path>"]。项目专属模型可以放在受信任项目的 .codex/config.toml 顶层,但 provider 与认证配置仍放在用户配置。新版命名 profile 使用 CODEX_HOME 下的 NAME.config.toml,通过 codex --profile NAME 选择,不使用旧的 [profiles.NAME] 或顶层 profile 选择器。
验证连接
保存两个文件后,在终端直接启动新的 Codex CLI 会话:
codex完全退出 Codex App,包括后台进程,然后重新打开并新建本地任务。在实际使用的每个客户端发送简短提示词,确认能够正常返回。
切换模型
修改 model 和可选的 review_model,保存后结束当前 Codex 进程并重新启动。模型 ID 以 Setup 弹窗或模型广场为准。
常见错误
出现 401、403 或登录提示时,检查实际使用的目录、auth.json 中的 Key、auth_mode = apikey、cli_auth_credentials_store = file 和 requires_openai_auth = true。提供商或模型报错时,检查提供商 ID 是否一致、https://bettertoken.ai/v1、wire_api = responses 及模型是否可用。配置未生效时,检查覆盖设置,并确认 CLI 与 App 使用相同的 CODEX_HOME。
进阶配置
Codex Extension
CLI、App 和 Extension 使用同一个 CODEX_HOME 时共享配置。按接入目标选择 API Key 认证或保留官方登录,不要按客户端区分认证方式。
相关 FAQ
官方参考
技术说明
Responses 协议
Codex 使用 OpenAI Responses。base_url 填写 https://bettertoken.ai/v1,wire_api 固定为 responses。Codex 会自行请求 /responses。

