
1. Windows 上跑 codex cli卡住我的三个地方codex cli 是 OpenAI 出的命令行 AI 编码工具能在终端里直接读代码、改文件、跑命令适合习惯键盘流、不想在编辑器和网页之间来回切的人。它本身是个 npm 包理论上npm install -g就完事但我在 Windows 上第一次装的时候前后折腾了快一个小时才跑通。问题不在 codex 本身而在 Windows 这套环境Node.js 装完终端没刷新导致node命令找不到PowerShell 默认执行策略拦住了 npm 生成的.ps1脚本配置目录~/.codex在 Windows 下到底落在哪也容易搞混。这三个坑任何一个没处理你看到的都是「命令不存在」或者「无法加载文件因为在此系统上禁止运行脚本」这类让人一头雾水的报错。这篇就按我实际跑通的顺序从 Node.js 环境准备、PowerShell 策略处理、codex cli 安装验证一路写到接入 TaoToken 统一 Key 的config.toml骨架和连通性验证。目标很明确让你在 Windows 上一次性把命令行 AI 编码工具跑起来不用反复试错。下面所有命令都可以直接复制到 PowerShell 里执行。2. 装 codex cli 之前先把 Node.js 和 npm 理顺codex cli 依赖 Node.js 运行时所以第一步是装 LTS 版本。Win10 和 Win11 都自带 winget直接用它装最省事不用去官网下安装包再点下一步。winget install -e --id OpenJS.NodeJS.LTS装完之后有个关键动作关掉当前终端重新开一个 PowerShell 窗口。因为 winget 安装会往系统 PATH 里写 Node 的路径但已经打开的终端读的是旧环境变量不重启的话node命令照样找不到。这一步我踩过当时以为装失败了其实只是没刷新。重开终端后验证node -v npm -v正常会输出类似v20.x.x和10.x.x的版本号。如果还是提示「无法将 node 识别为 cmdlet」先确认是不是真的重开了终端再检查 PATH$env:Path -split ; | Select-String -Pattern nodejs应该能看到C:\Program Files\nodejs\这一条。没有的话手动加一下或者干脆重装一遍再重启终端。npm 默认源在国内拉包会比较慢换成国内镜像能明显提速npm config set registry https://registry.npmmirror.com npm config get registry第二条命令应该回显你刚设置的地址确认生效。这一步不是必须的但装 codex 这种带依赖的全局包时换源能省不少等待时间。2.1 PowerShell 执行策略npm 全局命令报错的根源Node.js 装好后很多人会在运行 npm 全局命令时撞上这个报错无法加载文件 C:\Users\xxx\AppData\Roaming\npm\codex.ps1因为在此系统上禁止运行脚本。原因是 PowerShell 默认执行策略是Restricted不允许运行任何.ps1脚本而 npm 安装全局包时会生成一个codex.ps1包装脚本。解决办法是给当前用户放开策略Set-ExecutionPolicy RemoteSigned -Scope CurrentUserRemoteSigned的意思是本地脚本可以跑从网上下载的脚本需要签名。-Scope CurrentUser限定只影响当前用户不需要管理员权限也不会动系统级设置。执行后会提示确认输入Y回车即可。验证一下当前策略Get-ExecutionPolicy -Scope CurrentUser回显RemoteSigned就对了。这一步做完后面 npm 全局命令的.ps1包装脚本才能正常调用。3. 安装 codex cli 并接入 TaoToken 统一 Key环境理顺后安装 codex cli 就一行命令npm install -g openai/codex装完验证codex --version能打印出版本号说明可执行文件已经进了 PATH。如果提示找不到命令检查 npm 全局目录是否在 PATH 里npm config get prefix这个路径通常是C:\Users\你的用户名\AppData\Roaming\npm需要出现在系统 PATH 中。winget 装的 Node 一般会自动配好没配的话手动加进去再重开终端。接下来是配置环节。codex cli 读取的配置目录在 Windows 下是C:\Users\你的用户名\.codex也就是$env:USERPROFILE\.codex。先创建目录mkdir $env:USERPROFILE\.codex -Force然后在这个目录里放两个文件config.toml定义模型和 API 通道auth.json放密钥。接入 TaoToken 统一 Key 时config.toml的骨架长这样model gpt-5.3-codex model_provider taotoken [model_providers.taotoken] name taotoken base_url https://taotoken.net/api wire_api responses requires_openai_auth true这里base_url指向 TaoToken 的 API 通道wire_api用responses协议requires_openai_auth打开表示走 OpenAI 兼容的鉴权方式。模型名按你实际要用的填上面只是个示例。auth.json里放你的统一 Key{ OPENAI_API_KEY: 你的TaoToken密钥 }密钥在 TaoToken 控制台的 API Keys 页面创建地址是 https://taotoken.net/console/api-keys 。创建后复制出来填进上面的 JSON注意别把引号和逗号弄错JSON 格式对符号很敏感。用 PowerShell 写这两个文件时编码建议用 ASCII 或 UTF8避免 BOM 导致解析异常 model gpt-5.3-codex model_provider taotoken [model_providers.taotoken] name taotoken base_url https://taotoken.net/api wire_api responses requires_openai_auth true | Out-File -FilePath $env:USERPROFILE\.codex\config.toml -Encoding ASCIIauth.json同理 { OPENAI_API_KEY: 你的TaoToken密钥 } | Out-File -FilePath $env:USERPROFILE\.codex\auth.json -Encoding ASCII写完后可以进目录确认文件内容cd $env:USERPROFILE\.codex Get-Content config.toml Get-Content auth.json3.1 配置项对照与常见取值配置项作用常见取值model指定默认模型按需填如 gpt-5.3-codexmodel_provider选择 provider 段自定义名如 taotokenbase_urlAPI 通道地址https://taotoken.net/apiwire_api请求协议responsesrequires_openai_auth是否走 OpenAI 鉴权truebase_url不要带多余斜杠wire_api和requires_openai_auth要和通道支持的协议匹配填错会直接导致请求 404 或 401。4. 验证请求确认 codex cli 真的连上了配置写完最直接的验证方式是启动 codex 并让它做一次简单交互。在任意项目目录下打开 PowerShell输入codex如果配置正确会进入交互界面。随便问一句让它读当前目录的文件比如「列出这个目录下的文件并说明项目结构」。能正常返回内容说明 Key 和通道都通了。想更轻量地验证可以直接用 curl 打一次 API确认 TaoToken 通道可达curl.exe https://taotoken.net/api/models -H Authorization: Bearer 你的TaoToken密钥返回模型列表 JSON 就说明 Key 有效、通道正常。这一步能把「配置问题」和「网络问题」分开定位如果 curl 通但 codex 不通问题在 codex 配置如果 curl 也不通先查 Key 和网络。实测下来codex 首次启动会读config.toml和auth.json如果哪个字段拼错它会在启动时报错并指出具体文件。看到报错别慌按提示回去改对应文件即可。5. 本篇常见报错排查报错一codex : 无法将「codex」项识别为 cmdlet说明 npm 全局目录不在 PATH。用npm config get prefix拿到路径手动加进系统环境变量重开终端。报错二无法加载文件 codex.ps1因为在此系统上禁止运行脚本执行策略没放开。运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser确认后重试。报错三401 Unauthorized或invalid api keyauth.json里的 Key 不对或者 JSON 格式有误。检查引号、逗号确认 Key 是从 TaoToken 控制台复制的最新值。报错四404 Not Found或model not foundbase_url或model填错。确认base_url是https://taotoken.net/api模型名和通道支持的名称一致。报错五node命令找不到但明明装了终端没刷新。关掉所有 PowerShell 窗口重开让新 PATH 生效。报错六配置文件改了但 codex 没反应确认改的是$env:USERPROFILE\.codex下的文件不是别处的副本。用Get-Content打印确认内容已更新。6. 跑通之后把统一 Key 用在长期编码上一次跑通只是起点。如果你打算把 codex cli 当成日常编码工具长期在终端里做重构、写测试、跑 Agent 任务那 Key 的用量和通道稳定性就变得重要。TaoToken 的统一 Key 可以同时给多个命令行工具用省去每个工具单独配一套鉴权的麻烦。需要长期编码或跑 Agent 场景的可以看下 Coding Plan地址是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 按用量规划比零散充值更划算。只是想先验证模型对话效果的直接去模型对话页 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 试几句。接入过程中遇到鉴权或通道问题的接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite API Keys 管理在 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 。最后留个我自己的习惯把config.toml和auth.json备份一份到别处换机器或者重装系统时直接拷回去能省掉重新配一遍的时间。密钥别提交到 Git 仓库auth.json记得加进.gitignore。