Home
avatar

YEYUbaka

Codex 打不开了,于是我让 Codex 修了自己

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

Codex 桌面端启动失败,提示找不到 Codex CLI

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 --version

Windows 能找到 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”这件事,想想还是有点好笑。它并不是忘了自己是谁,只是一时没找到自己住在哪里。


参考资料:

Codex Windows AI 故障排查 CLI