A ground-up v2, designed around one idea: quiet when healthy, loud exactly where something needs attention.
What's new
- New layout — a refined single line (model · context · dir+git · cost · duration · lines ± · effort · badges) plus an always-visible rate-limit dashboard with
█░bars for the 5-hour window, 7-day window, per-model weekly limits (data the official UI doesn't surface), and extra-usage credits. - Semantic color — one escalation scale everywhere (yellow ≥70%, orange ≥80%, red ≥90%), model name colored by family (Opus/Sonnet/Haiku/Fable), steady bold
⚠instead of blinking. - stdin-first data — rate limits, cost, duration, lines changed, effort, fast-mode/thinking/vim/output-style badges, and subagent name all come from Claude Code's own status JSON (≥2.1.140 recommended; older versions degrade gracefully). The usage API is only queried for enrichment, cached per-user with a single-flight lock and negative caching.
- Configuration system — zero-config by default;
~/.config/claude-epic-status-line/config.sh(scaffolded byinstall.sh, all knobs commented out) +CESL_*env overrides: thresholds, palette + model hues, bar width, glyph sets (unicode/nerd/ascii), per-segment toggles, currency conversion, cache TTL. explainsubcommand — pipe a status JSON throughstatusline.sh explainto see the raw input, every parsed value, cache state, and effective config.- Adversarially reviewed — four review rounds (Claude + Codex); 34 findings fixed: terminal-escape injection, OAuth token exposure on argv, arithmetic overflow/octal traps, hostile-JSON handling, installer data-loss paths, cache races, macOS portability bugs. Hostile inputs now degrade, never corrupt.
Breaking changes
- Rate-limit labels renamed
current/weekly→5-hour/7-day; bars are now█░(dots viaCESL_GLYPHSif you miss them). - Effort is read from the session's stdin (
effort.level) — the~/.claude/settings.jsoneffort read is gone. - The usage cache moved to a per-user directory (
$XDG_RUNTIME_DIR/claude-statusline-$UIDor equivalent). - Blinking context warning replaced by a steady bold one.
Upgrade
cd claude-epic-status-line && git pull && bash install.shFull details: v1.0.1...v2.0.0 and the project board.
