Claude Code has no built-in status bar for session stats - this extension fills that gap, showing model, tokens, context left, and cost live in VS Code.

Minimal by default. Turn on showModel and showSeverityTag for the model name and the severity tag:

There’s no public API for Claude Code session telemetry. This extension reads the same .jsonl transcript files Claude Code already writes to disk, under ~/.claude/projects/<workspace-path-with-slashes-replaced-by-dashes>/<session-id>.jsonl. It scans every folder in a (possibly multi-root) workspace for a matching directory and picks the most recently modified file as primary, re-parsing it on file changes plus a periodic poll as a fallback.
~/.claude/projects/. This extension has no other data source.Context % is just your last message, not the whole session. It tells you if your next message will fit, not how much you’ve used so far. The optional severity tag colors that percentage: CALM under 50%, MED 50-69%, WARN 70-89%, CRIT 90% or higher.
Hover the segment for a per-category token breakdown and the transcript path:

Click the segment, or run Claude Simple Stats Bar: Open Session Panel:

last active <time> for a still-running session, or a scaled ended <time> for one that’s finished. Only the 6 most recent show by default - click Show more sessions to reveal the rest. With more than one session running, use Make primary, or the Switch Primary Session command, to pick which one shows in the status bar - the pick persists across VS Code restarts.| Setting | Default | What it does |
|---|---|---|
claudeSimpleStatsBar.pollIntervalMs |
2000 |
How often to re-check the transcript file. |
claudeSimpleStatsBar.contextWindowTokens |
0 |
Override the model’s context window size. 0 auto-detects. |
claudeSimpleStatsBar.showContextBar |
false |
Show the 6-segment fill bar next to the context-usage tag. |
claudeSimpleStatsBar.showModel |
false |
Show the model name in the status bar. |
claudeSimpleStatsBar.showSeverityTag |
false |
Show the CALM/MED/WARN/CRIT severity tag next to the context %. |
claudeSimpleStatsBar.pricing |
{} |
Per-model USD rates per 1M tokens. See Cost estimates. |
| Command | What it does |
|---|---|
Claude Simple Stats Bar: Refresh |
Force a re-read of the current transcript. |
Claude Simple Stats Bar: Open Session Panel |
Open the webview panel (also bound to clicking the Claude segment). |
Claude Simple Stats Bar: Switch Primary Session |
Pick which concurrent session in this workspace is tracked as primary. |
Built-in USD rates ship for the current Sonnet/Opus/Haiku/Fable lineup (as of 2026-08), so cost shows without any setup. Anthropic’s pricing changes over time - verify current rates before relying on this for anything beyond a rough estimate. Override a model’s rate, or add one that isn’t built in, via claudeSimpleStatsBar.pricing:
{
"claudeSimpleStatsBar.pricing": {
"claude-sonnet-5": {
"inputPerMillion": 3,
"outputPerMillion": 15,
"cacheWritePerMillion": 3.75,
"cacheReadPerMillion": 0.3
}
}
}
Models with neither a built-in default nor a configured entry show cost as n/a.
git clone https://github.com/rcanpahali/claude-simple-stats-bar.git
cd claude-simple-stats-bar
npm install && npm run package
code --install-extension claude-simple-stats-bar-*.vsix
Re-run npm run package after code changes and reinstall, or press F5 to launch an Extension Development Host without installing anything.
See CHANGELOG.md.