Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

statusline-plus

statusline-plus

License: MIT version Claude Code plugin platform macOS · Linux

A single-pass, model-agnostic status line for Claude Code, with three switchable themes.

themes

  • Single jq pass — reads the whole status-line JSON once per render, not once per segment
  • Model-agnostic — every segment renders regardless of which model is active
  • 3 switchable themesminimal, full, power; swap with one command
  • Merge-safe install — patches settings.json with a jq merge, never overwrites your other keys

Install

Run these three commands separately in Claude Code — enter each one, let it finish, then run the next.

  1. Add the marketplace:
/plugin marketplace add tarunlnmiit/statusline-plus
  1. Install the plugin:
/plugin install statusline-plus@statusline-plus
  1. Wire the status line into your settings:
/statusline-install

Start a new session (or restart) to see the new status line.

${CLAUDE_PLUGIN_ROOT} isn't available at status-line render time and the plugin cache directory is versioned, so /statusline-install copies the engine to a stable path — ~/.claude/statusline-plus/ — and points settings.json at that copy. Re-running the plugin's own update/install flow never touches your other settings.json keys; the patch is a merge.

Themes

Switch with /statusline <minimal|full|power>. Run /statusline with no argument to see the current theme and the list of available ones.

Theme Segments (in order)
minimal model · context-bar · folder
full (default) model · effort · context-bar · git-branch · cost · 5h · reset · folder
power model · effort · thinking · context-bar · tokens · cost · git-branch · 5h · 7d · reset · duration · pr · output-style · folder

minimal — just enough to orient:

minimal theme

full — the daily-driver default:

full theme

power — everything:

power theme

Segment reference

Segment Shows
model Active model display name
effort Reasoning effort level (low/medium/high), color-coded
thinking think indicator when extended thinking is enabled
context-bar 10-block usage bar + percentage, color-coded by threshold
tokens Input/output token counts for the current context (↑/↓, in thousands)
cost Session cost in USD
git-branch Current git branch (or short SHA in detached HEAD), if inside a repo
5h 5-hour rate-limit usage percentage, color-coded
7d 7-day rate-limit usage percentage, color-coded
reset Time until the 5-hour rate limit resets
duration Session duration, from the transcript file's creation time
pr PR number and review state, when set
output-style Active output style, when not default
folder Current working directory's folder name

A segment silently omits itself when its underlying JSON field is absent — themes never show a broken or empty slot.

Claude Code status-line JSON fields used

The engine does one jq pass over stdin per render. These are the fields it reads:

Field Used by
.model.display_name model
.effort.level effort
.thinking.enabled thinking
.context_window.used_percentage context-bar
.context_window.current_usage.input_tokens tokens
.context_window.current_usage.output_tokens tokens
.cost.total_cost_usd cost
.workspace.current_dir (falls back to .cwd) git-branch, folder
.rate_limits.five_hour.used_percentage 5h
.rate_limits.seven_day.used_percentage 7d
.rate_limits.five_hour.resets_at reset
.transcript_path duration
.pr.number, .pr.review_state pr
.output_style.name output-style

If jq isn't on PATH, the engine falls back to a minimal model · folder line parsed with grep/sed, so the status line never breaks.

Uninstall

/statusline-uninstall

Removes the statusLine key from settings.json (a merge-safe jq del, validated before writing). Every other setting is left untouched. The copied engine at ~/.claude/statusline-plus/ is left in place — to remove it completely:

rm -rf ~/.claude/statusline-plus

/statusline-install re-enables the status line at any time.

Layout

.claude-plugin/         plugin.json + marketplace.json
bin/statusline.sh        the engine (single jq pass, model-agnostic segments)
themes/{minimal,full,power}.sh
commands/
  statusline-install.md    /statusline-install — wires settings.json
  statusline.md             /statusline <theme> — switch or show theme
  statusline-uninstall.md   /statusline-uninstall — removes the wiring

Contributing

Issues and PRs welcome — see tests/run.sh for the fixture-driven test harness before submitting a change.

License

MIT

About

Model-agnostic Claude Code status line: one jq pass per render instead of one per segment, 3 switchable themes, merge-safe settings.json patching.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages