Anatomy of the line
| +131/-16 6m $7.53 | Session activity. Lines added/removed, API time, session cost — cost flashes its increment (+.37) for a minute after each jump. |
| fabl5[1m]xh[█░░░░░12%] | Model + context. Abbreviated model, 1M-window tag, reasoning-effort badge, context pressure bar. On 1M models the bar also carries the premium-pricing band. After /compact the bar snaps to [░░░░░░0%] and flashes the drop. |
| fb[67%] | Model-scoped weekly quota. When the API carries a per-model weekly limit for the model you're running (Fable here), it hugs the model block. Other models' limits stay hidden — only the one constraining this session is signal. |
| 5h[38%@14:00] | 5-hour window. Wall-clock reset time, deliberately not a countdown: the line only re-renders on activity, so @1h38m would decay into a lie during idle gaps. @14:00 stays true in a frozen frame. |
| 7d[55%@2d] | 7-day window, forecast-colored. A learned per-weekday burn profile projects whether quota outlasts the window — your heavy Tuesday counts more than a generic average. Red means "at your pace, dry before the reset". |
| cache~ !net !429 | Truth badges. Prompt-cache health, and stale-data markers that say why a fetch failed (network, rate limit, auth) instead of silently showing old numbers. |
Built like it matters
Numbers that don't lie
Wall-clock resets instead of decaying countdowns. A visible [░░░░░░0%] instead of a hidden bar. Stale data is always badged, never passed off as fresh.
Polite to the API
N concurrent Claude Code instances share one cached fetch behind an atomic lock — at most one usage request per account per TTL window. Escalating backoff honors Retry-After.
Works behind TLS inspection
Corporate mitm proxy or a local tracer: it builds a combined CA bundle from NODE_EXTRA_CA_CERTS automatically, so fetches survive where plain curl dies.
Documented wire contract
The observed /api/oauth/usage schema is versioned in-repo and re-synced against CLI captures, so parser changes check against ground truth.
265 tests on one bash file
bats suite covering quota math, lock contention (20-contender single-winner), forecast pacing, ANSI rendering, and the installer. CI on every push.
Nothing running in the background
No daemon, no telemetry, no npm. It runs when Claude Code renders the prompt, reads stdin + one cached API call, prints a line, exits.
What it is not
- Not a general-purpose prompt framework — it renders one line for Claude Code's
statusLinehook, nothing else. - Quota badges need an OAuth (subscription) login; API-key accounts get everything except the quota cluster.
- Bash + jq + curl on Linux/macOS. No Windows-native support (WSL works).