Claude Epic Status Line
A feature-rich status line for Claude Code that replaces the default status bar with one line of session info plus a rate-limit dashboard. The design principle behind all of it: dim when healthy, coloured when it needs attention. Zero-config by default, deeply customizable when you want it.
See it in action

Key features
- Answers every question you have mid-session at a glance — which model you are on, how much context is left, what branch you are on, what the session has cost, how long it has run, and how close you are to a rate limit. No
/cost, no external dashboard, no guessing. - A rate-limit dashboard built into the status bar — the 5-hour window, the 7-day window, per-model weekly limits, and extra-usage credits, each with the exact time it resets, and each switchable on its own. The per-model numbers come from an undocumented field in the usage API that Claude Code’s own UI does not display anywhere.
- What a turn actually costs —
48k/turnis the whole context re-sent before you type a character, at the cache-read rate of the model you are on, and the API is stateless so you pay it on every message, whether you wrote a paragraph or “yes”. A percentage cannot tell you this: 486k of a 1M window reads as a comfortable 49% full. - A pace projection, not just a reading —
⇢ 94%says where the 5-hour window lands at the rate you are burning it. 38% two hours in is not 38% of a problem; it is a window that runs out before it resets. - A hint that names the command —
/compactwhen the window is full,/clearwhen the session is merely expensive. Different problems, different fixes. - One escalation scale everywhere — yellow at 70%, orange at 80% (context also gains a steady bold
⚠, your cue to/compact), red at 90%. When something lights up, it means something. - Rich git context — branch, staged / unstaged / untracked counts, ahead-behind arrows, and a worktree marker. Invaluable when you run several Claude sessions in parallel.
- Configurable down to the hue, or not at all — thresholds, palette, model-family colours, bar width, glyph sets (
unicode/nerd/ascii), per-segment and per-row toggles,NO_COLORsupport, currency conversion, cache TTL. Every knob is optional. - Knows when the prompt cache goes cold —
486k next turn (cache cold)replaces the per-turn figure once the cache has expired, because the next message then re-writes the whole context instead of reading it cheaply. - Plain bash on Linux, macOS and Windows (Git Bash) — bash 3.2+, BSD or GNU userland. Only
jq,curlandgitare required. A render is onejqcall, onegit statuscall and bash builtins: about 65 ms on Linux, so the numbers do not lag behind the session.
Quick start
git clone https://github.com/dsebastien/claude-epic-status-line.git
cd claude-epic-status-line
bash install.sh
Restart Claude Code and you are done. The installer backs up any existing status line, scaffolds your config file, and wires up ~/.claude/settings.json.
See the Installation guide for the manual route and upgrades, Usage for what every segment means, Configuration for every setting, Tips & best practices for theme recipes, and Troubleshooting when something does not render.
About
Created by Sébastien Dubois.
If this is useful to you, you can buy me a coffee ☕. Source and issues live on GitHub.
Inspired by kamranahmedse/claude-statusline.