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
&&
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-statuslinein Claude Code. - Update to a newer version: run
/update-statuslinein 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
statusLineat the new binary in~/.claude/statusline/bin/, keepingpaddingandrefreshInterval(previoussettings.jsonsaved assettings.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 unusedquota_cache.json - keeps your
~/.claude/statusline/settings.jsonandcolors.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_limitsdata Claude Code provides after the first response in a session. - Hidden for API-key usage, where Claude Code sends no plan limits. Enable the
costsection 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