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.
| 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) |
| Update | Clickable link when a new version is available (checked every 24h) |
Usage percentages are color-coded: green (<50%) → yellow (≥50%) → orange (≥70%) → red (≥90%).
jq— for JSON parsingcurl— for fetching usage data from the Anthropic API- Claude Code with OAuth authentication (Pro/Max subscription)
- PowerShell 5.1+ (included by default on Windows 10/11)
gitin PATH (for branch/diff info)- Claude Code with OAuth authentication (Pro/Max subscription)
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.
-
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.
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.
Usage data from the Anthropic API is cached for 60 seconds at /tmp/claude/statusline-usage-cache.json to avoid excessive API calls.
The status line checks GitHub for new releases once every 24 hours. When a newer version is available, a second line appears below the status line showing the new version and a link to the repository. The check is cached at /tmp/claude/statusline-version-cache.json (or %TEMP%\claude\... on Windows) and fails silently if the API is unreachable or no release has been published.
When the status line shows an update is available, visit the repository, 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 replace the script and restart the status line automatically.
MIT
Daniel Oliveira
