Codex 打不开了,于是我让 Codex 修了自己
晚上准备打开 Codex 桌面端写点东西,窗口没起来,只留下了一段多少有点哲学意味的报错:它找不到 Codex。

ChatGPT failed to start.
Unable to locate the Codex CLI binary.
Set CODEX CLI PATH or ensure the Electron resources include bin/codex.巧的是,我手里还有一个没关掉的 Codex 会话。于是场面变成了:一个 Codex 打不开,我把报错复制给另一个 Codex,让它帮忙修自己。
先说结果:CLI 本身没坏,桌面端只是没有正确找到它。最后显式设置 CODEX_CLI_PATH,重新启动,主界面就回来了。
第一步:确认 CLI 还活着
我没有急着重装,先在 PowerShell 里确认系统能不能找到 codex:
Get-Command codex
codex --versionWindows 能找到 npm 目录下的命令,版本也正常输出:
codex-cli 0.149.1这一步很重要。它至少证明 CLI 能独立运行,问题范围可以先缩到桌面端,而不是把所有东西推倒重装。
第二步:检查桌面端要找的路径
报错里已经提示了 CLI 路径,我接着检查用户级环境变量:
[Environment]::GetEnvironmentVariable('CODEX_CLI_PATH', 'User')结果是空的。
我当时使用的桌面端版本是 OpenAI.Codex 26.820.7780.0。安装包资源里其实能看到 codex.exe,但应用启动时仍然没有解析到可用的 CLI。与此同时,npm 安装目录中的原生 Windows CLI 可以正常执行。
所以这次能确认的并不是“CLI 没装”,更不是“安装包一定坏了”,而是桌面端的 CLI 路径发现环节出了问题。
第三步:找到真正的 codex.exe
npm 放在 %APPDATA%\npm 下的 codex.cmd 是命令包装器。给桌面应用指定路径时,我直接指向包里的原生 codex.exe:
$codexCli = Join-Path $env:APPDATA 'npm\node_modules\@openai\codex\node_modules\@openai\codex-win32-x64\vendor\x86_64-pc-windows-msvc\bin\codex.exe'
Test-Path $codexCli
& $codexCli --version如果第一条返回 True,第二条也能正常显示版本,就说明这个文件可以用。
第四步:把路径明确告诉桌面端
确认无误后,把它写入用户级环境变量:
[Environment]::SetEnvironmentVariable('CODEX_CLI_PATH', $codexCli, 'User')然后彻底退出 Codex 桌面端,再重新打开。这里不是只关掉报错窗口,最好确认旧进程已经结束,让新进程重新读取环境变量。
我这边重启后,应用保持响应,主界面正常打开,故障到这里结束。如果仍然没有读到新变量,可以注销并重新登录 Windows 后再试。
如果你的结果不一样
如果 codex --version 本身就失败,应该先修复或重新安装 CLI;如果原生 codex.exe 能运行、环境变量也设置正确,桌面端仍然打不开,可以再尝试 Windows“已安装的应用”里的修复功能,最后才考虑重装桌面端。
这次排查没有什么神奇命令,关键只是先证明哪一层正常:命令找得到,版本能输出,原生程序能执行,然后再把路径明确交给桌面端。
至于“Codex 修好了 Codex”这件事,想想还是有点好笑。它并不是忘了自己是谁,只是一时没找到自己住在哪里。
参考资料: