Powerline-style statusline for ClaudeCode
Project description
Claude Code Status Line
Introduction
Powerline-style status line for Claude Code.
Requires a Nerd Font installed and setup as your terminals default font.
Recommendation is to install either:
- FiraCode Nerd Font
- JetBrainsMono Nerd Font
Segments
project > branch_name > ai_model > ctx% | tokens | cost > quota / usages / enterprise > cli | mcp
Example (Pro/Max plan):
my-app > feat/abc123 > Opus 4.6 > 12% | 58.3k | 1.42$ > 34% (2h05m) > 61% (4.2d) > cli | mcp
Example (Enterprise plan):
my-app > feat/abc123 > Opus 4.6 > 12% | 58.3k | 1.42$ > $78.50 22d > cli | mcp
Segment breakdown
| # | Segment | Description |
|---|---|---|
| 1 | Directory | Current working directory name. |
| 2 | Git branch | Branch name with color coding: red for main/master, yellow for staging, blue otherwise. Shows worktree icon if in a worktree. And, language icon, based on best guess. |
| 3 | Model | Active Claude model name. |
| 4 | Context | Context window usage: percentage, input tokens, and session cost (USD). Turns red at 80%+ usage. |
| 5a | Window quota | (Pro/Max only) 5-hour rolling usage percentage and time until reset. |
| 5b | Weekly quota | (Pro/Max only) 7-day usage percentage and time until reset. |
| 5c | Enterprise | (Enterprise only) Monthly cumulative cost* (all sessions) and days remaining in billing period. |
| 6a | CLI Services | Auth status for CLI services (green = authenticated, red = not): GitHub CLI, Atlassian CLI. |
| 6b | Services | Auth status for MCP services (green = authenticated, red = not): Notion MCP, Atlassian MCP, Figma MCP. |
* Cost is estimated, and requires the cost tracking hook to function.
Detected languages
The branch segment appends an icon for the detected project language:
- Terraform
- Node.js
- TypeScript
- Python
- Rust
- Go
- Java
- Perl
- Shell
Installation
pip install cc-statusline
It is recommended to install this status line with the cost tracking hook:
cc-costtrack
see cc-costtrack.
Configuration
Add to ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "cc-statusline"
}
}
Caching
Data is cached at multiple tiers to keep the status line fast:
| TTL | Data |
|---|---|
| 1s | Git branch, stdin JSON (session data). |
| 10s | CLI/MCP auth status checks. |
| 60s | Directory name, language detection, monthly cost. |
| 5m | API rate limit usage (Pro/Max). |
Development
Set up a virtual environment:
python3 -m venv .venv
Activate the virtual environment before running any of the steps below:
source .venv/bin/activate
Testing
pip install -e ".[test]"
pytest
Build and publish
Build the distribution:
pip install -e ".[package]"
python -m build
This creates dist/ with .tar.gz and .whl files.
Configure Publishing to Pypi
Configure PyPI credentials in ~/.pypirc:
[distutils]
index-servers =
pypi
testpypi
[pypi]
username = __token__
password = pypi-<your-api-token>
[testpypi]
repository = https://test.pypi.org/legacy/
username = __token__
password = pypi-<your-test-api-token>
API tokens can be created at:
Alternatively, set credentials via environment variables instead of ~/.pypirc:
export TWINE_USERNAME=__token__
export TWINE_PASSWORD=pypi-<your-api-token>
To target TestPyPI, override the repository URL:
export TWINE_REPOSITORY_URL=https://test.pypi.org/legacy/
Publishing to Test Pypi
To publish to TestPyPI first:
pip install -e ".[package,publish]"
# Using ini file:
twine upload --repository testpypi dist/*
# Or, with environment variables:
export TWINE_REPOSITORY_URL=https://test.pypi.org/legacy/
twine upload dist/*
Publishing to Pypi
Publish to PyPI:
pip install -e ".[publish]"
twine upload dist/*
Project details
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 cc_statusline-0.0.2.tar.gz.
File metadata
- Download URL: cc_statusline-0.0.2.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cb5c28c64eb53b8d57f05d8b3100e1ce40eb6b1ffd55e6487ab6818315d36c8
|
|
| MD5 |
dfcfa14a61a0006372b5938fddc80ca7
|
|
| BLAKE2b-256 |
2f2d9858773ee8cc38269afca4d08fc7a83cb1e9f6c02ccefc33981262bdeecb
|
File details
Details for the file cc_statusline-0.0.2-py3-none-any.whl.
File metadata
- Download URL: cc_statusline-0.0.2-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bea7196cf1e3b2708c8fec5302e4ae04458d4319f8a2435cd9d46b3dd4e123dd
|
|
| MD5 |
f6dc24a79668ef084ab611e43da963ed
|
|
| BLAKE2b-256 |
97d2103079ea5c774df79bd5457abbb03f3697f604de275602241aa65c7f76e2
|