ccsl
Enhanced status line for Claude Code showing context usage, session time, and weekly budget.
[Opus 5.5·med] | 📁 cc-status-bar | 🌿 main M1 | 🔥15:12
Context: █████████▒▒▒▒▒▒▒▒▒▒▒ [44%] 443.3K/1.0M ♻️ 50% cached
Session: ▆█▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ [9%] 44.6M token (13:40-18:40)
Weekly: ▃▆▄▁▁▂▅█▇▃▂▁▁▁▁▁▁▁▁▁ [23%] 3d9h43m
With a metered-billing model (e.g. Fable 5) Line 1 also carries the cost of the latest turn and extra-usage credit ($7.36 | Ext 23% $11.50/$50), and Lines 3–4 add each window's metered spend.
Install
It's a single dependency-free Python file. Drop it in and point Claude Code at it:
mkdir -p ~/.claude
curl -fsSL https://raw.githubusercontent.com/usedhonda/statusline/main/statusline.py -o ~/.claude/statusline.py
python3 ~/.claude/statusline.py --setup
Restart Claude Code. Done — it keeps itself up to date automatically.
Other install methods
pip
pip install ccsl
ccsl --setup
From source
git clone https://github.com/usedhonda/statusline.git
cd statusline
python3 install.py
Homebrew (being retired — prefer the curl install above)
brew install usedhonda/tap/ccsl
ccsl --setup
What it shows
- Line 1 — Model with its reasoning effort (
·med) and⚡in fast mode, directory, git branch, the open PR with its review state (#17✓), and the time the prompt cache goes cold (🔥15:12,❄once cold). Metered-billing models (e.g. Fable 5) add the cost of the latest turn and extra-usage credit consumption (Ext) - Line 2 — Context window token usage with progress bar and cache ratio
- Line 3 — Session sparkline with 5-hour utilization, token count, time range, and the 5-hour window's metered spend
- Line 4 — Weekly sparkline with 7-day token distribution, remaining time, the 7-day window's metered spend, extra usage
Built for 1M context — the context line scales to the active window size (e.g. 443K/1.0M). A (200K) badge on the model marks a 1M-capable model running with a reduced window.
Features
- Metered-model cost tracking — models billed via usage credits (Fable 5) show what the latest turn cost, computed per-message so mixed-model sessions only count the metered share
- Context window progress bar with color warnings (yellow 80%, red 90%)
- 5-hour session sparkline (20 segments, 15min each)
- Weekly usage sparkline with remaining time and budget tracking
- Responsive layout adapting to terminal width and height
- Agent team support with single-line format and dead agent warnings
- Schedule integration showing upcoming calendar events
Customize
Control which lines to display:
ccsl --show all # All 4 lines (default)
ccsl --show simple # Lines 2 and 3 only
ccsl --show 1,2 # Specific lines
Environment variables (set them in the statusLine command):
STATUSLINE_DISPLAY_MODE=full|compact|tight— pin a layout instead of picking one from the terminal width. Handy in narrow tmux panes, wherefullkeeps the long labels and trims the line endsCCSL_KEEP_WARM_HOURS=N— keep the prompt cache warm (off by default). A session that has been idle for less than N hours gets one tiny[keep-alive]turn typed into its tmux pane just before the cache expires, so the next real turn doesn't pay to re-cache the whole history. It only types into an empty prompt, and steps aside when CCStatusBar's own keep-warm is running
"statusLine": {
"type": "command",
"command": "STATUSLINE_DISPLAY_MODE=full CCSL_KEEP_WARM_HOURS=4 ~/.claude/statusline.py --show all"
}
Requirements
- Python 3.9+
- Claude Code
Metadata
Release files for ccsl 1.0.31
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ccsl-1.0.31.tar.gz | 56.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ccsl-1.0.31-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 112.0 kB
Release files / ccsl-1.0.31.tar.gz
| Download URL | ccsl-1.0.31.tar.gz |
|---|---|
| Size | 56.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cdcc4411366dbc7a8f6f894fc0f0a23a49131e49a2f994ce2f271d215826cf87
|
|
BLAKE2b-256 checksum How to use checksums |
5913a1665e0017b4a7bfb141bbc7065673fb98e1ab934d2bf512cee12008709a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / ccsl-1.0.31-py3-none-any.whl
| Download URL | ccsl-1.0.31-py3-none-any.whl |
|---|---|
| Size | 55.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e4071ec24e263d373cc0fa5d782dec586ca3ae3f330df12819ca51489722c22
|
|
BLAKE2b-256 checksum How to use checksums |
c9914614a77e84559325347c6bb8b09e0cda6913813e0869bb41c4330a4af6fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency log