Skip to main content

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

Installation

pip install cc-statusline

On newer Linux systems, install with:

pip3 install --break-system-packages 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"
  }
}

Upgrade

Upgrade with pip regularly:

pip install cc-statusline -U

On newer Linux systems, install with:

pip3 install --break-system-packages cc-statusline -U

Features

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 / Anthropic API key):

 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 Cumulative (Enterprise / API key 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

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

cc_statusline-0.0.5.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cc_statusline-0.0.5-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file cc_statusline-0.0.5.tar.gz.

File metadata

  • Download URL: cc_statusline-0.0.5.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for cc_statusline-0.0.5.tar.gz
Algorithm Hash digest
SHA256 04b1b52ecd5352642c244093142f7c9d06d8496a9786b76a0c36b6b9948d9e6a
MD5 ee1506cc1c2f21b455350622c5005a38
BLAKE2b-256 5b0cb54aee41e791c392692104598bf8cd902749536feda9216fd99e9502cbb1

See more details on using hashes here.

File details

Details for the file cc_statusline-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: cc_statusline-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for cc_statusline-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0a0cada6ace21ca37a8d18411e66467288d7967c250aa383b0e44763bbb8b03f
MD5 c90c27182be4a7001b1321f7103f1786
BLAKE2b-256 ae06c83863374973e7d60da61746a589d5757bc2252661adf1356998ddf3125c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page