我替 Codex Desktop 加了一顆額度小球
我在 Codex Desktop 介面上做了一顆顯示每週剩餘額度的小球,這篇整理額度資料的來源、CDP 注入方式,以及實作時遇到的幾個問題。
- Codex
- Windows
- CDP
- 開發紀錄
我平常會注意 Codex 的每週額度,但 Desktop 版要打開帳號選單才看得到。寫到一半常常只是想確認還剩多少,卻得滑鼠挪過去點一下,所以我做了一顆放在介面上的額度小球。
小球直徑是 56px,中間直接顯示剩餘百分比,外圈和水位會跟著額度變化。它可以拖曳,位置會留在本機;點一下則會展開簡單的用量診斷。沒有讀到資料時,小球只會顯示 --%,不會拿上一筆數字繼續充當目前額度。
額度資料從哪裡來
Codex 會把 session 資訊寫進 %USERPROFILE%\.codex\sessions。我掃描這裡的 JSONL,找出最新的 event_msg / token_count 紀錄,再讀取:
payload.rate_limits.primary.used_percent
小球顯示的剩餘額度就是:
remaining = max(0, 100 - used_percent)
這個百分比來自 Codex 寫下的 rate limit 紀錄,不是拿 token 數量硬換算。Token 可以用來觀察使用情況,但目前沒有可靠依據能說多少 token 固定等於 1% 額度。模型、快取、輸出與工具使用方式不同,消耗也會跟著變。
資料每 30 秒重新讀取一次。解析器只處理模型與 token count 相關紀錄,不需要讀取或上傳對話內容。
怎麼把小球放進 Codex Desktop
Codex Desktop 沒有正式的外掛介面。這版是透過 Chrome DevTools Protocol(CDP)連到 Codex 的 renderer,再用 Runtime.evaluate 注入小球需要的 JavaScript 與 CSS;整個過程不修改 AppX,也不替換 Codex 原本的檔案。
CDP 的連線方式,我參考了 Codex AutoSkin 的做法,主要是 renderer 連線、重新掛載與中斷恢復。AutoSkin 的 SKILL.md 把操作方式整理得很完整,也可以直接交給 AI 當技術參考。額度資料解析、小球 UI、拖曳、診斷資訊與測試則是這顆額度小球自己的實作。