Know what your Claude Code session is up to

A powerline bar under Claude Code carrying what you actually keep checking: model, context, both rate-limit windows, session cost, and the branch you are on.

Two powerline lines under a Claude Code prompt. The first carries the model and effort, a context gauge with the token count and percentage, the 5-hour and 7-day rate-limit windows each with a reset countdown, and the session cost. The second carries the project name and the git branch with a dirty marker.

What it shows you

It is one Rust binary. No runtime, no Node, nothing to keep up to date — Claude Code invokes it directly, and it starts in about a millisecond. Most of a render is spent asking git about your working tree, so inside a repository the whole thing costs tens of milliseconds rather than a couple; outside one it is barely more than the process starting.

It can also stop a session running past the line

A PostToolUse hook watches your usage and, when you cross a cap, tells Claude to wrap up and hand off rather than letting the session run on. The shipped caps are 65% of the context window, 90% of the 5-hour window, 80% of the 7-day one and 90% of a monthly budget — all four are yours to change, and a repository you cloned cannot raise them past what you set. See Configure.

Getting it

Apple Silicon macOS, with Homebrew:

brew trust --formula virajp/tap/claude-status
brew install --formula virajp/tap/claude-status
claude-status --configure

Or with mise:

mise use --global "github:virajp/claude-status@latest"
claude-status --configure

brew trust is not optional — Homebrew 6 will not load a third-party formula it has not been told to trust, so the install fails without it. You do it once.

--configure is the real last step, not a formality: it is what wires Claude Code to the binary. Install covers both routes in full.

Where to go next

PageFor
Installgetting the binary, and wiring Claude Code to it
Configurethe three config layers, and what you can change
Per-reponaming one repository in the bar — the only per-repo setting
Segmentsevery segment, what it draws, and when it sits out
Diagnosing--debug, and the questions it answers

Implementing against it, or wondering why something behaves the way it does? The behaviour contract is the source of truth, written for implementers rather than users. These pages are the user-facing documentation and do not restate it.