Codex 安装教程:Windows / Mac / Linux 三端完整安装指南(TaoToken 统一 Key 接入版)

发布时间:2026/10/9 18:19:04
Codex 安装教程:Windows / Mac / Linux 三端完整安装指南(TaoToken 统一 Key 接入版)
1. 为什么三端安装完 Codex 还要单独配鉴权Codex CLI 装完只是把可执行文件放进了系统路径它并不知道你要把请求发到哪里、用哪个 Key 去换 token。默认情况下它会尝试走官方账号授权流程但很多人在这一步卡住浏览器回调打不开、OAuth 超时、或者公司网络下根本连不上授权页。这时候更稳的做法是绕开交互式登录直接把 Codex 指向一个兼容 OpenAI 协议的网关用固定 Key 完成鉴权。TaoToken 在这里扮演的就是这个网关角色。它对外暴露的是标准 OpenAI 风格的/v1接口Codex 只要把 Base URL 和 API Key 换成 TaoToken 的就能正常发请求。你不需要改 Codex 的源码也不用装额外插件改一个auth.json加两个环境变量就够了。这篇聚焦的是安装之后的首次鉴权配置三端分别怎么改文件、怎么验证。Windows 用 PowerShellMac 和 Linux 用终端命令我会写全你复制就能跑。核心目标只有一个让codex在终端里跑通一次最小对话请求返回模型输出而不是 401 或连接超时。适合谁看已经装好 Codex CLI、但卡在登录或授权环节的人想用统一 Key 管理多个 AI 编码工具的人在服务器上跑 Codex 没有图形界面、没法走浏览器授权的人。如果你还没装 Codex先按官方脚本把二进制装上再回来配鉴权。需要提前准备的东西一个 TaoToken 的 API Key在控制台创建、Codex CLI 已安装、终端能正常访问外网。Key 的创建入口在控制台的 API Keys 页面拿到后先存好后面三端都要用同一个。2. TaoToken 前置Base URL、Key 与 auth.json 的关系在动手改配置之前先把三个概念理清楚不然后面看到auth.json里的字段会懵。第一个是 Base URL。Codex 默认请求的是 OpenAI 官方域名我们要把它换成 TaoToken 的 API 地址https://taotoken.net/api。注意这个地址不带任何路径后缀Codex 会自己在后面拼/v1/responses或/v1/chat/completions。如果你手滑写成https://taotoken.net/api/v1就会变成/api/v1/v1/...直接 404。第二个是 API Key。TaoToken 的 Key 一般以sk-开头在控制台创建后只显示一次复制下来存到安全的地方。这个 Key 就是auth.json里OPENAI_API_KEY字段的值也是环境变量OPENAI_API_KEY的值。第三个是auth.json。这是 Codex 用来存鉴权信息的本地文件默认路径按系统不同系统auth.json 默认路径WindowsC:\Users\用户名\.codex\auth.jsonMac~/.codex/auth.jsonLinux~/.codex/auth.json这个文件里最关键的两个字段是OPENAI_API_KEY和可选的OPENAI_BASE_URL。有些版本的 Codex 只认环境变量不读auth.json里的 Base URL所以最保险的做法是两边都配auth.json写 Key环境变量写 Base URL 和 Key。这样无论 Codex 优先读哪个来源都能拿到正确值。注意auth.json里不要留官方登录产生的 token 字段。如果你之前走过 OAuth 登录文件里可能有tokens对象建议先备份再清掉只保留 API Key 方式避免 Codex 优先用旧 token 去请求官方域名。TaoToken 的接入文档在官网的文档页有完整说明路径和字段名以文档为准。我下面给的片段是实测能跑通的版本你对照着改就行。Key 的创建入口在控制台如果还没建先去建一个再回来。3. 三端可复制配置auth.json、环境变量与 settings 片段这一节是全文的核心三端分别给完整配置。你按自己系统选一段复制改掉 Key 就能用。3.1 Windows PowerShell 配置先建目录如果不存在New-Item -ItemType Directory -Force -Path $env:USERPROFILE\.codex然后写auth.json。用 PowerShell 直接生成避免手写 JSON 引号出错$auth { OPENAI_API_KEY sk-你的TaoTokenKey OPENAI_BASE_URL https://taotoken.net/api } | ConvertTo-Json Set-Content -Path $env:USERPROFILE\.codex\auth.json -Value $auth -Encoding UTF8生成后检查一下内容Get-Content $env:USERPROFILE\.codex\auth.json应该看到类似{ OPENAI_API_KEY: sk-你的TaoTokenKey, OPENAI_BASE_URL: https://taotoken.net/api }再设环境变量让当前会话和后续会话都能读到[Environment]::SetEnvironmentVariable(OPENAI_API_KEY, sk-你的TaoTokenKey, User) [Environment]::SetEnvironmentVariable(OPENAI_BASE_URL, https://taotoken.net/api, User)设完关掉 PowerShell 重开验证echo $env:OPENAI_API_KEY echo $env:OPENAI_BASE_URL3.2 Mac 配置Mac 用终端先建目录mkdir -p ~/.codex写auth.jsoncat ~/.codex/auth.json EOF { OPENAI_API_KEY: sk-你的TaoTokenKey, OPENAI_BASE_URL: https://taotoken.net/api } EOF如果你用 zshMac 默认把环境变量写进~/.zshrcecho export OPENAI_API_KEYsk-你的TaoTokenKey ~/.zshrc echo export OPENAI_BASE_URLhttps://taotoken.net/api ~/.zshrc source ~/.zshrc用 bash 的话把~/.zshrc换成~/.bashrc或~/.bash_profile。验证echo $OPENAI_API_KEY echo $OPENAI_BASE_URL3.3 Linux 配置Linux 和 Mac 基本一致注意服务器上可能没有~/.zshrc用~/.bashrcmkdir -p ~/.codex cat ~/.codex/auth.json EOF { OPENAI_API_KEY: sk-你的TaoTokenKey, OPENAI_BASE_URL: https://taotoken.net/api } EOF echo export OPENAI_API_KEYsk-你的TaoTokenKey ~/.bashrc echo export OPENAI_BASE_URLhttps://taotoken.net/api ~/.bashrc source ~/.bashrc如果你在 Docker 或 CI 里跑不方便改~/.bashrc可以直接在启动命令前加环境变量OPENAI_API_KEYsk-你的TaoTokenKey OPENAI_BASE_URLhttps://taotoken.net/api codex3.4 三件套对照表无论哪个系统Codex 接入 TaoToken 都靠这三个值缺一不可配置项值写在哪Base URLhttps://taotoken.net/apiauth.json 环境变量API Keysk-你的TaoTokenKeyauth.json 环境变量Model IDgpt-5-codex或控制台可用模型启动参数或配置Model ID 这块要注意Codex 默认会用一个内置模型名如果 TaoToken 那边没有同名模型会报模型不存在。你可以在启动时显式指定codex --model gpt-5-codex或者在~/.codex/config.toml里写死model gpt-5-codex具体可用模型名以 TaoToken 控制台的模型列表为准别照抄网上的旧名字。4. 验证请求curl 与 codex 最小对话跑通配置写完别急着开 Codex 交互界面先用 curl 验证 Key 和 Base URL 本身是通的。这一步能把「配置问题」和「Codex 问题」分开。4.1 curl 验证Mac / Linuxcurl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoTokenKey \ -H Content-Type: application/json \ -d { model: gpt-5-codex, messages: [{role: user, content: 只回复两个字通了}] }Windows PowerShell 的 curl 是Invoke-WebRequest的别名参数不一样建议用$headers { Authorization Bearer sk-你的TaoTokenKey Content-Type application/json } $body {model:gpt-5-codex,messages:[{role:user,content:只回复两个字通了}]} Invoke-RestMethod -Uri https://taotoken.net/api/v1/chat/completions -Method Post -Headers $headers -Body $body如果返回 JSON 里有choices数组且message.content是「通了」说明 Key 和 Base URL 都没问题。如果返回 401看第 5 节排查。4.2 codex 最小对话curl 通了之后进一个项目目录跑 Codexcd ~/your-project codex第一次启动如果它还想走登录流程说明auth.json没被读到。检查文件路径和权限ls -la ~/.codex/auth.json cat ~/.codex/auth.json确认文件存在且 JSON 合法。然后退出 Codex用显式环境变量再启动一次OPENAI_API_KEYsk-你的TaoTokenKey OPENAI_BASE_URLhttps://taotoken.net/api codex进入交互界面后输入一句最小指令只回复两个字通了如果 Codex 返回「通了」整条链路就打通了。这时候你可以试真实任务比如先不要改代码阅读当前目录结构告诉我技术栈和入口文件。4.3 成功结果长什么样正常返回时Codex 会在终端里流式输出模型回复末尾不会有报错堆栈。如果你看到类似下面的结构就是成功了 只回复两个字通了 通了如果它开始读文件、列目录说明 Codex 的 agent 能力也正常工作了。这时候 Base URL 和 Key 的配置就算彻底完成。5. 常见报错排查401、连接失败与 choices 读取错误这一节按真实报错来你遇到哪个查哪个。5.1 401 Unauthorized最常见。原因通常是 Key 不对或没被读到。排查顺序先确认auth.json里的 Key 没有多余空格或换行。用cat看的时候注意引号是否闭合。然后确认环境变量里的 Key 和文件里一致echo $OPENAI_API_KEY如果输出为空说明环境变量没生效重新source配置文件或重开终端。如果输出有值但 curl 还是 401把 Key 复制到 TaoToken 控制台对比确认没复制错字符。Key 如果被删除或过期也会 401去控制台重新建一个。5.2 local proxy failed / connection refused这个报错说明 Codex 尝试连一个本地代理端口但那个端口没服务。通常是你之前配过HTTP_PROXY或HTTPS_PROXY环境变量指向了一个已经关掉的本地代理。检查echo $HTTP_PROXY echo $HTTPS_PROXY如果有值且你不需要代理清掉unset HTTP_PROXY unset HTTPS_PROXYWindows 上检查echo $env:HTTP_PROXY echo $env:HTTPS_PROXY清掉后重开终端再跑 Codex。另外确认OPENAI_BASE_URL没有写成http://localhost:xxxx之类的本地地址。5.3 reading choices 报错这个报错一般出现在 Codex 拿到了响应但结构不对的时候。原因可能是 Base URL 写成了带/v1的地址导致请求路径重复返回的不是标准 chat completions 结构。检查echo $OPENAI_BASE_URL正确值应该是https://taotoken.net/api不带/v1。如果带了改掉再试。还有一种可能是模型名不对TaoToken 返回了错误结构Codex 解析choices时失败。用 curl 单独测一下模型名是否可用。5.4 OAuth 相关报错如果你看到OAuth、callback、authorization failed之类的字样说明 Codex 还在走官方登录流程没读你的 API Key 配置。解决办法是确保auth.json里没有残留的tokens字段。备份后清掉cp ~/.codex/auth.json ~/.codex/auth.json.bak然后重写一个只含OPENAI_API_KEY和OPENAI_BASE_URL的干净文件。再启动 Codex 时它就不会尝试 OAuth 了。5.5 排查清单速查报错最可能原因动作401Key 错/没读到查 auth.json 和环境变量local proxy failed代理环境变量残留unset HTTP_PROXYreading choicesBase URL 带 /v1改成不带 /v1OAuth failedauth.json 有旧 token清掉 tokens 字段模型不存在Model ID 不对用控制台可用模型名6. 配好之后把 Codex 接进日常编码流鉴权跑通只是第一步真正省时间的是把它用进日常流程。我自己的习惯是进项目先让 Codex 读结构再决定要不要让它动手。一个实用的开场指令先阅读当前项目输出技术栈、目录结构、启动命令和三个最可能出问题的配置项。不要改任何文件。等它分析完你再针对具体问题下指令。比如改 bug 时先让它定位这个报错出现在启动阶段先帮我定位原因列出可能涉及的文件不要直接改。确认方向后再让它动手按你刚才的分析修改改完告诉我改了哪些文件、每处改动的理由。这样比一上来就让它改代码稳得多也方便你 review。如果你要长期在多个项目里用 Codex建议把 Key 和 Base URL 配成系统级环境变量而不是每个项目单独设。这样换目录不用重新配。TaoToken 的 Coding Plan 适合这种长期编码场景Key 统一管理不用每个工具单独申请。需要创建 Key 或查看可用模型去控制台的 API Keys 页面接入细节和字段说明看接入文档想先验证模型输出效果可以直接在模型对话页面试。三端配置本身不复杂难的是第一次把 401 和连接失败排掉排完之后就是复制粘贴的事。