Skip to content

Releases: dsebastien/claude-epic-status-line

v2.0.0 — the epic redesign

Choose a tag to compare

@dsebastien dsebastien released this 04 Aug 19:22

A ground-up v2, designed around one idea: quiet when healthy, loud exactly where something needs attention.

screenshot

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 by install.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.
  • explain subcommand — pipe a status JSON through statusline.sh explain to 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/weekly5-hour/7-day; bars are now █░ (dots via CESL_GLYPHS if you miss them).
  • Effort is read from the session's stdin (effort.level) — the ~/.claude/settings.json effort read is gone.
  • The usage cache moved to a per-user directory ($XDG_RUNTIME_DIR/claude-statusline-$UID or equivalent).
  • Blinking context warning replaced by a steady bold one.

Upgrade

cd claude-epic-status-line && git pull && bash install.sh

Full details: v1.0.1...v2.0.0 and the project board.

v1.0.1 — bug-fix release

Choose a tag to compare

@dsebastien dsebastien released this 04 Aug 16:43

Fixes the exploding rate-limit percentages (values like 2050% — text is now clamped 0-100 like the bars), revives the dead session cost and duration segments (now read from the real cost.total_cost_usd / cost.total_duration_ms stdin fields), hardens the usage cache (per-user dir, ownership/symlink checks, atomic writes, validation), prevents field corruption from missing stdin fields, stops interpolating API strings into awk, derives the API User-Agent from the running Claude Code version, adds --no-optional-locks + timeout to git status, forces a stable numeric locale, and fixes two macOS-only date bugs (%-d, UTC parsing).

v1.0.0

Choose a tag to compare

@dsebastien dsebastien released this 10 Mar 09:42

Claude Epic Status Line v1.0.0

First stable release of Claude Epic Status Line — a feature-rich status line for Claude Code.

Features

  • Model name — shortened display (e.g., Opus 4.6)
  • Context usage — percentage + token counts with color-coded thresholds
  • Auto-compact warning — blinking ⚠ at 80% context usage
  • Git branch with staged (S:), unstaged (U:), untracked (A:) file counts
  • Git ahead/behind⇡⇣ arrows for upstream tracking
  • Worktree detection⎇wt indicator
  • Session cost and duration
  • Effort level indicator
  • Rate limit bars — visual progress bars for 5-hour, 7-day, and extra usage with reset times
  • OAuth token resolution — env var, credentials file, secret-tool (Linux), Keychain (macOS)
  • 60s caching for API calls
  • Cross-platform: Linux and macOS