claude-code-status-line 1.3.2

A configurable status line for Claude Code with powerline arrows, context tracking, and quota monitoring
Documentation

Claude Code Status Line

A beautiful, configurable status line for Claude Code that displays workspace info, git status, model name, context usage, worktree and added-directory scope hints, quota limits with timers, and optional API costs.

It only reads the data Claude Code passes to the status line: no credentials are read and no network calls are made.

🚀 Quick Start

Builds from source with the Rust toolchain (rustup.rs), 1.85 or newer.

macOS / Linux

cargo install claude-code-status-line --locked --root ~/.claude/statusline &&
~/.claude/statusline/bin/claude-code-status-line setup

Windows (PowerShell)

cargo install claude-code-status-line --locked --root "$env:USERPROFILE\.claude\statusline"
& "$env:USERPROFILE\.claude\statusline\bin\claude-code-status-line.exe" setup

--root puts the binary in ~/.claude/statusline/bin/, where Claude Code's statusLine will point. setup then installs the slash commands and sets statusLine in ~/.claude/settings.json (it shows the change and asks first; the previous file is kept as settings.json.bak). Then restart Claude Code.

  • Change what it shows: run /customize-statusline in Claude Code.
  • Update to a newer version: run /update-statusline in Claude Code, or run the install command above again.

If the statusline does not appear, make sure Claude Code trusts the workspace. Claude Code will not execute custom statusLine commands until the workspace is trusted.

⬆️ Upgrading from 1.2.x or earlier

The /update-statusline command from 1.2.x and earlier downloads from GitHub releases, which are no longer available. Run the install command from Quick Start above once instead.

setup migrates the old install:

  • points your existing statusLine at the new binary in ~/.claude/statusline/bin/, keeping padding and refreshInterval (previous settings.json saved as settings.json.bak)
  • replaces the slash commands with the current ones (your old copies are saved as <name>.md.bak)
  • removes the old binary from ~/.claude/statusline/ and the unused quota_cache.json
  • keeps your ~/.claude/statusline/settings.json and colors.json

Then restart Claude Code. From then on, /update-statusline works again. Users on 1.3.0 (installed from crates.io) can keep using /update-statusline.

🆘 Quick Help

Task Command
Customize settings /customize-statusline
Update to latest version /update-statusline or the Quick Start command
Uninstall completely /uninstall-statusline
Check version ~/.claude/statusline/bin/claude-code-status-line --version
Reinstall slash commands ~/.claude/statusline/bin/claude-code-status-line --install-commands

Configuration files:

  • ~/.claude/statusline/settings.json - Feature toggles and settings (created with defaults on first run)
  • ~/.claude/statusline/colors.json - Color customization (created with defaults on first run)

Quota (5h / 7d):

  • Shown for Claude.ai Pro/Max subscribers, read from the rate_limits data Claude Code provides after the first response in a session.
  • Hidden for API-key usage, where Claude Code sends no plan limits. Enable the cost section instead.

Keeping countdowns fresh: Claude Code re-runs the statusline on events. Add "refreshInterval": 60 to the statusLine block in ~/.claude/settings.json (the installer offers this) to also refresh every minute while idle.

Debugging: run with STATUSLINE_DEBUG=1, or force a width with CLAUDE_TERMINAL_WIDTH=120.

⚠️ Known Issues

  • Notification overlap - Claude Code notifications may obstruct the statusline
  • Powerline characters - Require a Nerd Font / Powerline-patched font

📄 License

MIT License