授人以渔:如何构建 Codex Windows App

本文来自个人博客,针对论坛略有修改 OpenAI Codex App for Windows: 从零构建教程 (含安装包)

感谢佬友开源,本篇文章的灵感来自于此 Cometix Space 已经发布 OpenAI Codex 全平台桌面版
推荐原贴项目,因为本人不用 GUI,项目只为尝试 Codex 的能力
项目地址:GitHub - Haleclipse/CodexDesktop-Rebuild: Codex Desktop App - Cross-platform Rebuild


OpenAI 一直优先发布一些 macOS-only 的产品,好在这次 Codex 是基于 Electron 构建 UI,底层调用 Codex-CLI,我们就有了一些逆向重新构建 Windows 版本的可能。

打包版本

仅作体验尝鲜,只做一个成果演示,不负责后续维护。

我还是主力 Codex-CLI,不常用 App 版本,毕竟 UI 都只是在调用 Codex-CLI,我对现有工作流很满意,不需要 GUI。我也无法拒绝 WSL2,当前 Windows App 版只能通过跨文件系统访问,如 \\wsl.localhost\Debian\root,文件读写会很慢。

有问题可以在评论区提,在官方正式推出前会随着 Codex-CLI Release 版本更新。

授人以鱼不如授人以渔,希望看完这篇文章后能够自己构建、自己修:saluting_face:


下载 macOS 安装包

在 Chrome 里“伪装成 macOS”(UA + Client Hints)打开 https://openai.com/codex/ 下载 codex.dmg 安装包:

  1. 打开 DevTools:按 F12 / Ctrl+Shift+I

  2. 打开命令菜单:Ctrl+Shift+P,输入 Network conditions,选择 Show Network conditions(会在 DevTools 底部出现面板)。

  3. User agent 区域,取消勾选 Use browser default,然后:

  • 直接从下拉选择一个 macOS / Safari(如果有)
  1. (很关键)点开 User agent client hints 下拉,把 platform 之类的字段也改成 macOS,点 Update。很多站现在更依赖 Client Hints,而不是只看 UA 字符串。

  2. 刷新页面


构建 Codex Windows App

我更喜欢在 WSL2 中配合 CLI 形式的 Agent 开发,Windows 的终端体验属于是狗弃人厌,LLM 也容易出错,不小心删除文件的事件屡见不鲜。

创建一个空的文件夹,把下载的 .dmg 文件复制过来,在 WSL2 访问此目录执行 codex,输入 /Approvals 授予 Full Access 权限,Let’s go~。

  • 初始 Prompt

请基于我当前仓库的现状,帮我把“基于 macOS 已打包产物的 Electron 应用”重封装为可在 Windows 上构建与打包的版本。

## 项目目的

- 我只有一个 macOS 安装包(Electron 打包后的 .dmg),我想在 Windows 上重新构建出可运行的 Windows App。

- 我不打算恢复源代码或重新编译前端;目标是“重封装/重打包”:把已打包产物作为输入,在 Windows 上重新构建出可运行的 Windows App。

- 后端 CLI 由 Codex-CLI 进程提供:Windows 需要 `codex.exe`,通过 `@openai/codex` 拿到对应平台的预编译 `codex.exe`。

## 交付结果

- 一个 Windows 的可安装文件

## 注意事项

- 我们处于 WSL2 环境中,对于 Windows 相关的依赖打包,需要调用 pwsh.exe 来执行。


观察者

AI 用户习惯让工具直接修复错误,自己很少独立思考,导致后期独立发现和修复 bug 的能力变弱——这恰恰是监督 AI 输出时最需要的技能。

我看到过很多人 Vibe Coding 只看结果责怪 Agent,而不去查看过程,检查是否在某刻出现了偏差。

仅将观察 Codex-CLI 执行过程中遇到的问题记录下来:

  • prefer uv not python

在执行过程中发现会使用 Python,由于我不希望安装各种依赖到处拉屎,在执行过程中又加了一个 prefer uv not python 的要求。

不过看后续的内容还是直接安装了 Python 而非使用 uv,所以推荐把上述要求加到初始 Prompt 或者 AGENTS.md 文件中。

对于 AGENTS.md 的指令,Codex-CLI 会设定为第一优先级,严格遵循,遗漏的情况很少。

打包过程使用了 Visual Studio Tools,也许你需要先安装一个 Visual Studio Community,应该和开发 Electron 所需的环境一致:安装【使用 C++ 的桌面开发】。


单次执行结果

只有首次的 Prompt 和中间的一句 prefer uv not python,41 分钟完成。

最终只是运行起来了,仍然有一点 bug,比如窗口没做 resize,没法自由拉伸。选择项目后出现 Oops, an error has occurred

这些都在一句提示词后解决了,now, let’s play with it!

伟哉,Codex-CLI!


另一条构建路线

可能你不想在本地构建,不想安装各种乱七八糟的环境,可以尝试使用 Codex-CLI 在 GitHub Actions 中执行,选择在 Windows 环境中构建,通过 codex "你的指令" 的方式执行,将打包后的产物上传到 Artifacts,你就能直接下载了。

提示词可能需要调整,让它不打包成功就一直重试,因为 Codex-CLI 倾向于询问而非自主完成任务。


期望

开发一个 Windows 版本没那么简单,虽然不指望用 WinUI 3,毕竟微软自己也陷入了技术泥淖。但希望每个编程软件的开发者都考虑下 WSL2 的适配工作,达到 VS Code 那样的原生 Linux 开发体验吧。

26 个赞

并非好XD


Cometix Codex


https://persistent.oaistatic.com/codex-app-prod/Codex.dmg

7 个赞

太强了,大佬

感谢哈雷的codex应用端喵

太强了佬

1 个赞

请问codex app和codex vscode extension有什么使用上的区别吗,除了后者要先打开 vscode based ide

oai不把你收购了,我第一个不同意

太强了佬

太强了,佬

穿了个衣服的区别

1 个赞

我mac codex感觉好卡,m1 pro。还是回归命令行了

没有文件写入功能吗?这怎么用来编码啊,看起来只是一个简单的网页聊天

怎么在WSL2中运行codex呢

root@:/mnt/f/codex# codex
Command ‘codex’ not found, did you mean:
command ‘godex’ from deb golang-golang-x-tools (1:0.1.9+ds-2ubuntu2.2)
Try: apt install
root@
:/mnt/f/codex# ll
total 156284
drwxrwxrwx 1 root root 4096 Feb 27 08:44 ./
drwxrwxrwx 1 root root 4096 Feb 27 08:44 ../
-rwxrwxrwx 1 root root 160031020 Feb 27 08:42 Codex.dmg*

好像WSL2没办法把dmg识别为一个可执行程序

WSL2 当做一个独立的 Linux 系统,所有软件按照 Linux 的方式安装,你在安装一遍 codex 就好了,执行时让 codex 通过 /mnt/ 的形式访问 Windows 的文件夹,调用 pwsh.exe 来执行 windows 端的操作。
举个例子,假如你的文件夹在 d:\codex-app 下,那么对应在 WSL2 下就是 /mnt/d/codex-app
在这个目录下执行 codex。

我又重新梳理了一下 之前我是直接在WSL2里面试图安装codex.dmg文件,版主的意思似乎是先通过ai把codex.dmg文件转化为.exe文件,然后再使用WSL2进行安装。不知道这个思路是否正确,因为按照原先是思路,我还是没理解如何去在WSL2里面运行.dmg文件的

你直接在 windows 端调用 codex 也一样的,我只是不喜欢 codex 在 windows 环境下执行。

不是安装 dmg,是解包,把里面的内容重新打包成 exe 版本。把文件塞到windows和wsl2都可以,但是打包成 exe 需要用到 windows 端的工具。

所以推荐把dmg放在windows端,codex 在 wsl2 环境下(个人喜好)。

1 个赞