DOCS / AGENT PLUGINS
Usage statusline
birch statusline is an optional Claude Code status line that prints a compact
usage summary (for example Opus 4.8 · ctx 71% · 5h 34% · 7d 12%) at the bottom of
your agent terminal — and simultaneously feeds the same numbers into Birch’s
workspace properties panel. It complements the
birch-status plugin: hooks carry lifecycle events,
the statusline carries live usage. (See AI in Birch for
the overall picture.)
What it shows
Section titled “What it shows”The line is composed of up to four segments, joined with ·:
| Segment | Meaning |
|---|---|
Opus 4.8 | The model the session is running |
ctx 71% | How full the context window is |
5h 34% | 5-hour rate-limit window used |
7d 12% | 7-day rate-limit window used |
A segment simply drops out when its data is absent. The 5-hour / 7-day windows are reported only on Claude subscription plans.
Enable it from Birch
Section titled “Enable it from Birch”Open Settings → Claude Code and click Enable usage statusline. Birch then:
- writes the
statusLineentry into~/.claude/settings.json, preserving every other setting (the file is replaced atomically, so a crash mid-write can’t corrupt it); - leaves the rest to Claude Code, which picks up the change automatically.
The button refuses to run when the birch CLI is not on your PATH — install it first with Install birch CLI to PATH on the same pane, then try again.
What it feeds in Birch
Section titled “What it feeds in Birch”The statusline payload is the richest live-usage tier Birch receives, and it feeds exactly one surface: the CLAUDE CODE card in workspace properties — model, context fill, and the 5h limit / 7d limit rows. Those rate-limit rows appear only while the statusline is enabled; hooks never carry them.
The dashboard’s AI-usage panel is a separate pipeline: it aggregates your local session transcripts and never reads the statusline. Its Reported cost row currently always shows “Unavailable” — transcripts carry no cost data, and no data source feeds that row yet — never a fabricated zero.
Already have a statusline?
Section titled “Already have a statusline?”Birch never overwrites a custom statusLine you (or another tool) configured — Enable usage statusline detects it and refuses. To keep your own renderer and feed usage into Birch, fan the same stdin JSON out to birch statusline with tee. For example, if your statusline command is my-statusline, change it to:
tee >(birch statusline >/dev/null) | my-statuslinebirch statusline’s own stdout is discarded here — in this setup it just forwards the payload to Birch while your command keeps rendering the visible line.
Manual configuration
Section titled “Manual configuration”You can also add the entry to ~/.claude/settings.json yourself:
{ "statusLine": { "type": "command", "command": "birch statusline" }}The statusline must live in this user-level slot — Claude Code plugins cannot provide a statusLine, which is why it is configured separately from the birch-status plugin.
Disabling
Section titled “Disabling”There is no disable button — remove the statusLine entry from ~/.claude/settings.json (or restore your previous command) and Claude Code drops the line automatically. Birch stops receiving live usage: the rate-limit rows in workspace properties empty out, while transcript-based statistics are unaffected.