Customizable statusline formatter for Claude Code CLI
Project description
ccstatusline-py
A Python/uv port of ccstatusline — customizable statusline for Claude Code CLI. No Node.js required.
Installation
Install from PyPI with uv (recommended) — puts a ccstatusline binary on your PATH:
uv tool install ccstatusline-py
Or run it ad-hoc without installing:
uvx --from ccstatusline-py ccstatusline
To install the latest unreleased version directly from GitHub:
uv tool install --python 3.11 git+https://github.com/MChromiak/cc_statusline_py.git
Claude Code integration
Add to ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "ccstatusline",
"padding": 0
}
}
(If you didn't uv tool install and want to run on demand, use "command": "uvx --from ccstatusline-py ccstatusline" instead.)
Configuration
Run interactively to configure visually:
ccstatusline
(If you didn't uv tool install, use uvx --from ccstatusline-py ccstatusline instead.)
Config is saved to ~/.config/ccstatusline-py/settings.toml. Existing configs from the original ccstatusline (JSON) or from earlier ccstatusline_py/ (underscore) installs are migrated automatically on first run.
Customising widget labels
Every widget supports an optional prefix field that controls the icon/label shown before its value:
[[lines]]
widgets = [
{ type = "session_cost", prefix = "$ " }, # custom prefix
{ type = "git_branch", prefix = "" }, # no prefix
{ type = "model" }, # widget default
]
To turn the built-in icons off everywhere, set minimalist_mode = true at the top level or color_level = "none".
Examples
Each example below is a complete ~/.config/ccstatusline-py/settings.toml. Available widget types include model, cwd, git_branch, git_status, context_pct, context_bar, session_cost, session_duration, tokens_used, burn_rate, block_reset_timer, separator, and more.
1. Minimal — model name and git branch
color_level = "none"
minimalist_mode = true
[powerline]
enabled = false
[[lines]]
widgets = [
{ type = "model", padding = 0 },
{ type = "separator", padding = 1 },
{ type = "git_branch", padding = 0 },
]
Renders as:
claude-sonnet-4-5 │ main
2. Powerline — model, branch, context bar, cost
color_level = "truecolor"
[powerline]
enabled = true
separator = ""
left_cap = ""
right_cap = ""
[[lines]]
widgets = [
{ type = "model", fg = "#ffffff", bg = "#005f87", padding = 1 },
{ type = "git_branch", fg = "#1e1e2e", bg = "#a6e3a1", padding = 1 },
{ type = "context_bar", fg = "#1e1e2e", bg = "#f9e2af", padding = 1 },
{ type = "session_cost", fg = "#1e1e2e", bg = "#f5c2e7", padding = 1 },
]
Renders coloured powerline-style segments:
claude-sonnet-4-5 main ████░░░░░░ $0.0234
(With a Nerd Font, the segment caps are rendered as connected arrows.)
Every data-bearing widget ships a built-in Nerd Font icon plus a short label (e.g. Model: …, Branch: …, Cost: …), so the rendered output is closer to Model: claude-sonnet-4-5 Branch: main Ctx ████░░░░░░ Cost: $0.0234. Defaults are hidden automatically when minimalist_mode = true or color_level = "none". See "Customising widget labels" below to override or disable per widget.
3. Two-line — overview line + project line
color_level = "256"
[powerline]
enabled = false
[[lines]]
widgets = [
{ type = "model", fg = "#5fafff", padding = 0 },
{ type = "separator", padding = 1 },
{ type = "context_pct", fg = "#ffaf00", padding = 0 },
{ type = "separator", padding = 1 },
{ type = "session_cost", fg = "#aaffaa", padding = 0 },
]
[[lines]]
widgets = [
{ type = "cwd", fg = "#888888", padding = 0 },
{ type = "separator", padding = 1 },
{ type = "git_branch", fg = "#ff87d7", padding = 0 },
{ type = "git_status", fg = "#ffaf00", padding = 1 },
]
Renders two lines:
claude-sonnet-4-5 │ 42.5% │ $0.0234
~/projects/myapp │ main ✔
Requirements
- Python 3.11+
- uv
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 ccstatusline_py-0.1.2.tar.gz.
File metadata
- Download URL: ccstatusline_py-0.1.2.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff2b914531801db1593234179c2b3eff5d5b102ca78182dcc1ff6708af394c2e
|
|
| MD5 |
ed435558ce0646f526caaf1e91b94e3d
|
|
| BLAKE2b-256 |
99871d2611b52376c1db844f6964e570102f998178285f0d9cabef69690bc486
|
Provenance
The following attestation bundles were made for ccstatusline_py-0.1.2.tar.gz:
Publisher:
publish.yml on MChromiak/cc_statusline_py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ccstatusline_py-0.1.2.tar.gz -
Subject digest:
ff2b914531801db1593234179c2b3eff5d5b102ca78182dcc1ff6708af394c2e - Sigstore transparency entry: 1433482337
- Sigstore integration time:
-
Permalink:
MChromiak/cc_statusline_py@1bac1b461aa39e4b964bc6f648043c24e33f18f1 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/MChromiak
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1bac1b461aa39e4b964bc6f648043c24e33f18f1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file ccstatusline_py-0.1.2-py3-none-any.whl.
File metadata
- Download URL: ccstatusline_py-0.1.2-py3-none-any.whl
- Upload date:
- Size: 17.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba8cf103a91ec1ef077c41ad2545084d6db70a6ccd202adf2349d56c1828d002
|
|
| MD5 |
7a7451f92e0dc91bfb668d25c2d10320
|
|
| BLAKE2b-256 |
d47db223ee2d7e99f24f74a3de393c91f2a7af8750a2798ae1ef48779b952914
|
Provenance
The following attestation bundles were made for ccstatusline_py-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on MChromiak/cc_statusline_py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ccstatusline_py-0.1.2-py3-none-any.whl -
Subject digest:
ba8cf103a91ec1ef077c41ad2545084d6db70a6ccd202adf2349d56c1828d002 - Sigstore transparency entry: 1433482624
- Sigstore integration time:
-
Permalink:
MChromiak/cc_statusline_py@1bac1b461aa39e4b964bc6f648043c24e33f18f1 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/MChromiak
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1bac1b461aa39e4b964bc6f648043c24e33f18f1 -
Trigger Event:
release
-
Statement type: