v0.3.0 — widgets
headroom v0.3.0 — widgets
Requested on X ("kinda wish it had a dashboard widget, perhaps even a taskbar
widget"). Here they are. One data plane, glanceable everywhere, never lying about
freshness.
Menu-bar widget (macOS, SwiftBar)
A one-line fleet readout in your menu bar: hr 3/4 · 97% (accounts with proven
headroom / total, and the fullest current 5-hour tank). The dropdown lists every
account with both windows and reset times. Drop
integrations/swiftbar/headroom.1m.sh into SwiftBar and point it at a local
headroom serve or an SSH-forwarded one.
The client is deliberately dumb: it fetches server-rendered text, validates a
version sentinel, strictly allowlists every line (fixed colours, one refresh, one
loopback dashboard link), and prints. It never executes fetched content.
Compact dashboard
http://127.0.0.1:8377/widget (or ?compact=1) is the full themed dashboard sized
as a pinnable mini app — headline fleet bars plus slim per-account rows. Pin it with
Safari's Add to Dock, Edge's install-as-app, or Übersicht.
Windows tray (experimental)
experimental/windows/headroom-tray.ps1 — a PowerShell 5.1 system-tray applet
(nothing to install) that polls a forwarded headroom serve and shows a four-state
battery icon. Marked experimental until a real Windows end-to-end run confirms it;
reports welcome.
Honesty guarantees
Widgets share one projection with the dashboard: stale or held data always renders
gray with no live number, freshness thresholds match everywhere, and the public feed
carries no routing or eligibility claims. Everything is loopback-only; remote access
is SSH forwarding, documented, and the only supported path.
Serving three feeds (/usage.json, /widget.json, /widget.txt) shares one
single-flight refresh gate, so a 60-second widget poll never amplifies provider
reads.