Beautiful, informative status line for Claude Code — zero dependencies, cross-platform
Project description
claude-status
Zero-dependency status line for Claude Code. One command. Every metric. All platforms.
Line 1: [████████░░░░░░░░░░░░] │ in:245K out:18K │ cache:41% │ $0.73 │ $0.73/$10 │ burn:36K/min │ (200K)
Line 2: 12m05s │ api:5m12s │ +247 -38 │ ⎇ myapp/feat/statusline │ tools:42 │ sessions:3 │ Opus 4.6 (1M context)
Quick Start
pip install claude-status
claude-status --install
Restart Claude Code. That's it — two lines of pure signal at the bottom of your terminal.
Why claude-status?
- Zero dependencies — pure Python stdlib. No
psutil, nocolorama, no compilation. Installs in under 2 seconds - Two-line layout — glanceable metrics on line 1, context details on line 2. Nothing gets truncated
- Every metric that matters — 17 data points including burn rate (tokens/min), a metric no other statusline tracks
- 7 built-in themes — default, minimal, powerline, nord, tokyo-night, gruvbox, rose-pine
- Budget monitoring — set a daily spend limit, get color-coded warnings as you approach it
- Session analytics — tool call count and today's session count at a glance
- Cross-platform — tested on Windows, macOS, and Linux across Python 3.8–3.14 (21 CI jobs)
- Interactive setup —
--setupwizard walks you through theme selection and budget config
Features
Line 1 — Metrics at a Glance
| Feature | What You See | Why It Matters |
|---|---|---|
| Context Bar | [████████░░░░░░░░░░░░] |
Green/yellow/red adaptive — know your context budget instantly |
| Token Counts | in:245K out:18K |
Human-readable (K/M) — no squinting at raw numbers |
| Cache Efficiency | cache:41% |
See how much prompt cache is saving you |
| Cost | $0.73 |
Session cost in real-time — cents for small, dollars for large |
| Burn Rate | burn:36K/min |
Tokens/min consumption — unique to claude-status |
| Context Size | (200K) |
Know if you're on 200K or 1M context |
| Budget | $0.73/$10 |
Color-coded daily budget tracker (green/yellow/red) |
| Context Warning | !CTX |
Bold red alert when you exceed 200K tokens |
Line 2 — Session Context
| Feature | What You See | Why It Matters |
|---|---|---|
| Duration | 12m05s |
Wall-clock session time |
| API Latency | api:5m12s |
Time spent in API calls |
| Lines Changed | +247 -38 |
Git-diff style — green additions, red removals |
| Git Branch | ⎇ feat/statusline |
Green for main/master, yellow for feature branches |
| Tool Calls | tools:42 |
Number of tool calls in current session |
| Sessions Today | sessions:3 |
How many sessions you've started today |
| Vim Mode | NORMAL |
Blue for NORMAL, green for INSERT (when vim mode is on) |
| Agent | [Explore] |
Shows which subagent is active |
| Worktree | wt:fix/bug-123 |
Worktree branch indicator |
| Model | Opus 4.6 (1M context) |
Active model name |
Themes
7 built-in themes to match your terminal aesthetic. Preview all live with claude-status --demo.
default — full detail, clean separators
[████████░░░░░░░░░░░░] │ in:245K out:18K │ cache:41% │ $0.73 │ burn:36K/min │ (200K)
12m05s │ +247 -38 │ ⎇ myapp/feat/statusline │ tools:42 │ sessions:3 │ Opus 4.6 (1M context)
minimal — just the essentials
●●●●●●●●·············· in:245K out:18K $0.73
12m05s ⎇ feat/statusline sessions:3 Opus 4.6 (1M context)
powerline — Nerd Font separators
████████░░░░░░░░░░░░ in:245K out:18K cache:41% $0.73 burn:36K/min (200K)
12m05s +247 -38 ⎇ feat/statusline tools:42 sessions:3 Opus 4.6 (1M context)
nord — cool blue tones
tokyo-night — purple and blue accents
gruvbox — warm retro palette
rose-pine — soft muted pinks
Installation
pip (recommended)
pip install claude-status
claude-status --install
pipx (isolated — no venv pollution)
pipx install claude-status
claude-status --install
uvx (fast, modern)
uvx claude-status --install
From source (contributors)
git clone https://github.com/mkalkere/claude-statusline.git
cd claude-statusline
pip install -e .
claude-status --install
What --install does
Reads your ~/.claude/settings.json, adds the statusLine entry, preserves everything else. Use --theme to pick a theme:
claude-status --install --theme powerline
Command not found? Ensure your Python scripts directory is in
PATH. Fallback:python -m claude_statusline --install
CLI Reference
| Command | Description |
|---|---|
claude-status --setup |
Interactive setup wizard (recommended for first use) |
claude-status --install |
Auto-configure Claude Code settings |
claude-status --install --theme nord |
Install with a specific theme |
claude-status --demo |
Preview all 7 themes with sample data |
claude-status --doctor |
Diagnostics: Python version, OS, terminal, current settings |
claude-status --version |
Show version |
claude-status --help |
Show usage |
Budget Monitoring
Set a daily spending limit to get color-coded warnings as you approach it:
claude-status --setup # interactive wizard sets this up for you
Or manually create ~/.claude/claude-status-budget.json:
{
"daily_budget_usd": 10.00
}
The budget indicator changes color based on usage:
- Green: under 70% of budget
- Yellow: 70–90% of budget
- Red (bold): 90%+ of budget
Manual Configuration
Add to ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "claude-status"
}
}
With a theme:
{
"statusLine": {
"type": "command",
"command": "claude-status --theme minimal"
}
}
How It Works
Claude Code pipes session JSON to your statusLine command via stdin on every render cycle. claude-status parses it, formats 14 metrics across 2 lines, and prints to stdout. No daemon, no database, no background process — just a pure stdin-to-stdout pipe that runs in milliseconds.
Comparison
| claude-status | claude-statusline | ccstatusline | |
|---|---|---|---|
| Language | Python | Python | Node.js |
| Dependencies | 0 | 2 (psutil, colorama) | npm |
| Install time | ~2s | ~10s | ~15s |
| Cross-platform | Windows, macOS, Linux | Windows, macOS, Linux | Partial |
| Themes | 7 + custom | 100 | 1 |
| Burn rate | Yes | No | No |
| Budget monitoring | Yes | No | No |
| Session analytics | Yes | No | No |
| Two-line layout | Yes | Yes | No |
| Interactive setup | --setup |
init |
Manual |
| Analytics/Dashboard | No | Yes | No |
| Background daemon | No | Yes | No |
Our philosophy: Do one thing well. Show every metric you need, nothing you don't. Install in 2 seconds, work everywhere, break never.
Uninstall
pip uninstall claude-status
Then remove "statusLine" from ~/.claude/settings.json.
Contributing
See CONTRIBUTING.md.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file claude_status-0.2.0.tar.gz.
File metadata
- Download URL: claude_status-0.2.0.tar.gz
- Upload date:
- Size: 25.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b47605978bd181f9be7d11937b994e1d9fe85c8d086199815d081ad6015083e
|
|
| MD5 |
a0cdbd0c1fd1d206f5c6e8bc218950a1
|
|
| BLAKE2b-256 |
04d8220227a6e9966d55d5e9a7334371a6537577718fca4dc3fdbf753e979fce
|
Provenance
The following attestation bundles were made for claude_status-0.2.0.tar.gz:
Publisher:
publish.yml on mkalkere/claude-statusline
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
claude_status-0.2.0.tar.gz -
Subject digest:
2b47605978bd181f9be7d11937b994e1d9fe85c8d086199815d081ad6015083e - Sigstore transparency entry: 1228412652
- Sigstore integration time:
-
Permalink:
mkalkere/claude-statusline@fe411035450b62c1b1c078fa4c0b9dbb0e10ff8d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkalkere
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fe411035450b62c1b1c078fa4c0b9dbb0e10ff8d -
Trigger Event:
release
-
Statement type:
File details
Details for the file claude_status-0.2.0-py3-none-any.whl.
File metadata
- Download URL: claude_status-0.2.0-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ebf15770dc95a747c99367e08dedc68c5056fd9b25fd20c6e85b63735be35d1
|
|
| MD5 |
c0842d012dc5313cd7a6c6cf15a05a60
|
|
| BLAKE2b-256 |
ba901ecb47d04ce84bac4c339abb495183a9343d0a1ac512dbeb58602cce7172
|
Provenance
The following attestation bundles were made for claude_status-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on mkalkere/claude-statusline
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
claude_status-0.2.0-py3-none-any.whl -
Subject digest:
1ebf15770dc95a747c99367e08dedc68c5056fd9b25fd20c6e85b63735be35d1 - Sigstore transparency entry: 1228412718
- Sigstore integration time:
-
Permalink:
mkalkere/claude-statusline@fe411035450b62c1b1c078fa4c0b9dbb0e10ff8d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/mkalkere
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fe411035450b62c1b1c078fa4c0b9dbb0e10ff8d -
Trigger Event:
release
-
Statement type: