在 Windows 上运行 Codex 时遇到闪退、命令找不到、402 付费提示等报错,说实话,十有八九并非软件本身有问题,而是系统环境里某个小细节没对上——比如 Node.js 明明安装了但 PATH 环境没识别、中文用户名让 SQLite 初始化挂掉、VC++ 运行库缺失导致 DLL 加载中断,或者 config.toml 里的模型名写错格式、auth.json 是个空文件。把这些坑踩一遍,基本就能把“Codex 为什么不工作”的疑问全部排查清楚。

Windows 10 或 11 用户折腾 Codex 时,最常见的一串报错(闪退、command not found、402 Payment Required、Token exchange failed 等),归根结底就是环境、路径、运行库或配置文件没有对齐。与其怀疑人生,不如按照下面几步逐一排查。
确认 Node.js 和 npm 是否真正就位
打开 PowerShell(记得以管理员身份运行),先敲这个:
node -v —— 如果没有任何输出或直接报错,说明 Node.js 要么没装,要么装了但 PATH 没生效。要是输出了类似 v22.2.0 这样的版本号,就继续下一步。
npm -v —— 必须能看到 npm 10+ 的版本号;如果提示“不是内部命令”,那就是 npm 的全局路径没加进系统环境变量。
这时候别急着重装,先关闭所有终端窗口,重新打开 PowerShell 再试一次——【90% 的用户卡在这一步,只是因为终端还跑着旧会话】。
如果还是不行,执行 npm config get prefix,把返回的路径(比如 C:\Users\用户名\AppData\Roaming\npm)手动添加到系统环境变量 Path 里。然后彻底关掉所有终端,再重新打开验证。
解决中文用户名导致的静默失败
Windows 用户名带中文时,Codex 会在创建 C:\Users\中文用户名\.codex 目录的过程中因路径编码异常直接报 EPERM,或者干脆静默退出——这是已知的兼容性问题,绕不过去。
方法一:启用 WSL2(目前最推荐)
在管理员 PowerShell 里执行 wsl --install,系统会自动装好 WSL2 内核和 Ubuntu。重启后启动 Ubuntu,先跑 sudo apt update && sudo apt install nodejs npm,再执行 npm install -g @openai/codex。
所有操作都在 Linux 的 UTF-8 环境下完成,Windows 路径编码问题就彻底绕开了。
方法二:新建纯英文本地账户
从“设置→账户→家庭和其他用户→将其他人添加到这台电脑→我没有这个人的登录信息→添加没有 Microsoft 账户的用户”进入,输入全英文用户名(比如 codexuser),设为本地账户。然后注销当前用户,登录新账户后重新走完整安装流程。
【注意】原账户的 .auth.json 和 config.toml 不会自动迁移,必须在新账户中重新配置。
修复 code=3221225781 闪退错误
这个错误码(0xC0000135)的本质是 Windows 告诉你“找不到指定模块”——Codex 内置的 Rust/Node 原生组件因为缺少微软 C++ 运行时,加载 DLL 失败。
第一步:下载并安装 vc_redist.x64.exe,双击运行→点“安装”→等待完成。
第二步:安装后【必须重启电脑】,否则系统缓存里还是旧加载路径,Codex 依然会静默退出。
第三步:重启后双击 Codex 桌面图标看看能否正常弹窗;如果还是无声无息,接着往下走。
排查 402 Payment Required 错误
这个 402 不是让你真的去付费,而是本地 Codex 把请求错误地路由到了云端认证服务。根子在 config.toml 里的 model 字段配错了,或者 auth.json 是空的。
① 打开 %USERPROFILE%\.codex\config.toml,检查 model 字段是否写成了合法的模型名(比如 gpt-5.4)。要是写成 gpt5.4、GPT-5.4(大小写混用)或者末尾多了一个空格,都会触发 402。
② 检查 %USERPROFILE%\.codex\auth.json 是否存在,并且不是空文件——用记事本打开,确认内容格式是 {"key":"sk-..."},没有多余字符、换行或 BOM 头。
③ 如果你用的是 VS Code 插件,还得关闭设置里“Run Codex In Windows Subsystem For Linux”这个选项。否则 agent 模式会强制走 WSL 通道,导致 token endpoint 返回 403(而不是 402)。
终结中文乱码与终端编码冲突
Codex 生成的代码文件在 Windows 终端下显示乱码,根本原因是 PowerShell 5 默认用 UTF-16 写文件,而 VS Code 按 UTF-8 读取,两边链路上出了岔子。
唯一靠谱的解法:卸载 PowerShell 5,安装 PowerShell 7。
用 winget install --id Microsoft.Powershell 安装完成后,每次启动 Codex 前先运行 pwsh,再执行 Codex 相关命令。验证一下 $PSVersionTable 中 PSEdition 是否为 Core。这时候终端默认用 UTF-8 无 BOM 写入,Codex 生成的文件能被 IDE 正常解析。
千万别去改注册表或者折腾 cmd.exe 的代码页——PowerShell 7 才是微软官方推荐的现代终端替代方案,省心得多。
