我把 VS Code 状态栏插件搬进了 Codex 顶栏:余额、充值、二维码,全都不用切窗口了
如果你用过 Codex App,应该会发现一个很现实的问题:
我们使用中转站时一定很在乎余额,因为现在token很烧钱。但是每次打开网页查看费时间,于此我就想到为何不把中转站的核心功能集成到Codex里面去呢?我就做了这样的一个东西。
中转站地址是: cyapikey.com/register?af… 邀请码: JVNWCBRXBV84 它不像 VS Code 那样有底部状态栏。
而我原来有一个 VS Code 插件,可以在状态栏里显示账号名称、余额,并支持支付宝充值。但到了 Codex App 里,这套交互就没有地方放了。
vscode插件也做好了,大家可以搜索:Matrix Balance
所以我做了一个独立启动器:
双击启动 Codex,顶部自动出现 Matrix Balance 按钮,登录后直接显示账号余额,还能充值、生成支付二维码、查询未支付订单。
不改 Codex 安装文件,不碰 app.asar,也不需要用户手动执行命令。
最终效果
启动后,Codex 顶部会出现一个按钮:
Matrix Balance 登录
登录后变成:
Matrix Balance 用户名: 余额
点开后可以做这些事:
- 登录 Matrix Balance
- 查看账号名称和余额
- 手动刷新余额
- 支付宝充值
- 显示支付二维码
- 查询未支付订单
- 取消未支付订单
- 退出登录
Windows 用户可以直接双击:
MatrixBalanceCodex.exe
没有 Python 环境也能用。
为什么要单独做一个启动器?
一开始我考虑过两种方案。
第一种是改 Codex App 本体。
这个方案很快就被我放弃了,因为更新成本太高,也容易破坏原始安装文件。
第二种是做一个外部启动器。
启动器负责做三件事:
- 启动 Codex,并打开 Chromium DevTools Protocol 端口
- 通过 CDP 向 Codex 渲染进程注入前端 UI
- 用本地 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 通信,足够做很多实用功能。