Each open session self-reports every ~10 seconds. Ticking figures are extrapolated from that session's measured pace; they re-anchor to truth on each refresh.
/usage reads, over the local login. One card per window the account actually has: the 5-hour block, the all-model week, any per-model week, and the model-scoped tanks (Fable among them). Windows the account has not opened yet are absent rather than drawn empty, so a fresh account shows fewer cards until it earns them. The card order is the glance order: whichever window the API flags as binding comes first, then fullest./login to a different one rolls the weekly window, the sample history and the week's spend rather than carrying the old account's numbers forward. The week tile then counts from the switch and says so.… marks extrapolation).HANDOFF-META: model= is the attribution record.docs/evidence/ states its own test and assert totals, so that folder was already a time series nobody had to keep; docs/DECISIONS.md is parsed the same way for the register count and the three newest rulings.docs/GOALS.md names each rung's gate legs, every capture under docs/evidence/ records which legs came back green, and HANDOFF-META names the open rung. Nothing here costs a token to keep current, and the squares only move when a gate runs.https://watchtower.alienwitchgames.com; bookmark it on the phone's home screen./rc in a session, scan the QR with the Claude app: live streaming + steering, push notifications when a session needs input or finishes a long turn (both toggles enabled).npm i -g happy, then happy claude: full E2E-encrypted mirroring on iOS/Android. Third-party relay — a deliberate trust decision.Stop/PermissionRequest hooks; claude-ntfy-hook supports Windows.5h + weekly bars embedded in the taskbar with live countdowns. Rust, 386★. winget install CodeZeno.ClaudeCodeUsageMonitor
Tray app, portable EXE, zero config, 238★. Warns when usage outpaces elapsed time; threshold alerts.
Always-on-top floating card, shrinks to a 156×44 px pill; burn-rate pace marker.
Lowest footprint if Rainmeter already runs; 5h + weekly + per-model bars.
~/.claude/.credentials.json to query the official usage API — installing one is a trust decision to take knowingly.npx -y ccstatusline@latest. Would replace the custom line; the custom line's runs-out ETA is what it lacks.uv tool install claude-monitor.claude agents — built-in fleet view of background sessions (working / needs input / done / failed).A threshold alert at ~85–90% of the 5h block (widget alert, or a scheduled script pushing ntfy) turns "hit the cap mid-op" into "told ten minutes ahead" — feeds the two-account switch runbook.
End a long-op prompt with "push a notification when the gate verdict lands or you go BLOCKED" — sessions carry a push tool; zero infrastructure.
Ask any working session to run /watchtower at phase boundaries and this page becomes the op's live mission board — same URL all week.
The Build tab's rung panel reads it straight off the repo — GOALS names each rung's gate legs, docs/evidence/ says which are green, HANDOFF-META says which rung is open. Gates advance it, so it cannot drift optimistic. A foreman adds judgment with watchtower-forecast.mjs; the page keeps it below the rule and scores it later.
Gates stream -CaptureTo logs; a monitor tailing for the final verdict line tells the session — and the phone — the moment a soak settles.
SessionStart/SubagentStop/Stop hooks appending one JSON line each gives a machine-readable fleet feed — food for widgets or a morning digest.