Claude Code Status Line
A custom status line for Claude Code that displays model info, token usage, rate limits, and reset times in a single compact line. It runs as an external shell command, so it does not slow down Claude Code or consume any extra tokens.
Screenshot
What it shows
| Segment | Description |
|---|---|
| Model | Current model name (e.g., Opus 4.6) |
| CWD@Branch | Current folder name, git branch, and file changes (+/-) |
| Tokens | Used / total context window tokens (% used) |
| Effort | Reasoning effort level (low, med, high) |
| 5h | 5-hour rate limit usage percentage and reset time |
| 7d | 7-day rate limit usage percentage and reset time |
| Extra | Extra usage credits spent / limit (if enabled) |
Usage percentages are color-coded: green (<50%) → yellow (≥50%) → orange (≥70%) → red (≥90%).
Requirements
macOS / Linux
jq— for JSON parsingcurl— for fetching usage data from the Anthropic API- Claude Code with OAuth authentication (Pro/Max subscription)
Windows
- PowerShell 5.1+ (included by default on Windows 10/11)
gitin PATH (for branch/diff info)- Claude Code with OAuth authentication (Pro/Max subscription)
Installation
Quick setup (recommended)
Copy the contents of statusline.sh (or statusline.ps1 on Windows) and paste it into Claude Code with the prompt:
Use this script as my status bar
Claude Code will save the script and configure settings.json for you automatically.
Manual setup — macOS / Linux
-
Copy the script to your Claude config directory:
cp statusline.sh ~/.claude/statusline.sh chmod +x ~/.claude/statusline.sh
-
Add the status line config to
~/.claude/settings.json:{ "statusLine": { "type": "command", "command": "~/.claude/statusline.sh" } } -
Restart Claude Code.
Manual setup — Windows
Windows users should use
statusline.ps1instead of the bash script.
-
Copy the script to your Claude config directory:
Copy-Item statusline.ps1 "$env:USERPROFILE\.claude\statusline.ps1"
-
Add the status line config to
%USERPROFILE%\.claude\settings.json:PowerShell / CMD:
{ "statusLine": { "type": "command", "command": "powershell -NoProfile -File \"%USERPROFILE%\\.claude\\statusline.ps1\"" } }Git Bash / WSL bash:
{ "statusLine": { "type": "command", "command": "powershell -NoProfile -File \"$USERPROFILE\\.claude\\statusline.ps1\"" } }Note: Use
%USERPROFILE%in CMD/PowerShell or$USERPROFILEin bash shells. The%VAR%syntax does not expand in bash. -
Restart Claude Code.
Caching
Usage data from the Anthropic API is cached for 60 seconds at /tmp/claude/statusline-usage-cache.json to avoid excessive API calls.
License
MIT
Author
Daniel Oliveira
