A live menu-bar pill, a click-down menu, and a side panel pinned to the right edge — all showing every account at once, Claude and Codex/OpenAI. Each account shows its 5-hour and weekly window with the white time-marker from your dashboard, so you can see when you're burning too fast.
The panel sticks to the right edge and stays visible on every Space, floating over your editor and terminal. Same bars as your dashboard — colored fill = quota used, white line = where you are in the window by time.
Don't want the panel up? Click the pill and the same bars drop down — both windows, the white pace-marker, and same-email/different-org accounts grouped under one login.
/api/analytics/usage-overview; "Add account…" is where an OpenAI/Codex login slots in.
Same data, four levels of glance. Tabular digits so the width never jitters as numbers change.
Icon only
Quiet. Click for detail.
Worst account
One number — your most-saturated account, color-coded.
Active acct
5-hour · weekly for the account in use right now.
All accounts
Every account's 5h%, side by side. Densest glance.
You asked it to "stick to the side." It floats there, always on top, on every Space. What macOS will not let a normal app do is reserve that strip like the Dock, so a maximized window can still slide underneath it. The apps that fake "reservation" replace your Dock or run a permission-hungry window manager — not worth it for a usage strip.
macOS desktop / Notification-Center widgets (WidgetKit) sound right but Apple only lets them refresh every 15–60 minutes and they can't show your live web dashboard — they'd show stale numbers. The live surface is the menu bar + the floating panel.
Looks nice, but it's a snapshot the system throttles. Wrong for "am I about to get rate-limited right now."
So the plan is:
✅ Menu-bar pill — live, updates every few seconds, glanceable from anywhere.
✅ Floating side panel — your real dashboard bars, pinned right, on every Space.
⏭️ WidgetKit widget — skip, or add later as a stale "nice to have."
.elapsed-marker shown here is copied straight from
usage.js) all carry over; the new part is swapping pystray for rumps on Mac
(crisp live menu-bar text) and a thin WKWebView panel at 127.0.0.1:8321. The
OpenAI/Codex account is the separate piece: its login is a clean port of your OAuth flow, but reading its
usage rides an undocumented Codex surface.