Codex App Windows 桌面版终于来了,我装完就踩坑了(附保姆级完整解决方法并跑通)
早上打开 X,看到 OpenAI 的消息:Codex App Windows 桌面版发布了。

等这个消息等了很久。之前 Codex 一直是 CLI 或者 Mac 先行,Windows 用户只能干看着。这次终于轮到我了,到公司第一件事,立马下载安装,满心期待。
下载地址:
https://chatgpt.com/zh-Hans-CN/codex/get-started/

点击download for windows后

进入这个界面,继续点download,然后你会下载到一个文件:

然后点击这个exe进行安装。

然后就报错了。
启动直接报错:EPERM
安装完打开,直接弹出一个 JavaScript 错误:
A JavaScript error occurred in the main processEPERM: operation not permitted, mkdirC:\Users\xxx\.codex\sqlite
Codex App 在尝试创建 .codex\sqlite 目录时,操作被拒绝了。
我一看就明白了问题在哪——我电脑上之前已经装过 Codex CLI,用户目录里早就有一个 .codex 文件夹了。CLI 和 Desktop 都想用这个目录,但目录已经被 CLI 占着,权限不对,Desktop 进不去。
第一步:把 CLI 的目录改个名
解决思路很简单,把两者的数据目录分开。
把原来 CLI 用的目录改名:
C:\Users\你的用户名\.codex↓C:\Users\你的用户名\.codex_cli
这样 .codex 就空出来给 Desktop 用,.codex_cli 继续给 CLI 用,互不干扰。
改完之后重新启动 Codex App——还是报同样的错。

第二步:清理环境变量
改名没解决,说明还有别的地方在捣乱。
我去查了 CODEX_HOME 环境变量,发现有残留。PowerShell 执行:
[Environment]::SetEnvironmentVariable("CODEX_HOME",$null,"User")
删除 User 级变量成功。
接着尝试删除 Machine 级(系统级)变量,结果报错:
不允许所请求的注册表访问权SecurityException
没有管理员权限改不了系统级环境变量,这条路走到一半。
第三步:管理员权限启动
前两步做完之后,我关掉所有相关的后台程序,然后用管理员权限重新运行 Codex App。
这次成功进入首页:
开始构建 / Add project
初始化成功,终于跑起来了。

踩坑总结(第一关:启动)
如果你也在 Windows 上装过 Codex CLI,想再装 Codex Desktop,建议按这个顺序来:
-
把 CLI 的 .codex目录改名为.codex_cli,保留.codex给 Desktop 用 -
清理 CODEX_HOME环境变量(PowerShell 执行[Environment]::SetEnvironmentVariable("CODEX_HOME",$null,"User")) -
关闭所有相关后台程序 -
用管理员权限启动 Codex Desktop
现在的目录结构:
C:\Users\你的用户名 ├─ .codex_cli (Codex CLI 专用) └─ .codex (Codex Desktop 专用)
启动进去了,以为结束了。没想到,第二关接着来。
进去之后又报错了:SQLite 写入失败
启动成功,进入首页,发送第一条消息,红色弹条出现:

创建任务时出错SqliteError: attempt to write a readonly database
Admin 和沙盒权限的开关也打不开,状态不持久。发送失败之后输入框内容还留着,清不掉。
这一套症状加在一起,根因只有一个:Codex 本地的 SQLite 数据库写入失败。
不是代码问题,不是网络问题,是权限问题——Codex 在读写本地状态数据库的时候,目录没有写入权限。Windows 用户名含中文、商店版应用的沙盒路径,都会加重这个问题。
第二关解法:修目录权限
第一步:修复 .codex 目录权限
管理员 PowerShell 执行:
$acct = "$env:USERDOMAIN\$env:USERNAME"attrib -R "$env:USERPROFILE\.codex" /S /Dicacls "$env:USERPROFILE\.codex" /grant:r "$acct:(OI)(CI)F" /T /C
同时处理商店版应用的 LocalState 目录:
$pkg = Get-ChildItem "$env:LOCALAPPDATA\Packages" -Directory | Where-Object Name -like "OpenAI.Codex*" | Select-Object -First 1if ($pkg) { attrib -R "$($pkg.FullName)\LocalState" /S /D icacls "$($pkg.FullName)\LocalState" /grant:r "$acct:(OI)(CI)F" /T /C}
注意:命令里必须用英文引号 ",用中文引号 "" 会报”无效参数”。
第二步:把 CODEX_HOME 迁移到英文路径(推荐)
用户名含中文的电脑,建议把数据目录迁到纯英文路径:
mkdir D:\codex-homerobocopy "$env:USERPROFILE\.codex" "D:\codex-home" /E /COPY:DAT /R:1 /W:1setx CODEX_HOME "D:\codex-home"
设置完重启 Codex,旧目录先留着,稳定几天再删。
如果还不行:重置 Codex 本地状态
$pkg = Get-ChildItem "$env:LOCALAPPDATA\Packages" -Directory | Where-Object Name -like "OpenAI.Codex*" | Select-Object -First 1if ($pkg) { Rename-Item "$($pkg.FullName)\LocalState" "LocalState.bak.$(Get-Date -Format yyyyMMddHHmmss)"}
这步会清掉客户端本地 UI 状态,线程记录会丢,但能彻底解决权限问题。
修复成功的判断标准
做完上面的步骤之后,看这几件事是不是正常了:
-
不再弹 readonly database报错 -
创建任务不再报错 -
Admin / 沙盒开关可以正常打开并持久化 -
发送成功后输入框正常清空 -
重启 Codex 后线程和状态恢复正常
全部正常,就算过关了。

一句话总结
Windows 下 Codex 的大多数”创建任务失败 / 权限开关失效 / 弹错”问题,本质是本地 SQLite 写入失败。优先修 ~\.codex 和 OpenAI.Codex*\LocalState 的目录权限,再把 CODEX_HOME 迁移到英文目录,基本能解决。
这两关坑踩完,Codex Desktop 才算真正跑起来。
后面我会对 Codex App Windows 做一次深度测评,看看这个桌面版到底值不值得用。关注我,等更新。
以上觉得有用的话,关注下、点个赞或收藏、转发给你需要的朋友,如果想第一时间收到推送,也可以给我个星标⭐ 谢谢你看我的文章,下次见。
夜雨聆风
