AI Vitals
Claude, Codex & Gemini usage and cost monitor.
The heartbeat of your AI tools.
Türkçe belge pakette: — Turkish docs are included in the package.
Your AI tools' vital signs in one panel: official quota percentages, active
5-hour block consumption, daily and historical usage, estimated costs and a
monthly projection — fully local, fully private.
Features
- Status bar pulse:
⌁ 42% — the rhythm mark turns from vivid green to
orange, then red as consumption grows; at the danger threshold it blinks
like a heartbeat. Prefer classic background chips? aiVitals.statusBar.useBackground.
- Dashboard: click the status bar — Vitals Score ring, per-provider cards
with countdowns, daily history chart, model breakdown and monthly cost projection.
- Early warning: one-time notifications per block when thresholds are
crossed, plus a burn-rate based depletion estimate: "at this pace your
budget runs out around 4:40 PM".
- Local & private: data is read from the tools' own local logs and
credentials. Nothing is sent anywhere except the providers' own official
API endpoints. No accounts, no telemetry.
Providers
| Provider |
Data source |
What you get |
| Claude |
Official quota API + ~/.claude/projects logs |
Official percentages (incl. web usage) + cost analytics |
| ChatGPT (Codex) |
Official rate_limits in rollout logs + token records |
Official quota (as of last session) + history archive |
| Gemini |
~/.gemini/tmp CLI session records |
History archive (Google discontinued consumer CLI on June 18, 2026) |
| Copilot |
— |
Info card (org-managed licenses don't expose usage via personal API) |
Every provider can be shown/hidden via aiVitals.<provider>.enabled;
hidden providers are not scanned at all.
Official quotas
Claude — if Claude Code is installed, AI Vitals reads the official
quota percentages from Anthropic using Claude Code's own OAuth token: the
same data as the /usage panel (5-hour session, weekly and per-model
windows, reset times). Official data includes web/mobile usage since the
counter lives server-side. The token is read from
~/.claude/.credentials.json read-only, sent only to
api.anthropic.com, never stored or forwarded. The endpoint is
undocumented; if unavailable, AI Vitals silently falls back to local
log-based budget estimates. Disable via aiVitals.claude.useOfficialApi: false.
Codex — Codex CLI writes the official quota snapshot it receives from
OpenAI (session + weekly windows) into its session logs on every turn.
AI Vitals reads the freshest record and shows official percentages while the
windows are still valid. Data is "as fresh as your last Codex session";
stale records are not shown, the card states the last capture date instead.
Estimate mode: without official data, the displayed percentage is an
estimate against your configurable token budget
(aiVitals.claude.blockTokenBudget).
Scope: AI Vitals tracks CLI/editor usage (Claude Code, Codex CLI,
Gemini CLI). Web and mobile usage draws from the same subscription quota
but produces no local logs — it is only visible through official quota data.
Settings
| Setting |
Default |
Description |
aiVitals.updateIntervalSeconds |
30 |
Refresh interval |
aiVitals.warningThreshold |
70 |
Orange threshold (%) |
aiVitals.dangerThreshold |
90 |
Red + blink threshold (%) |
aiVitals.historyDays |
30 |
How far back history scans go |
aiVitals.notifications.enabled |
true |
Threshold notifications |
aiVitals.claude.enabled |
true |
Show/hide the Claude card |
aiVitals.claude.useOfficialApi |
true |
Read official quota (falls back to estimate) |
aiVitals.claude.blockTokenBudget |
2,000,000 |
Token budget per block (estimate mode) |
aiVitals.claude.dataDirs |
[] |
Custom Claude log directories |
aiVitals.codex.enabled |
true |
Show/hide the ChatGPT (Codex) card |
aiVitals.codex.dataDirs |
[] |
Custom Codex session directories |
aiVitals.gemini.enabled |
true |
Show/hide the Gemini card |
aiVitals.gemini.dataDirs |
[] |
Custom Gemini CLI data directories |
aiVitals.copilot.enabled |
true |
Show/hide the Copilot info card |
aiVitals.statusBar.useBackground |
false |
Background chips instead of colored icon |
Commands
AI Vitals: Open Dashboard — opens the panel (same as clicking the status bar)
AI Vitals: Refresh Usage — full rescan right now
Honesty principles
Cost figures are estimates computed from local logs using public API
prices — not billing data. Quota percentages are official where available
and clearly labeled as estimates where not. Cards state their data source
and freshness. When a provider can't be tracked (org-managed Copilot,
discontinued consumer Gemini CLI), the card says so instead of pretending.
Roadmap
- Antigravity provider (Google's successor to Gemini CLI — local quota state)
- Realtime Codex quota via app-server
- Copilot: GitHub billing API for individual licenses (PAT + Secret Storage)
- Usage history charts and recommendations
Development
npm install
npm run compile # type check + lint + esbuild
# Press F5 to launch the Extension Development Host