Codex CLI 返回 401 时,按 auth.json、config.toml、额度和模型权限的顺序排查。
codex unexpected status 401 unauthorized 表示 Codex CLI 当前请求没有通过认证。按顺序检查:`~/.codex/auth.json` 是否为合法 JSON 且 OPENAI_API_KEY 是完整的 CoderPlan `sk-` 密钥;`~/.codex/config.toml` 语法是否正确、base_url 是否以 `/v1` 结尾;是否残留旧的 OPENAI_BASE_URL 环境变量;账户 API 使用额度与模型权限是否可用。
Codex CLI 的密钥从 `~/.codex/auth.json` 读取(config.toml 里 `requires_openai_auth = true` 时生效)。文件必须是合法 JSON,OPENAI_API_KEY 为完整的 CoderPlan `sk-` 密钥——少复制字符、多空格或旧密钥都会 401。
{ "OPENAI_API_KEY": "sk-your-api-key"}TOML 语法错误会让整段配置静默失效,Codex 退回默认行为。确认 base_url 以 `/v1` 结尾且不带尾部斜杠,供应商表里保留 `wire_api = "responses"` 和 `requires_openai_auth = true`。
base_url = "https://api.coderplan.ai/v1"wire_api = "responses"requires_openai_auth = true新版 Codex 以 config.toml 为准,但如果之前按旧教程 export 过 OPENAI_BASE_URL / OPENAI_API_KEY,建议从 `~/.zshrc`、`~/.bashrc` 和项目 `.env` 里删掉,排除干扰后重开终端再试。
如果认证字段正确,再检查 CoderPlan API 使用额度、API Key 状态和目标模型是否可用。
API Key 是最常见原因,但 auth.json 不是合法 JSON、config.toml 语法错误、API 使用额度不可用、模型权限不匹配,也可能表现为 401。
新版 Codex CLI 不再从环境变量读取供应商和密钥,export 对它无效。密钥要写入 `~/.codex/auth.json`,路由要写入 `~/.codex/config.toml`;改完后重开终端再试。