Codex App 这几个痛点,终于有工具补上了

如果你平时用 Codex App 写代码,大概率遇到过这些小问题:

  • API Key 模式下,插件入口打不开;
  • 历史会话只能归档,不能真正删除;
  • 切换不同 model provider 后,旧会话突然“不见了”;
  • 想把一段对话导出成 Markdown,不够顺手。

这些都不是大问题,但每天高频使用时,就会变成很影响体验的细节。

最近看到一个项目,正好就是为了解决这些问题:Codex++

项目地址:

https://github.com/xianyu110/CodexPlusPlus

它不是另一个 Codex,也不是修改官方 Codex App 安装包的补丁,而是一个面向 Codex Desktop App 的外部增强启动器。

简单说,它通过自己的 launcher 启动 Codex,再借助 Chromium DevTools Protocol 注入增强脚本,在不修改 Codex 原始文件的前提下,给 Codex App 补上一些实用功能。

顺带推荐一下我自己在用的入口:

https://codex.maynorai.top/

如果你想更省心地使用 GPT / Codex 全系列模型,它主打无需魔法、无需手机号,价格大约是官方使用成本的一半,适合想低门槛体验 Codex 生态的朋友。


Codex++ 主要解决什么问题?

先看两个典型场景。

API Key 登录模式 下,Codex 原生插件入口会提示需要登录 ChatGPT,导致插件功能无法正常使用:

API Key 模式下插件入口不可用

另外,Codex 原生会话列表只有归档入口,没有真正的删除按钮:

原生会话列表缺少删除能力

启动 Codex++ 后,它会解锁插件入口,并在会话列表悬停时显示删除按钮:

Codex++ 解锁插件入口并添加删除按钮

同时,顶部菜单栏会多出一个 Codex++ 菜单,可以查看后端状态,也可以打开设置面板:

Codex++ 后端状态指示灯

Codex++ 设置面板


核心功能一览

根据 README,Codex++ 目前主要提供这些能力:

功能作用
Codex++ 顶部菜单集中管理增强功能和后端状态
插件选项解锁API Key 模式下也能显示并启用插件入口
特殊插件强制安装解除 App unavailable / “应用不可用”导致的前端安装禁用
会话删除会话列表悬停显示删除按钮,删除前确认,并支持撤销
Markdown 导出按本地 rollout 导出带时间戳的会话 Markdown
会话项目移动把会话移动到普通对话或其他本地项目
对话 Timeline在对话右侧显示用户提问时间线,悬停查看摘要并快速跳转
Provider 同步切换 model_provider 或供应商时,不丢历史会话
Windows watcher常驻 watcher 自动接管原生 Codex 启动
自动更新支持 GitHub Release 检查与更新
macOS App可生成 /Applications/Codex++.app

可以看出来,它的定位很明确:

Codex++ 不是模型能力增强,而是 Codex Desktop 的桌面体验增强。

它补的是会话管理、插件入口、本地数据可见性、导出和 provider 切换这些日常使用里的细节。


Provider 同步:切换供应商后,历史会话不再“消失”

我觉得 README 里最实用的功能之一,是 Provider 同步

如果你用过不同 model provider,可能遇到过这种情况:

明明本地会话还在,但切换 provider 后,Codex Desktop 或 /resume 里突然看不到旧会话了。

Codex++ 的 Provider 同步就是为了解决这个问题。

启用后,它会在启动 Codex 前同步本地会话 metadata,包括:

  • rollout 文件;
  • SQLite 线程记录;
  • 项目路径缓存;
  • 当前 model_provider 对应的会话可见性信息。

这样切换供应商后,旧会话仍然能出现在原来的项目下。

它适合这些场景:

  • 从 OpenAI 切换到第三方 provider 后,旧会话不可见;
  • 切回其他 provider 后,希望历史对话继续显示;
  • Windows 路径带有 \\?\ 前缀,导致 Desktop 项目列表匹配不到旧会话。

需要注意的是:

Provider 同步只修复会话可见性相关 metadata,不会改写对话内容。

如果 Codex 正在占用某个会话文件,或者 SQLite 忙碌,Codex++ 会跳过并继续启动,避免影响 Codex 正常运行。


安装前提

Codex++ 需要这些环境:

  • Python 3.11+
  • Windows 或 macOS
  • 已安装 Codex App

也就是说,它不是 Codex App 的替代品。

你需要先安装原版 Codex App,然后通过 Codex++ 启动它,增强功能才会生效。


快速使用

Windows 用户可以直接双击项目根目录的:

setup.bat

然后选择:

[1] Install Codex++

安装完成后,桌面会生成:

Codex++.lnk

以后双击这个快捷方式,就能启动带增强功能的 Codex。

也可以通过命令行安装和启动:

python -m pip install -e .
python -m codex_session_delete setup
python -m codex_session_delete launch

macOS 用户可以执行:

python -m codex_session_delete setup

安装后会生成:

/Applications/Codex++.app

之后从 Codex++.app 启动,而不是直接启动原版 Codex.app


Windows 自动接管

默认情况下,Codex++ 只在你从 Codex++ 快捷方式启动时生效。

如果你从开始菜单、任务栏或系统原生入口直接启动 Codex,那一次不会有注入,Codex++ 菜单和插件解锁也不会出现。

Windows 用户可以注册一个常驻 watcher 来解决这个问题。

它会每 3 秒探测一次本机 CDP 端口,发现 Codex 在运行但 CDP 没起来,就会等待并二次确认,然后把 Codex Desktop App 进程重拉为带注入的版本。

安装 watcher:

python -m codex_session_delete watch-install

卸载 watcher:

python -m codex_session_delete watch-remove

临时开关:

python -m codex_session_delete watch-disable
python -m codex_session_delete watch-enable

日志路径:

%USERPROFILE%\.codex-session-delete\watcher.log

自动更新

Codex++ 会在启动时检查 GitHub Release。

如果发现比本地版本更新的 Release,会在控制台提示版本号、Release 地址和更新命令。检查失败不会影响 Codex++ 正常启动。

手动检查更新:

python -m codex_session_delete check-update

从最新 GitHub Release 更新:

python -m codex_session_delete update

README 里描述的更新流程大致是:

  1. 请求 GitHub Release latest 接口;
  2. 比较最新 Release tag 与本地版本;
  3. 优先下载 Release 中的 .whl asset;
  4. 执行 python -m pip install --upgrade <wheel>
  5. 自动重新执行 python -m codex_session_delete setup,刷新快捷方式、Windows 卸载项或 macOS app bundle。

它是怎么工作的?

Codex++ 的实现方式比较克制。

它没有修改 Codex 的 app.asar,也不需要往 Codex 安装目录写 DLL,而是通过外部启动器完成增强。

大致流程是:

  1. 启动 Codex App,并附加 CDP 参数:
--remote-debugging-port=9229
--remote-allow-origins=http://127.0.0.1:9229
  1. 如果启用了 Provider 同步,启动 Codex 前先同步历史会话 metadata。

  2. 启动本地 helper 服务,负责健康检查和运行生命周期。

  3. 通过 CDP 注入 renderer-inject.js

  4. 渲染端通过 CDP bridge 调用本地服务。

  5. 启动 Codex 时继承现有 HTTP_PROXY / HTTPS_PROXY / ALL_PROXY

如果这些代理环境变量未设置,它还会自动探测常见本地代理端口,例如:

127.0.0.1:7897

这对需要访问 GitHub 的技能资源加载会比较有帮助。

这种方式的好处是:

不改 Codex 原始安装文件,风险更低,也更容易恢复。

代价也很明确:

你需要从 Codex++ 的入口启动 Codex,增强功能才会生效。


数据与备份

因为 Codex++ 涉及会话删除和 Provider 同步,所以理解它读写哪些本地数据很重要。

Codex++ 默认读取 Codex 本地数据库:

~/.codex/state_5.sqlite

删除前会把相关记录备份到:

~/.codex-session-delete/backups

Provider 同步会把同步前状态备份到:

~/.codex/backups_state/provider-sync

隐藏启动失败日志位于:

~/.codex-session-delete/launcher.log

建议正式使用前,先确认这些路径和备份机制,尤其是准备使用“会话删除”和“Provider 同步”的时候。


常见问题

双击 Codex++ 没反应

先查看日志:

%USERPROFILE%\.codex-session-delete\launcher.log

常见原因包括:

  • Codex App 没有安装或路径变化;
  • 9229 端口被占用;
  • Python 环境不可用。

技能推荐加载失败

如果技能页提示:

git fetch failed
unable to access 'https://github.com/openai/skills.git/'

通常是本机网络无法直连 GitHub。

Codex++ 启动时会优先继承现有代理环境变量;如果未设置,会自动探测常见本地代理端口。

也可以手动指定:

$env:HTTP_PROXY="http://127.0.0.1:7897"
$env:HTTPS_PROXY="http://127.0.0.1:7897"
python -m codex_session_delete launch

Codex++ 菜单没出现

确认你是从 Codex++ 快捷方式启动,而不是直接启动原版 Codex。

也可以检查 Codex 是否带了 CDP 参数:

--remote-debugging-port=9229

切换供应商后旧会话不见了

打开 Codex++ 设置面板,启用 Provider 同步 后重新启动 Codex++。

它会在启动 Codex 前同步当前 model_provider,让历史会话重新匹配当前供应商。


Windows 系统卸载失败

可以先更新到当前版本后重新安装一次:

python -m codex_session_delete setup

新版会写入更稳定的系统卸载项,并使用绝对 Python 路径执行卸载。


总结

Codex++ 更像是 Codex App 的一层“桌面增强层”。

它不碰原始安装文件,却能补上很多高频体验能力:

  • 插件入口解锁;
  • 会话真正删除;
  • Markdown 导出;
  • 对话 Timeline;
  • 会话项目移动;
  • Provider 同步;
  • Windows watcher 自动接管;
  • macOS App 启动入口。

如果你已经把 Codex 当成日常开发工具,而且经常在 API Key 模式、不同 provider、本地历史会话之间来回切换,那么 Codex++ 会是一个很实用的补充。

安装前记住两点就够了:

第一,先安装原版 Codex App。

第二,使用时从 Codex++ 启动,而不是直接打开原版 Codex。

项目地址:

https://github.com/xianyu110/CodexPlusPlus

Maynor AI Codex:

https://codex.maynorai.top/

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐