
1. 为什么 Windows 上装 Codex 总卡在配置这一步Codex 是 OpenAI 推出的自主编程代理能在本地沙箱里读代码、改文件、跑命令最后给你一份可审核的改动。它和普通补全插件最大的区别是「会自己动手」你描述任务它规划步骤、执行、再汇报。适合谁适合已经在 Windows 上写代码、想让 AI 接手重复性重构和脚本编写的开发者。但我在 Windows 上折腾 Codex 时真正卡住的从来不是安装本身而是配置。桌面版、CLI 版、IDE 插件版三条路每条的 Key 填法都不一样config.toml放哪、环境变量怎么设、PowerShell 和 CMD 读到的值为什么不同这些细节官方文档一笔带过实际却最容易翻车。更麻烦的是如果你手上有多个模型供应商的 Key每换一个工具就要重新配一遍时间全耗在复制粘贴上。这篇就按「安装 → 配置 → 验证 → 排障 → 卸载」的完整闭环来写重点放在可复制的config.toml骨架和环境变量配置上。同时我会演示怎么用 TaoToken 的统一 Key 和 API 通道接入让 Codex CLI 和 IDE 插件共用一套凭证省掉反复改配置的麻烦。下面所有命令都在 Windows 11 PowerShell 7 上实测过你可以直接抄。2. TaoToken 前置统一 Key 与 API 通道准备TaoToken 在这里扮演的角色是「统一入口」你只需要一个 Key就能通过它的 API 通道访问多种模型Codex CLI、IDE 插件、甚至自己写的脚本都能复用同一套凭证。对 Windows 用户来说好处是不用为每个工具单独维护一份 Key卸载或换工具时也只需清理一处。第一步打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册并登录。登录后进入控制台 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 在「API Keys」页面创建一个新 Key。建议按用途命名比如codex-win-cli方便以后区分。创建完成后复制这串 Key它通常以固定前缀开头。注意Key 只在创建时完整显示一次关掉页面就看不到了所以先粘到临时记事本里。接着确认你的账户有可用额度免费额度一般够跑通验证流程。如果你打算长期用 Codex 做编码或 Agent 任务可以顺手看一下 Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 它针对高频编码场景做了额度优化比按量计费更划算。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 遇到参数疑问可以对照查。注意API 基础地址是 https://taotoken.net/api 配置时不要带任何查询参数否则部分客户端会报 404。3. 可复制配置Codex CLI 安装与 config.toml 骨架3.1 安装 Node.js 与 Codex CLICodex CLI 依赖 Node.js 22 及以上。用 winget 装最省事winget install --id OpenJS.NodeJS.LTS -e装完重开一个 PowerShell 窗口验证版本node -v npm -v确认 node 输出 v22 以上后安装 Codex CLInpm install -g openai/codex codex --version如果 npm 拉包慢可以临时换镜像源再装装完建议换回官方源避免后续其他包版本错乱。3.2 环境变量配置Codex CLI 读取 Key 的方式有两种环境变量和配置文件。先用环境变量做快速验证。在 PowerShell 里设置当前会话的变量$env:OPENAI_API_KEY你的TaoToken Key $env:OPENAI_BASE_URLhttps://taotoken.net/api注意OPENAI_BASE_URL不要带结尾斜杠。这两行只在当前窗口有效关掉就没了。要永久生效用setxsetx OPENAI_API_KEY 你的TaoToken Key setx OPENAI_BASE_URL https://taotoken.net/apisetx写入的是用户级环境变量但不会影响已经打开的窗口。执行完必须关掉所有 PowerShell 重新开一个再用echo $env:OPENAI_API_KEY确认能读到值。3.3 config.toml 骨架环境变量适合临时测试长期使用建议写配置文件。Codex CLI 的配置目录在C:\Users\你的用户名\.codex\如果目录不存在就手动建一个。新建config.toml填入以下骨架# Codex CLI 主配置 model gpt-5.5-codex model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key OPENAI_API_KEY [sandbox] mode workspace-write这里的关键是model_providers段base_url指向 TaoToken 的 API 地址env_key告诉 Codex 从哪个环境变量读 Key。这样 Key 本身不落在配置文件里更安全也方便你换 Key 时只改环境变量。sandbox.mode建议先用workspace-write允许 Codex 在当前项目目录内读写文件但不会碰系统其他位置。等你熟悉它的行为后再按需调整。3.4 IDE 插件配置VS Code 里搜索官方 Codex 扩展安装后在设置里找到 Codex 的 API 配置项把 Base URL 填成https://taotoken.net/apiAPI Key 填你的 TaoToken Key。JetBrains 系列在Settings → Tools → AI Assistant → Codex里做同样的事。这样 CLI 和 IDE 共用同一个 Key换工具不用重新申请。4. 验证请求确认接入成功配置写完先做一次最小验证。在 PowerShell 里启动交互式会话codex如果配置正确会进入 Codex 的交互提示符。输入一个简单任务测试codex run 用 Python 写一个读取当前目录文件列表并打印的脚本观察输出正常情况它会规划步骤、生成代码、询问是否执行。如果卡在「connecting」或直接报 401说明 Key 或 Base URL 有问题跳到第 5 节排查。再验证一次模型列表确认通道可达curl.exe https://taotoken.net/api/models -H Authorization: Bearer $env:OPENAI_API_KEY返回 JSON 里能看到可用模型 ID就说明 Key 和通道都通了。这一步用curl.exe而不是curl因为 PowerShell 里curl是Invoke-WebRequest的别名参数不兼容。如果你想先在网页上确认模型对话是否正常可以打开模型对话页面 https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 发一条消息能正常回复就说明账户和 Key 没问题问题就缩小到本地配置了。5. 本篇常见错排查5.1 401 Unauthorized最常见的原因是环境变量没生效。setx之后必须重开窗口旧窗口读不到新值。另一个原因是 Key 复制时带了空格或换行用echo $env:OPENAI_API_KEY检查前后不该有空白。如果 Key 本身失效去控制台重新生成一个。5.2 404 Not Found几乎都是 Base URL 写错。正确值是https://taotoken.net/api不要加/v1不要加结尾斜杠不要带查询参数。config.toml里的base_url和环境变量OPENAI_BASE_URL要一致否则以配置文件为准容易混淆。5.3 config.toml 解析失败TOML 对格式敏感。检查[model_providers.taotoken]这种段名有没有拼错字符串有没有用双引号包好。如果 Codex 启动时报「failed to parse config」把文件内容贴到在线 TOML 校验器里过一遍通常能立刻定位。5.4 npm 全局安装权限错误Windows 上npm install -g报 EPERM多半是权限或路径问题。以管理员身份开 PowerShell 重试仍失败就改 npm 全局目录mkdir $env:USERPROFILE\.npm-global npm config set prefix $env:USERPROFILE\.npm-global然后把$env:USERPROFILE\.npm-global\bin加进 PATH重开终端再装。5.5 卸载后配置残留卸载 CLI 用npm uninstall -g openai/codex但配置目录不会自动删。手动清理Remove-Item -Recurse -Force $env:USERPROFILE\.codex环境变量也要清[System.Environment]::SetEnvironmentVariable(OPENAI_API_KEY, $null, User) [System.Environment]::SetEnvironmentVariable(OPENAI_BASE_URL, $null, User)桌面版卸载在「设置 → 应用 → 已安装的应用」里操作之后同样检查.codex目录是否残留。IDE 插件在扩展面板里卸载即可但记得把设置里的 Base URL 和 Key 一并清掉避免下次装回来时读到旧值。6. 接入文档与 Key 管理入口整套流程跑下来你会发现真正需要记住的只有两件事Key 从哪来Base URL 填什么。Key 在控制台的 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 管理可以随时新建、禁用或删除。Base URL 固定是https://taotoken.net/api所有兼容 OpenAI 协议的工具都填这个。遇到配置细节拿不准直接翻接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有各客户端的参数对照。如果你主要用 Claude Code 这类工具Anthropic 兼容接入的说明在 https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 配置思路和本文一致只是字段名不同。最后提醒一句卸载 Codex 时config.toml里的base_url和env_key不会自动消失下次重装如果忘了改可能连到旧配置上。养成卸载后顺手清.codex目录的习惯能省掉很多「明明重装了却还是报错」的困惑。