Windows 上轻盈、透明的 Codex 剩余用量监控工具
A lightweight Codex quota monitor for Windows.
界面预览使用示例数据;应用会显示当前 Codex 账号实际返回的配额周期。
V1.1 增加一个独立、轻量的 CodexQuotaMonitor.Watcher.exe。该功能默认关闭;只有你在设置中主动保存为开启后,它才注册为当前用户启动项并在后台等待 Codex。
设置入口有两个,且始终打开同一个设置窗口:
- 悬浮窗右上角的齿轮;
- 托盘右键菜单中的“设置”。
| 场景 | 行为 |
|---|---|
| 启动 Codex | Watcher 只识别 Windows 桌面版进程 OpenAI.Codex(候选进程为 ChatGPT.exe,包族必须为 OpenAI.Codex_2p2nqsd0c76g0);Codex CLI 不会触发 |
| Codex 正在运行 | 显示 Monitor;始终最多只有一个 Monitor 前台实例 |
| 完全退出 Codex | 仅关闭由 Watcher 启动并持有的 Monitor;手动打开的 Monitor 继续显示,Watcher 继续在后台等待 |
| 手动打开 Monitor | 直接显示已有实例,不会重复创建第二个 Monitor |
| 托盘选择“退出” | 关闭 Monitor,并在当前这次 Codex 会话结束前不再自动拉起 Monitor |
| 关闭跟随功能 | 停止 Watcher 并移除本工具创建的当前用户启动项,当前 Monitor 继续显示 |
- 不保存账号、密码、Token 或 Cookie,也不保存 Codex 内容。
- 不会暂停、终止、启动或修改 Codex 进程与任务;Watcher 只观察桌面版进程生命周期。
- Monitor 与 Watcher 仅使用当前 Windows 用户可访问的本地控制管道。
- 先退出正在运行的 V1.0 Monitor。
- 解压
CodexQuotaMonitor-V1.1.0-win-x64.zip并覆盖整个绿色目录。 CodexQuotaMonitor.exe与CodexQuotaMonitor.Watcher.exe两个 EXE 必须始终放在同一目录。- 启动 Monitor;需要生命周期跟随时,再通过齿轮或托盘设置主动开启。
powershell -ExecutionPolicy Bypass -File .\scripts\build.ps1 -Configuration Release
powershell -ExecutionPolicy Bypass -File .\scripts\publish.ps1
Get-FileHash .\outputs\CodexQuotaMonitor-V1.1.0-win-x64.zip -Algorithm SHA256Watcher 发布验收使用:
powershell -ExecutionPolicy Bypass -File .\scripts\measure-watcher-memory.ps1 -ProcessId <Watcher-PID>脚本预热 60 秒后每 10 秒采样一次,共 30 次;Private Working Set 平均值必须 <= 40 MB,峰值必须 <= 50 MB。
Codex Quota Monitor 常驻 Windows 桌面和系统托盘,通过本机 codex app-server 读取当前 ChatGPT 账号的 Codex 配额。无需打开 Codex 窗口,也能快速看到剩余比例、配额周期和重置时间。
| 功能 | 说明 |
|---|---|
| 透明毛玻璃悬浮窗 | 浅色、圆角、始终置顶,可拖动到桌面任意位置 |
| 托盘百分比 | 系统托盘图标直接显示当前剩余百分比 |
| 双周期配额 | 显示 Codex 实际返回的短周期与长周期配额 |
| 重置倒计时 | 显示距离下一次配额重置还有多久 |
| 自动与手动刷新 | 每 60 秒自动刷新,也可从窗口或托盘立即刷新 |
| 位置记忆 | 自动记住悬浮窗位置,并适配多显示器变化 |
| 安全本地读取 | 复用 Codex CLI 登录状态,不保存账号、密码、Token 或 Cookie |
| 不干预任务 | 只监控用量,不会暂停、停止或修改任何 Codex 任务 |
- Windows 10 1809 或更高版本,64 位系统。
- 已安装 Codex CLI,并能在终端运行
codex --version。 - Codex CLI 已登录需要监控的 ChatGPT 账号;如未登录,请运行
codex login并选择 Sign in with ChatGPT。
- 前往 Releases,下载
CodexQuotaMonitor-V1.1.0-win-x64.zip。 - 解压 ZIP,双击
CodexQuotaMonitor.exe。 - 悬浮窗会出现在桌面,托盘区域会显示剩余百分比图标。
Important
V1.1.0 是未购买商业代码签名证书的开源构建,Windows 可能显示“未知发布者”。请只从本仓库 Release 下载,并核对 Release 页面提供的 SHA-256。
两个程序都是自包含单文件绿色版,不需要另行安装 .NET。只有主动开启生命周期跟随时,Monitor 才为 Watcher 写入当前用户启动项;关闭该设置会移除本工具创建的值。
| 操作 | 效果 |
|---|---|
| 拖动卡片空白区域 | 移动悬浮窗 |
| 点击刷新按钮 | 立即读取最新配额 |
| 点击最小化按钮或关闭窗口 | 隐藏到系统托盘 |
| 双击托盘图标 | 显示或隐藏悬浮窗 |
| 托盘右键菜单 | 显示/隐藏、立即刷新、设置或退出程序 |
只有托盘菜单中的“退出”会结束程序;关闭悬浮窗只是将它隐藏到托盘。
Codex Quota Monitor
│
├─ 启动本机 codex app-server --stdio
│
├─ account/read
└─ account/rateLimits/read
│
▼
悬浮窗 · 托盘 · 倒计时
程序优先从以下位置寻找 Codex CLI:
- npm 全局安装目录;
- 常见本地安装目录;
- Codex Windows 桌面版的本地程序目录;
- 系统
PATH。
Codex 返回哪些配额周期,程序就展示哪些周期;缺失的周期会显示 --,不会猜测或伪造数据。协议说明可参考 OpenAI 官方的 codex app-server README。
程序不会保存:
- ChatGPT 账号或邮箱;
- 密码、Token、Cookie 或登录凭据;
- JSON-RPC 原文或 Codex 标准错误内容;
- 配额历史记录。
本地仅保存窗口位置和经过白名单过滤的诊断事件:
%LOCALAPPDATA%\CodexQuotaMonitor\settings.json
%LOCALAPPDATA%\CodexQuotaMonitor\logs\monitor.log
诊断日志不会记录可执行文件路径、账号信息或认证数据。
本版本聚焦“稳定查看当前配额”和可选的桌面版生命周期跟随,暂不包含:
- 历史趋势和消耗统计;
- 消耗速度与预计耗尽时间;
- Windows 阈值通知;
- 自动更新;
- 自动暂停或停止 Codex 服务。
尤其是最后一项:本工具只读监控,不会干预你的工作流。
显示“未安装”
确认终端中执行 codex --version 能正常返回,然后重新启动监控工具。程序会检查系统 PATH、npm 全局目录、常见本地安装目录和 Codex 桌面版目录。
显示“未登录”
运行 codex login,选择 ChatGPT 登录方式,再点击立即刷新。部分 Codex 桌面版和 CLI 版本可能不共享登录状态,因此即使桌面版已登录,也可能仍需为 CLI 登录一次。
某个周期显示 --
这表示 account/rateLimits/read 没有返回该周期。不同账号、套餐或 Codex 版本可能返回不同的配额窗口。
显示“连接异常”或“数据陈旧”
先点击立即刷新;若仍然失败,请检查 codex login status,升级 Codex CLI 后重新启动本工具。app-server 仍属于 Codex 的实验性接口,未来协议变化可能需要同步更新本项目。
需要 .NET 8 SDK。在项目根目录运行:
powershell -ExecutionPolicy Bypass -File .\scripts\build.ps1生成自包含单文件 EXE 和发布 ZIP:
powershell -ExecutionPolicy Bypass -File .\scripts\publish.ps1输出位置:
artifacts\win-x64\CodexQuotaMonitor.exe
artifacts\win-x64\CodexQuotaMonitor.Watcher.exe
outputs\CodexQuotaMonitor-V1.1.0-win-x64.zip
自动化测试覆盖 JSON-RPC、配额映射、刷新生命周期、单实例、Watcher 状态机、设置事务、托盘图标、窗口行为、发布脚本和安全日志等关键路径。
本项目使用 MIT License。
Codex Quota Monitor 是社区开源项目,与 OpenAI 不存在隶属或背书关系。Codex、ChatGPT 和 OpenAI 名称及相关商标归其各自权利人所有。
轻量监控,安心使用 Codex。