Vibalytics
Local activity stats for Claude Code and Codex CLI usage, right inside VS Code - tokens, sessions, messages, cost estimates, and per-model breakdowns, all parsed entirely from your own machine.
Why
If you live in Claude Code or Codex, you have no easy way to see how much you're actually using them. Vibalytics reads the session logs those tools already write to disk and turns them into a dashboard - no Vibalytics account and no API keys. Data stays on your computer unless you explicitly enable cross-device Settings Sync.
Features
- Status bar metric - a live glance at today's combined Claude + Codex tokens (or sessions/messages), configurable. Hover for the per-tool split.
- Plan limits in the status bar - when Claude Code or Codex has left a usage reading on disk, an extra item on the right of the status bar, badged with the Anthropic or OpenAI logo, shows how much of the weekly limit is left and when it resets, e.g.
77% (1d). Hover for both the 5-hour and weekly windows and their reset times. Hide or restore each with Vibalytics: Toggle Claude Plan Usage / Toggle Codex Plan Usage.
- Sidebar dashboard - a compact activity view in the VS Code activity bar: recent activity, last-week chart, a 10-week heatmap, top models, recent sessions, and top projects.
- Full dashboard panel - a wide, tabbed view (open via the status bar or the Expand button):
- Overview - all-time / today / this-week / this-month totals, token composition (input · output · cache read · cache write), and rolling usage windows (last hour / 5 hours / 7 days).
- Models - per-model token, request, and estimated-cost breakdown.
- Projects - filterable, sortable table of usage by workspace.
- Sessions - recent sessions with per-model filtering.
- Cache hit rate surfaced inline, so you can see how much of your usage is served from prompt cache.
- Cost estimates - a rough
~$ figure per model/project from a built-in pricing table (best-effort; see note below).
Privacy
Everything is computed locally by reading log files. Vibalytics does not use API keys or make its own network requests.
Cross-device usage sync is off by default. While it remains off, your usage data stays on this machine. If you explicitly enable vibalytics.sync.enabled, Vibalytics gives a summarized usage snapshot to VS Code Settings Sync, which may upload it through Microsoft's Settings Sync service. That snapshot includes token and message totals, daily and hourly buckets, model and project names, and recent session summaries. It does not include prompts, responses, or raw log contents. Synced snapshots are content-deduplicated and limited to at most once per minute per machine.
It reads:
~/.claude/projects - Claude Code session logs
%LOCALAPPDATA%\Claude-Data\...\local-agent-mode-sessions - Claude Desktop agent mode transcripts (Windows)
~/.codex/sessions (and ~/.codex/archived_sessions) - Codex CLI session logs
Settings
| Setting |
Default |
Description |
vibalytics.statusBar.enabled |
true |
Show the Vibalytics status bar items (usage totals and, when detected, plan limits). |
vibalytics.statusBar.metric |
tokens |
What the status bar shows: tokens, sessions, or messages. |
vibalytics.statusBar.period |
today |
Time window for the status bar: today, week, or allTime. |
vibalytics.refreshIntervalSeconds |
30 |
How often to poll log files for changes. |
vibalytics.claudeCode.logsPath |
(auto) |
Override the Claude Code logs directory. |
vibalytics.codex.logsPath |
(auto) |
Override the Codex CLI logs directory. |
vibalytics.codex.includeArchived |
true |
Include ~/.codex/archived_sessions in totals. |
vibalytics.sync.enabled |
false |
Share summarized usage through VS Code Settings Sync. Writes are limited to at most once per minute per machine. |
Commands
- Vibalytics: Open Usage Dashboard
- Vibalytics: Refresh Usage Stats
- Vibalytics: Toggle Status Bar Items - show or hide the Vibalytics status bar entries.
- Vibalytics: Full Rescan (clear cache) - re-reads all logs from scratch (useful after upgrading).
Note on cost estimates
Costs are estimated from a built-in, hardcoded price table matched by model family, including cache read/write and long-context rates. They are a rough guide, not a bill, since published prices change over time. Models not in the table show no cost by default; turn on Estimate unpriced models in the dashboard to include a guess for them. Token and message counts are exact; dollar figures are approximate.
Enjoying Vibalytics? Support development on Patreon. 💜