我把 VS Code 状态栏插件搬进了 Codex 顶栏:余额、充值、二维码,全都不用切窗口了

33 阅读4分钟

我把 VS Code 状态栏插件搬进了 Codex 顶栏:余额、充值、二维码,全都不用切窗口了

如果你用过 Codex App,应该会发现一个很现实的问题:

我们使用中转站时一定很在乎余额,因为现在token很烧钱。但是每次打开网页查看费时间,于此我就想到为何不把中转站的核心功能集成到Codex里面去呢?我就做了这样的一个东西。

image.png

image.png

image.png

image.png

中转站地址是: cyapikey.com/register?af… 邀请码: JVNWCBRXBV84 它不像 VS Code 那样有底部状态栏。

而我原来有一个 VS Code 插件,可以在状态栏里显示账号名称、余额,并支持支付宝充值。但到了 Codex App 里,这套交互就没有地方放了。

vscode插件也做好了,大家可以搜索:Matrix Balance

image.png

image.png

image.png

image.png 所以我做了一个独立启动器:

双击启动 Codex,顶部自动出现 Matrix Balance 按钮,登录后直接显示账号余额,还能充值、生成支付二维码、查询未支付订单。

不改 Codex 安装文件,不碰 app.asar,也不需要用户手动执行命令。


最终效果

启动后,Codex 顶部会出现一个按钮:

Matrix Balance 登录

登录后变成:

Matrix Balance 用户名: 余额

点开后可以做这些事:

  • 登录 Matrix Balance
  • 查看账号名称和余额
  • 手动刷新余额
  • 支付宝充值
  • 显示支付二维码
  • 查询未支付订单
  • 取消未支付订单
  • 退出登录

Windows 用户可以直接双击:

MatrixBalanceCodex.exe

没有 Python 环境也能用。


为什么要单独做一个启动器?

一开始我考虑过两种方案。

第一种是改 Codex App 本体。
这个方案很快就被我放弃了,因为更新成本太高,也容易破坏原始安装文件。

第二种是做一个外部启动器。
启动器负责做三件事:

  1. 启动 Codex,并打开 Chromium DevTools Protocol 端口
  2. 通过 CDP 向 Codex 渲染进程注入前端 UI
  3. 用本地 Python bridge 处理登录、余额、支付等接口请求

这样做的好处是:

  • 不修改 Codex 原始文件
  • Codex 更新后可维护性更好
  • 可以打包成独立 EXE
  • 业务逻辑和 UI 都在自己的项目里

为什么不用前端直接请求接口?

我一开始也试过让注入到 Codex 页面里的 JS 直接请求:

https://xxxxxxxxx.com...

结果很快遇到了浏览器 CORS 限制。

所以最终方案改成:

Codex 顶部 UI
  -> CDP bridge
  -> Python launcher
  -> cyapikey.com API

这样前端不直接跨域请求接口,Python 作为本地后端去请求接口,逻辑也更接近 VS Code 插件原来的实现方式。


支付二维码也踩了一个坑

支付宝支付页原本想直接用 iframe 嵌入:

<iframe src="https://xxxxxx.xxx.com/..." />

但 Codex 页面有 CSP 限制,外部支付页会被拦截:

ERR_BLOCKED_BY_CSP

所以最后改成:

  • Python 根据支付链接生成二维码 SVG
  • 前端直接显示二维码
  • 同时保留“打开支付页”按钮作为备用

这样不依赖 iframe,也不会被 CSP 卡住。


打包和分发

Windows 版现在已经可以打成单文件:

MatrixBalanceCodex.exe

用户不需要安装 Python。

同时还提供:

Install Desktop Shortcut.bat
Uninstall Desktop Shortcut.bat

如果想装桌面快捷方式,双击安装脚本即可。

macOS 也准备了自用版构建方案:

chmod +x scripts/build-macos-app.sh
./scripts/build-macos-app.sh

会生成:

MatrixBalanceCodex.app
MatrixBalanceCodex-macos-selfuse.dmg

由于目前是自用版,没有走 Apple Developer ID 签名和 notarization,所以 macOS 首次打开可能需要右键打开,或者手动解除 quarantine。


这个项目解决了什么问题?

对我来说,它解决的是一个很小但很真实的问题:

在 Codex 里工作时,不想再切回 VS Code 或网页查看余额、充值、处理订单。

现在这些都可以直接在 Codex 顶部完成。

它本质上不是“改造 Codex”,而是一个外部增强启动器:

  • Codex 还是原来的 Codex
  • Matrix Balance 是独立注入的顶部 UI
  • 业务请求由本地 launcher 处理
  • 打包后就是一个普通桌面应用

后续计划

后面可能继续做几件事:

  • macOS 正式签名和 dmg 分发
  • 更稳定的自动注入和异常恢复
  • 更好的顶部 UI 样式
  • 支付成功后的提示优化
  • 更新检查和自动升级

如果你也在做 Codex App 的外部增强,这个方向是可行的:

不要硬改 App,本地 launcher + CDP 注入 + bridge 通信,足够做很多实用功能。