claude-code-status-line 1.3.1

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.

 ~/projects/app (+2 dirs)  [main] * (+150, -25)  Opus (effort: high)  ctx: 42% (84k/200k)  5h: 23% (2h 15m)  7d: 41% (3d 4h)

✨ Features

  • 📊 Rich Information Display - Working directory, git branch, model name, reasoning effort, context usage, worktree/scope hints, quota tracking (5h/7d)
  • 🎨 Fully Customizable - Per-section colors, Powerline arrows or custom separators, multiline mode
  • 📱 Responsive Design - Automatically drops or wraps low-priority sections on narrow terminals
  • 🔒 No Credentials Needed - Everything comes from the data Claude Code passes to the statusline; no tokens are read and no network calls are made
  • 🚀 Easy Installation - One command on macOS, Linux and Windows; prebuilt binaries, no Rust toolchain needed

🚀 Quick Start

Requires Node.js 18 or newer (only to download the prebuilt binary). Same command on macOS, Linux and Windows:

npx @ndave92/claude-code-status-line@latest setup

setup copies the binary to ~/.claude/statusline/bin/, 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. Run /customize-statusline to choose what it shows.

Run the same command again to update.

Without Node.js (needs the Rust toolchain from rustup.rs; builds from crates.io):

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

On 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

Prebuilt binaries cover Linux (x64, arm64), macOS (Intel, Apple silicon) and Windows (x64). Other platforms use the crates.io route.

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 once instead:

npx @ndave92/claude-code-status-line@latest setup

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 npx @ndave92/claude-code-status-line@latest setup
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


Made with ❤️ for the Claude Code community