Claude Code statusline with real subscription usage data
Project description
Claude Vibeline
A custom statusline for Claude Code that shows real subscription usage data from the Anthropic API - designed for Pro, Max, and Team users.
Unlike token-based cost trackers, Claude Vibeline shows your actual rate limit utilization and reset countdowns as reported by Anthropic.
my-project │ Opus 4.6 (high) │ cache ● 14:32 │ ctx [###-----] 42% │
sess [##------] 19% 3h12m │ week [--------] 3% 5d20h │ extra 1.23/20€ 7d0h
Sections automatically wrap to multiple lines based on terminal width, with a trailing │ to indicate continuation.
Note: This project was developed almost entirely through AI-assisted coding with Claude Code, with human oversight over all design decisions, architecture, and code review.
Features
From Claude Code's session data:
- Project & model - project name, active model, and effort level
- Context window - how much of the context window is used
- Prompt cache - tracks Anthropic's 5-minute prompt cache TTL for subscription users. Computed from user message timestamps in the session transcript:
● 14:32— cache is warm, expires at 14:32↻ 14:32— cache expired after the last user message but has been refreshed○ 14:27— cache expired at 14:27
From Anthropic's OAuth API (subscription rate limits, not per-token costs):
- Session limit - 5-hour rate limit utilization with reset countdown
- Weekly limit - 7-day rate limit utilization with reset countdown
- Per-model limits - weekly Opus and Sonnet limits with reset countdowns, shown when applicable
- Extra usage - spend against your monthly extra usage cap with reset countdown, shown only if enabled
Every section is individually toggleable via CLI flags.
Installation
Available on PyPI. We recommend using uv.
To install:
uv tool install claude-vibeline
To update:
uv tool upgrade claude-vibeline
Setup
Add to ~/.claude/settings.json:
{
// ...
"statusLine": {
"type": "command",
"command": "claude-vibeline"
}
}
Options
| Flag | Description |
|---|---|
--columns N |
Terminal width in characters (default: 80) |
--bar-width N |
Progress bar width in characters (default: 8) |
--currency S |
Currency symbol for extra usage (default: €) |
--no-project |
Hide project name |
--no-model |
Hide model and effort level |
--no-cache |
Hide prompt cache status |
--no-context |
Hide context window usage |
--no-usage |
Skip fetching usage data entirely |
--no-session |
Hide session (5h) usage |
--no-weekly |
Hide weekly (7d) usage |
--no-opus |
Hide weekly Opus usage |
--no-sonnet |
Hide weekly Sonnet usage |
--no-extra |
Hide extra usage spend |
--debug |
Log each statusline output to debug file |
Example with customizations:
{
// ...
"statusLine": {
"type": "command",
"command": "claude-vibeline --bar-width 5 --currency $ --no-cache --no-opus --no-sonnet"
}
}
my-project │ Opus 4.6 (high) │ ctx [##---] 42% │ sess [#----] 19% 3h12m │
week [-----] 3% 5d20h │ extra 1.23/20$ 7d0h
If everything fits on a single line, no wrapping occurs and no trailing │ is shown.
Usage data
Usage data is fetched from an undocumented, unstable Anthropic OAuth endpoint. It requires a valid OAuth token from a Claude Pro, Max, or Team subscription.
Responses are cached locally for 60 seconds. Cached usage data is used when the token expires or the API is unavailable. If no token or cache exists, usage sections are omitted. Use --no-usage to disable API calls entirely.
Development
Requires uv.
Clone and setup:
git clone https://github.com/hstojanovic/claude-vibeline.git
cd claude-vibeline
uv sync
Run checks:
uv run ruff format --check
uv run ruff check
uv run ty check
uv run pytest --cov
Build:
uv build
License
This project is licensed under the MIT license.
Claude Vibeline is an independent project and is not affiliated with or endorsed by Anthropic.
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 claude_vibeline-1.0.0.tar.gz.
File metadata
- Download URL: claude_vibeline-1.0.0.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24dc81c8316f39aa78fdbfb7d1e880a63daf515873cb5a74fdba0e8bb5eab3c6
|
|
| MD5 |
0c84b445f12f81c85a9a76fe6f557dc8
|
|
| BLAKE2b-256 |
8a54b3d65b9a03be25a2534860f3b94a2505d62430aeddf88fc978de0c4e374f
|
Provenance
The following attestation bundles were made for claude_vibeline-1.0.0.tar.gz:
Publisher:
publish.yml on hstojanovic/claude-vibeline
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
claude_vibeline-1.0.0.tar.gz -
Subject digest:
24dc81c8316f39aa78fdbfb7d1e880a63daf515873cb5a74fdba0e8bb5eab3c6 - Sigstore transparency entry: 1088712234
- Sigstore integration time:
-
Permalink:
hstojanovic/claude-vibeline@525864b1505c60cdb937b21e867c37ad91eb2d65 -
Branch / Tag:
refs/tags/1.0.0 - Owner: https://github.com/hstojanovic
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@525864b1505c60cdb937b21e867c37ad91eb2d65 -
Trigger Event:
push
-
Statement type:
File details
Details for the file claude_vibeline-1.0.0-py3-none-any.whl.
File metadata
- Download URL: claude_vibeline-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.8 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 |
0d78fdb7cda4cc4df1c403f77f680ed24d6b2bd2dabb62dbad3217768705a639
|
|
| MD5 |
d432f60458f03bb2bdf86d2b39ab94a7
|
|
| BLAKE2b-256 |
5a35391ade950f1808dfbdbc12f6dc7845d89d2a151bc3c0cb8e1a925fd20558
|
Provenance
The following attestation bundles were made for claude_vibeline-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on hstojanovic/claude-vibeline
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
claude_vibeline-1.0.0-py3-none-any.whl -
Subject digest:
0d78fdb7cda4cc4df1c403f77f680ed24d6b2bd2dabb62dbad3217768705a639 - Sigstore transparency entry: 1088712283
- Sigstore integration time:
-
Permalink:
hstojanovic/claude-vibeline@525864b1505c60cdb937b21e867c37ad91eb2d65 -
Branch / Tag:
refs/tags/1.0.0 - Owner: https://github.com/hstojanovic
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@525864b1505c60cdb937b21e867c37ad91eb2d65 -
Trigger Event:
push
-
Statement type: