1. Windows 装完 Codex 后为什么必须改 auth.json
你在 Windows 上敲完npm install -g @openai/codex,终端里跳出codex能跑起来,这只是「装上了」。真正决定它能不能稳定干活的是认证通道——也就是auth.json这个文件。默认情况下 Codex 会走官方登录流程,浏览器弹窗、OAuth 回调、token 刷新,这一套在 Windows 上经常卡在回调端口或者代理环境上,尤其是公司网络里。
我试过在一台干净的 Win11 机器上装完 Codex,codex命令能识别,但一发起对话就报OAuth callback failed或者干脆卡在Waiting for authentication。原因不复杂:Codex 的认证信息最终落在用户目录下的auth.json,它记录的是 API 端点、密钥、模型标识这些字段。只要把这个文件指向一个统一的 Key/API 通道,就能绕开浏览器登录那一环,直接走标准 API 请求。
TaoToken 在这里扮演的角色就是「统一 Key/API 通道」。它对外暴露一个兼容 OpenAI 协议的 Base URL,你拿一个 Key 就能调用包括 Codex 在内的多种模型。对 Windows 用户来说,好处是:不用折腾浏览器回调,不用管 token 过期刷新,auth.json里写死 Base URL + Key + Model ID 三件套,Codex 启动即用。
这篇要解决的就是「装完之后那一步」:auth.json到底放在哪、字段怎么写、改完怎么验证、报错怎么查。适合已经装好 Node.js 和 Codex、但卡在认证环节的人。如果你还没装,先确保node -v和npm -v都能正常输出,再往下走。
核心检索词先明确:Windows 下 Codex 的auth.json配置,本质是把认证从「官方 OAuth」切换到「自定义 API 端点」。这个切换点就在那个 JSON 文件里,改对了就通,改错了就报 401 或 local proxy failed。
2. TaoToken 前置准备:拿 Key、认路径、装 Codex
在动auth.json之前,有三件事要先落地:拿到 TaoToken 的 API Key、确认 Windows 上的文件路径、确认 Codex 版本支持自定义端点。
2.1 获取 API Key 与 Base URL
打开 TaoToken 控制台,进入 API Keys 页面创建一个新 Key。创建时给它起个能认出来的名字,比如win-codex,方便以后在列表里区分。创建完立刻复制,页面刷新后就看不到完整 Key 了。
你需要记下两个值:
| 项目 | 值 | 用途 |
|---|---|---|
| Base URL | https://taotoken.net/api | 请求端点前缀 |
| API Key | sk-开头的一串 | 身份认证 |
| Model ID | 例如claude-sonnet-4-5或控制台列出的编码模型 | 指定调用哪个模型 |
Base URL 这里注意:API 调用统一用https://taotoken.net/api,不要在后面乱加/v1之类的后缀,具体路径由 Codex 自己拼接。如果你在控制台看到模型列表,把你要用的那个 Model ID 原样记下来,大小写敏感。
2.2 确认 Windows 上的 auth.json 路径
Codex 在 Windows 上读取的认证文件位置,通常在用户主目录下的.codex文件夹里。完整路径类似:
C:\Users\你的用户名\.codex\auth.json如果你不确定,可以在 PowerShell 里执行:
echo $env:USERPROFILE输出比如C:\Users\Administrator,那auth.json就在C:\Users\Administrator\.codex\auth.json。如果.codex文件夹不存在,手动建一个:
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.codex"有些版本 Codex 会把配置放在%APPDATA%\codex下。两个位置都检查一下,哪个存在就用哪个。实测下来,npm 全局安装的 Codex 更常见的是用户主目录下的.codex。
2.3 确认 Codex 安装与版本
在 PowerShell 里跑:
codex --version能输出版本号说明安装没问题。如果提示codex 不是内部或外部命令,说明 npm 全局 bin 目录没进 PATH。执行npm config get prefix看全局路径,然后把这个路径加进系统环境变量 Path 里,重开终端再试。
另外,Codex 对自定义端点的支持依赖版本,建议用较新的版本。升级命令:
npm install -g @openai/codex@latest装完再codex --version确认。这一步别跳过,老版本可能不认auth.json里的自定义字段,改了半天不生效,白折腾。
3. 可复制的 auth.json 配置模板与 Windows 路径示例
这是全文最关键的一节。auth.json的字段结构直接决定 Codex 往哪发请求、用什么身份。下面给出一份可直接复制的模板,然后逐字段解释。
3.1 完整 auth.json 模板
在C:\Users\你的用户名\.codex\auth.json里写入以下内容:
{ "OPENAI_API_KEY": "sk-你的TaoToken密钥", "OPENAI_BASE_URL": "https://taotoken.net/api", "OPENAI_MODEL": "claude-sonnet-4-5", "api_key": "sk-你的TaoToken密钥", "base_url": "https://taotoken.net/api", "model": "claude-sonnet-4-5" }注意这里我同时写了大写和小写两组字段。原因是不同版本的 Codex 读取的键名不一致:有的版本认OPENAI_API_KEY,有的认api_key。两组都写上,兼容性最好,不会因为键名不匹配导致读不到。
3.2 字段逐项说明
OPENAI_API_KEY/api_key:填 TaoToken 控制台创建的 Key,sk-开头。两个字段值必须一致。
OPENAI_BASE_URL/base_url:填https://taotoken.net/api。这是请求前缀,Codex 会在后面拼接具体路径。不要写成https://taotoken.net/api/v1,多写一段可能导致 404。
OPENAI_MODEL/model:填你要用的 Model ID。这个值决定实际调用哪个模型。如果你不确定有哪些可选,去 TaoToken 控制台的模型列表里看,原样复制。
注意:JSON 里不能有注释,不能有尾随逗号。写完用编辑器格式化一下,确认语法正确。一个多余的逗号就会让 Codex 解析失败,报
reading choices之类的错。
3.3 Windows 路径与写入方式
用 PowerShell 写入最稳妥,避免记事本保存成 UTF-8 with BOM 导致解析异常:
$authPath = "$env:USERPROFILE\.codex\auth.json" $content = @' { "OPENAI_API_KEY": "sk-你的TaoToken密钥", "OPENAI_BASE_URL": "https://taotoken.net/api", "OPENAI_MODEL": "claude-sonnet-4-5", "api_key": "sk-你的TaoToken密钥", "base_url": "https://taotoken.net/api", "model": "claude-sonnet-4-5" } '@ Set-Content -Path $authPath -Value $content -Encoding UTF8执行完用Get-Content $authPath检查内容是否正确写入。如果你习惯用 VS Code,也可以直接打开文件编辑,但保存时确认编码是 UTF-8 无 BOM。
3.4 环境变量方式的补充
除了auth.json,Codex 也会读环境变量。如果你想让配置更灵活,可以在 PowerShell 里临时设置:
$env:OPENAI_API_KEY = "sk-你的TaoToken密钥" $env:OPENAI_BASE_URL = "https://taotoken.net/api"但环境变量只在当前会话有效,重开终端就没了。要持久化得写进系统环境变量,操作比改auth.json麻烦。所以推荐以auth.json为主,环境变量作为临时覆盖手段。
提示:如果你同时用了 CC Switch 这类配置切换工具,注意它可能也会写
auth.json。切换工具和手动配置别同时改同一个文件,否则互相覆盖。要么统一用工具管,要么统一手动改。
4. 验证请求:从启动到拿到模型回复
配置写完不算完,得验证 Codex 真的能通过 TaoToken 拿到回复。这一节给完整的验证流程和成功标志。
4.1 启动 Codex 并观察加载
在 PowerShell 里进入你的项目目录,然后启动:
cd your-project-folder codex启动后 Codex 会读取auth.json。如果配置正确,它不会弹浏览器登录,而是直接进入交互界面。你会看到类似Using custom API endpoint或者直接出现输入提示符。如果它还在尝试 OAuth,说明auth.json没被读到,回到第 3 节检查路径和字段名。
4.2 发一条测试请求
在 Codex 交互界面里输入一个简单问题,比如:
用一句话解释什么是递归如果通道打通,几秒内会返回模型生成的回答。这就是成功标志:请求从 Codex 发出,经https://taotoken.net/api转发,拿到模型响应,再显示在终端里。
4.3 用 curl 单独验证通道
如果 Codex 界面里没反应,可以先用 curl 单独测通道,排除是 Codex 配置问题还是通道本身问题:
curl -X POST "https://taotoken.net/api/v1/chat/completions" ` -H "Authorization: Bearer sk-你的TaoToken密钥" ` -H "Content-Type: application/json" ` -d '{\"model\":\"claude-sonnet-4-5\",\"messages\":[{\"role\":\"user\",\"content\":\"hi\"}]}'如果这条命令返回 JSON 格式的回复,说明 Key 和 Base URL 都没问题,问题出在 Codex 的auth.json读取上。如果这条也报错,那就是 Key 或网络的问题,对照第 5 节排查。
4.4 成功结果的判断标准
一次成功的验证包含三个信号:Codex 启动不弹浏览器、输入问题后有模型回复、curl 测试返回正常 JSON。三个都满足,说明从安装到可用已经打通。如果只满足前两个但 curl 失败,可能是 Codex 用了缓存配置,重启终端再试。
注意:验证时别用太复杂的问题,简单一句「hi」或「1+1 等于几」就够。复杂问题可能触发长上下文,反而掩盖配置问题。
5. 常见报错对照表与排查路径
配置过程中最容易撞上几类报错。这一节按真实报错信息对照排查,每条都给原因和动作。
5.1 报错对照表
| 报错信息 | 可能原因 | 排查动作 |
|---|---|---|
401 Unauthorized | Key 错误或没读到 | 检查auth.json里 Key 是否sk-开头、有无多余空格 |
local proxy failed | Base URL 写错或网络不通 | 确认 Base URL 是https://taotoken.net/api,用 curl 测通道 |
reading choices | 响应格式异常或 JSON 解析失败 | 检查auth.json语法,确认 Model ID 正确 |
OAuth callback failed | 仍在走官方登录 | auth.json没被读取,检查路径和字段名 |
model not found | Model ID 拼写错误 | 去控制台复制准确的 Model ID |
ECONNREFUSED | 网络层被拦截 | 检查系统代理设置,确认能访问 TaoToken |
5.2 401 的排查细节
401 最常见。先确认auth.json里的 Key 没有前后空格,JSON 字符串里不能有换行。然后确认你复制的是完整 Key,没有漏掉中间字符。如果 Key 刚创建,等几秒再试,有时候控制台同步有延迟。
5.3 local proxy failed 的排查细节
这个报错通常意味着 Codex 尝试连接 Base URL 但失败了。先在 PowerShell 里curl https://taotoken.net/api看能不能通。如果不通,检查系统代理设置是否干扰。如果通,那可能是 Codex 读到的 Base URL 不对,回到auth.json确认字段值。
5.4 reading choices 的排查细节
这个报错说明 Codex 收到了响应但解析不了。多半是auth.json的 JSON 语法有问题,比如多了逗号、少了引号。用 VS Code 打开文件,它会标红语法错误。修完保存,重启 Codex。
5.5 OAuth callback failed 的排查细节
出现这个说明 Codex 根本没读你的auth.json,还在走默认登录。检查文件路径是不是C:\Users\你的用户名\.codex\auth.json,注意.codex前面有个点。如果路径对但还报这个,试试把auth.json复制一份到%APPDATA%\codex\下。
提示:排查时养成看完整报错的习惯。终端里报错往往有好几行,关键信息在最后一行或倒数第二行。只截取第一行容易误判。
6. 打通之后:把 Codex 接进日常编码流
配置验证通过后,Codex 就能在 Windows 上稳定用了。这一节说几个实际使用中的注意点,帮你少走弯路。
6.1 项目目录里直接用
Codex 是命令行工具,进到项目目录再启动,它能读取当前目录的文件上下文。比如:
cd D:\projects\my-app codex然后你就可以让它读代码、改 bug、写测试。它会把当前目录作为工作区,理解文件结构。
6.2 长期编码任务用 Coding Plan
如果你打算把 Codex 当成日常编码助手,频繁调用,建议了解一下 TaoToken 的 Coding Plan。它针对长期编码和 Agent 场景做了额度优化,比按次调用更划算。具体在控制台里能看到方案说明。
6.3 配置备份与迁移
auth.json配好之后,建议备份一份。换机器或者重装系统时,直接把文件复制到新机器的对应路径,Codex 就能接着用。注意备份时 Key 是明文,别传到公开仓库里。
6.4 模型切换
想换模型,改auth.json里的model和OPENAI_MODEL字段,重启 Codex 即可。不用重新装任何东西。如果你经常切换,可以准备几个不同的auth.json备份,用的时候替换。
6.5 保持 Key 安全
Key 泄露等于别人能用你的额度。不要在截图、录屏、公开代码里暴露完整 Key。如果怀疑泄露,去控制台吊销旧 Key,创建新的,更新auth.json。
到这里,从 Windows 安装 Codex 到auth.json指向 TaoToken,再到验证和排错,整条链路就完整了。核心就三件事:路径对、字段全、Key 准。把这三件做对,Codex 在 Windows 上就能稳定跑起来。