🔭 CRIMSON WATCHTOWER snapshot —

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.

Reading the numbers

Phone ready

Windows desktop widgets one command

CodeZeno monitor

5h + weekly bars embedded in the taskbar with live countdowns. Rust, 386★. winget install CodeZeno.ClaudeCodeUsageMonitor

usage-monitor-for-claude

Tray app, portable EXE, zero config, 238★. Warns when usage outpaces elapsed time; threshold alerts.

claude-usage-widget

Always-on-top floating card, shrinks to a 156×44 px pill; burn-rate pace marker.

Rainmeter skin

Lowest footprint if Rainmeter already runs; 5h + weekly + per-model bars.

Why none are pre-installed: each reads the Claude login token in ~/.claude/.credentials.json to query the official usage API — installing one is a trust decision to take knowingly.

Terminal & history one command

Patterns for multi-day operations

Rotation alarm

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.

Standing notify orders

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.

Refresh cadence

Ask any working session to run /watchtower at phase boundaries and this page becomes the op's live mission board — same URL all week.

Rung ladder as progress built

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.

Watch the gate, not the clock

Gates stream -CaptureTo logs; a monitor tailing for the final verdict line tells the session — and the phone — the moment a soak settles.

Event log → anything

SessionStart/SubagentStop/Stop hooks appending one JSON line each gives a machine-readable fleet feed — food for widgets or a morning digest.