# Claude Epic Status Line
Claude Epic Status Line is a feature-rich status line script for [[Claude Code]]. It replaces the default status bar with a color-coded display: one line of session info plus a rate-limit dashboard. Design principle: dim when healthy, colored when it needs attention. v2.0.0 (August 2026) was a complete redesign.
![[Claude Epic Status Line - Video.mp4]]
![[Claude Epic Status Line - Picture.png]]
## Features
- **Model name** — shortened, colored by model family (Opus/Sonnet/Haiku/Fable each get a hue)
- **Context usage** with token counts (`38% (76k/200k)`); one escalation scale everywhere: yellow ≥70%, orange ≥80% (steady bold `⚠` — the auto-compact cue), red ≥90%; separate `⚠200k+` alert
- **Git status** with staged (`S:2`), unstaged (`U:1`), untracked (`A:3`) counts, ahead/behind arrows (`⇡2⇣1`), worktree marker (`⎇wt`)
- **Session cost** (thresholded, currency-convertible), **duration**, **lines changed** (`+156/-23`)
- **Effort level** (`● high`) plus badges: subagent name, fast mode, thinking, vim, non-default output style
- **Rate-limit dashboard** — `█░` bars with reset times for the 5-hour window, 7-day window, **per-model weekly limits** (parsed from an undocumented usage-API `limits[]` array — numbers Claude Code's own UI doesn't display), and extra-usage credits (only when enabled)
- **Configuration system** — zero-config by default; `~/.config/claude-epic-status-line/config.sh` + `CESL_*` env overrides for thresholds, palette, model hues, bar width, glyph sets (`unicode`/`nerd`/`ascii`), per-segment toggles, cache TTL, currency
- **`explain` subcommand** — dumps raw stdin JSON, parsed values, cache state, and effective config for debugging
## How it works
Claude Code pipes a JSON payload to the script on every refresh; the payload (model, context, cost, effort, rate limits — Claude Code ≥ 2.1.140) is parsed in a single `jq` call. The usage API is contacted only for enrichment (extra credits, per-model limits) with the OAuth token (env, credentials file, `secret-tool`, or macOS Keychain), per-user caching, and a single-flight lock across concurrent sessions. Warm render ≈ 60 ms. Hardened through a four-round adversarial review (Claude + GPT reviewers, 34 findings fixed: terminal-escape injection, token exposure on argv, overflow/octal arithmetic, cache races, macOS portability).
## Requirements
- `jq`, `curl`, `git` — plain bash, Linux and macOS (bash 3.2+, BSD or GNU userland)
## References
- Documentation: https://dsebastien.github.io/claude-epic-status-line/
- Source code: https://github.com/dsebastien/claude-epic-status-line
- V2.0.0 release: https://github.com/dsebastien/claude-epic-status-line/releases/tag/v2.0.0
- Inspired by https://github.com/kamranahmedse/claude-statusline
## Related
- [[Claude Code]]
- [[CShip]] — alternative statusline; fewer built-in opinions, Starship-style TOML config and passthrough
- [[Command Line Interface (CLI)]]