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 tokens (or sessions/messages) for Claude and Codex, configurable.
- 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
~/.codex/sessions (and ~/.codex/archived_sessions) — Codex CLI session logs
Settings
| Setting |
Default |
Description |
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: 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. They are a rough guide, not a bill — published prices change over time, and any model not in the table shows no cost rather than a guess. Token and message counts are exact; dollar figures are approximate.
Enjoying Vibalytics? Support development on Patreon. 💜