---
title: Codex CLI 配置：接入 apiToken.sale 自定义 GPT-6 Astra / GPT-5.6 提供商
description: "Codex CLI 配置无需 ChatGPT 登录：一个 model_providers 配置档把 Codex 指向 apiToken.sale 的 OpenAI 兼容端点，GPT-6 Astra / GPT-5.6 模型用预付余额计费，统一 50% 折扣。"
url: https://apitoken.sale/zh/docs/learn/codex-cli-setup
language: zh-CN
---

# Codex CLI 配置：为 apiToken.sale 写一个自定义提供商配置档

Codex CLI 的配置归结为一个 TOML 配置档：声明自定义模型提供商、把 base_url 指向 apiToken.sale、指定存放密钥的环境变量名。之后 Codex 完全以 API 密钥认证运行 GPT-6 Astra / GPT-5.6 模型，走预付余额扣费——无需 ChatGPT 登录，支出比 OpenAI 官方统一低 50%。

## Codex CLI 不需要 ChatGPT 账户

Codex 的认证方式由当前启用的模型提供商决定。在 model_providers 表里定义一个自定义提供商、导出它指定的 API 密钥，Codex 就不会再看 auth.json 里的 ChatGPT 登录——每个请求都用你的密钥签名，由端点归属方计费。把端点指向 apiToken.sale，每次会话就从同一个预付余额扣费：按 OpenAI 官方 token 费率计量，再叠加统一的 50% B2C 折扣。

干净的做法是用命名配置档，而不是改动主配置。配置档独立存放在自己的文件里，你的默认 Codex 配置和已有的 ChatGPT 登录原样保留，每次运行用一个 flag 显式启用。删掉这个文件，环境里就不会再留下任何 apiToken.sale 的痕迹。

## 一次写好 apitoken 配置档

将以下内容保存为 ~/.codex/apitoken.config.toml。它声明了提供商、端点、wire 协议，以及 Codex 读取密钥的环境变量：

```
# ~/.codex/apitoken.config.toml
model = "gpt-5.6-sol"
model_provider = "apitoken"

[model_providers.apitoken]
name = "apiToken.sale"
base_url = "https://router.apitoken.sale/v1"
wire_api = "responses"
env_key = "APITOKEN_API_KEY"
```

两行承载了安全姿态。env_key 指定变量名而不是存放密钥本身，密钥留在 shell 里，绝不写进可能被提交的文件。base_url 必须保留 /v1 后缀——丢掉它是首次运行失败最常见的原因，因为 Codex 调用的每个路由都挂在这个前缀下。

> 保持 wire_api = "responses"。Codex 0.149 只接受 Responses wire。网关也为其他客户端提供 Chat Completions，但这不表示 wire_api = "chat" 是 Codex 的有效设置。

## 导出密钥、查目录、运行

1. 在将要启动 Codex 的 shell 里导出密钥：export APITOKEN_API_KEY=sk-pool-•••——想永久生效就把同一行写进 shell 配置文件。
2. 先确认启用了什么再猜模型 ID：用同一个 Bearer 密钥请求 curl https://router.apitoken.sale/v1/models，返回的是实时目录。
3. 用配置档 flag 启动：codex --profile apitoken。显式传 flag 可以消除本次会话用哪个提供商——以及哪个环境变量——的一切歧义。
4. 先发一个小提示词。一次干净的回答能在一个往返里同时验证密钥、base_url 和余额；这一步出问题，排查成本也最低。

```
export APITOKEN_API_KEY=sk-pool-•••

curl https://router.apitoken.sale/v1/models \
  -H "Authorization: Bearer $APITOKEN_API_KEY"

codex --profile apitoken
```

> 目录接口回答的是整个网关，不只是 GPT：统一目录按提供方给 ID 划分命名空间（anthropic/*、openai/*、google/*）。同一把密钥和余额也覆盖支持的 Claude、Gemini 与 Kimi 模型——Codex 只会调用它配置档指向的那个提供商。

## 按会话选对 GPT-5.6 档位

配置档里的 model 行是默认值，不是承诺——按项目改它。GPT-5.6 设三档，是因为智能体编码在不同推理强度下烧 token 的速度差别很大：

| 模型 ID | 档位 | 官方输入 / 输出（$ / 1M） | 缓存输入 |
| --- | --- | --- | --- |
| gpt-5.6-sol | 旗舰 | $4 / $20（临时） | $0.40 |
| gpt-5.6-terra | 均衡 | $2 / $12 | $0.20 |
| gpt-5.6-luna | 快速 | $0.20 / $1.20 | $0.02 |

- Sol 临时官方输入/缓存/缓存写入/输出费率截至 2026-11-21（含当日）为 $4/$0.40/$5/$20，统一五折后为 $2/$0.20/$2.50/$10；自 2026-11-22 UTC 起恢复标准输入 $5、输出 $30。
- gpt-5.6-sol 用于最重的活：多文件重构、隐蔽 bug 的调试，以及任何答错比 token 更贵的场景。
- gpt-5.6-terra 作为日常主力——大多数 Codex 会话应该默认这一档。
- gpt-5.6-luna 用于又快又省的步骤：样板代码、重命名、一次性脚本，以及延迟比深度更重要的高频循环。
- 缓存输入是智能体循环真正省钱的地方——重复的上下文读取按缓存费率计费，50% 折扣再叠加其上。

[查看全部模型的完整规格与折后价格](/models)

## Codex 真正会报给你的四个错误

- Missing APITOKEN_API_KEY——env_key 指定的变量没有在运行 codex 的 shell 里导出。在同一个 shell（或 shell 配置文件）里导出后重试。
- stream error: unexpected status 401——密钥错误、已吊销，或 base_url 丢了 /v1 后缀。在 Codex 之外用 curl 复现调用，定位坏的是哪一半。
- stream error: unexpected status 404——模型 ID 未启用。查 GET https://router.apitoken.sale/v1/models，不要假设你敲的 ID 存在。
- 402——共享预付余额需要充值。退避重试解决不了；充值后下一个请求即可成功。

这四个都是配置或余额问题，不是模型问题——没有一个靠重复同一条命令能解决。其中 401 几乎总能归结为 /v1 后缀丢失，或密钥里多粘了一个字符。

[完整的 Codex 错误手册——config.toml、auth.json、流式错误](/errors/codex)

## 预付余额下一次 Codex 会话花多少钱

按 token 计费，费率与 OpenAI 官方一致，你的统一 50% B2C 折扣在扣预付余额之前就已减去——与平台上 Claude 用量的计费规则相同。没有订阅费也没有席位费：闲置一周不花一分钱，重度会话恰好按它消耗的 token 计费，即官方支出的一半。

余额在支持的 Claude、GPT、Gemini 与 Kimi 模型之间共享，Codex 会话和你跑的其他所有东西从同一个池子里扣。在控制台关注用量，把 402 当作它本来的信号——余额见底了，别的什么都没坏。

## GPT-6 Astra：最新 GPT 模型

GPT-6 Astra 是本模型目录中的最新 GPT 模型。每百万 token 的官方新鲜输入/缓存输入/缓存写入/输出费率为 $10/$1/$12.50/$50，B2C 五折后为 $5/$0.50/$6.25/$25。Codex 最大上下文为 872K，保守输入上限为 744K，输出上限为 128K。推理强度支持 low、medium、high、xhigh 和 max。输入超过 272K 时，输入及缓存费率翻倍，输出为 1.5 倍；Fast 将适用费率再翻倍。下方 GPT-5.6 示例保留各自费率。

[GPT-6 Astra](/models/gpt-6-astra)

## 常见问题

### Codex CLI 需要 ChatGPT 账户或订阅吗？

不需要。配置好自定义 model_providers 配置档、把提供商的 API 密钥放进环境变量后，Codex 完全以 API 密钥认证运行——auth.json 里的 ChatGPT 登录与此无关。

### 这个配置档会改动我的默认 Codex 配置吗？

不会。配置档独立存放，只有传入 --profile apitoken 时才启用。你的默认配置和已有的 ChatGPT 登录保持原样。

### GPT-5.6 的折扣和 Claude 的一样吗？

一样。GPT-5.6 用量按 OpenAI 官方 token 费率计量，你的统一 50% B2C 折扣作用于同一个预付余额。

### Codex 0.149 应该使用哪个 wire_api？

使用 wire_api = "responses"。Codex 0.149 只接受 Responses wire。网关通过 Chat Completions 为其他客户端提供服务，但 wire_api = "chat" 不是 Codex 的有效设置。

### 不改配置档能切换 GPT-5.6 模型吗？

配置档里的 model 行设定的是默认值；按项目编辑这一行就是在 gpt-5.6-sol、gpt-5.6-terra 和 gpt-5.6-luna 之间切换的受支持方式。

### 会话中途报 402 是什么意思？

共享预付余额用完了，需要充值。退避重试没有用——充值后下一个请求就会通过。

---
Get a key: https://apitoken.sale/register
More guides: https://apitoken.sale/zh/docs/learn
