vibestats
v1.3.10
Published
AI coding stats - usage tracking and annual wrapped for Claude Code & Codex
Maintainers
Readme
vibestats
AI coding stats CLI for Claude Code and OpenAI Codex. Track your usage and generate annual "Spotify Wrapped" style summaries.
Installation
npm install -g vibestats
# or run directly
npx vibestatsUsage
# Usage stats (default)
vibestats # Daily usage table
vibestats --monthly # Monthly aggregation
vibestats --model # Aggregate by model
vibestats --total # Show only totals
vibestats --kimi # Kimi family stats only
vibestats --minimax # MiniMax family stats only
# Wrapped summary
vibestats --wrapped # Annual wrapped summary
# Claude local diagnostics
vibestats --claude-system
vibestats --claude-limitsCLI Flags
Usage Mode (default)
| Flag | Description |
|------|-------------|
| --monthly | Aggregate by month |
| --model | Aggregate by model |
| --sessions | Aggregate by session |
| --total | Show only totals |
| --kimi | Show only Kimi family stats |
| --minimax | Show only MiniMax family stats |
| --since YYYY-MM-DD | Filter from date |
| --until YYYY-MM-DD | Filter to date |
| --last N | Last N days (shorthand: --last7, --last30, etc.) |
| --compact, -c | Compact table (hide cache columns) |
| --json | Output raw JSON |
| --quiet, -q | Quiet output (totals line) |
| --share, -s | Generate a shareable usage URL |
| --project, -p | Current project only (Claude Code) |
| --claude-system | Inspect ~/.claude.json account and app state |
| --claude-limits | Inspect ~/.claude/usage-data, cache freshness, and local limit signals |
Wrapped Mode
| Flag | Description |
|------|-------------|
| --wrapped | Generate wrapped summary |
| --json | Output raw JSON stats |
| --quiet, -q | Only output the shareable URL |
| --no-short | Disable shortlink generation |
Data Source
| Flag | Description |
|------|-------------|
| --codex | OpenAI Codex only |
| --combined | Claude + Codex combined |
Config
| Flag | Description |
|------|-------------|
| --init | Create config file |
| --config | Show current config |
| --url <url> | Custom base URL for shareable links/pages |
Config File
vibestats --initCreates ~/.vibestats.json:
{
"baseUrl": "https://vibestats.wolfai.dev",
"outputFormat": "normal",
"theme": { "enabled": true },
"hideCost": false
}Data Sources
| Source | Location |
|--------|----------|
| Claude Code | ~/.claude/projects/**/*.jsonl |
| OpenAI Codex | ~/.codex/sessions/*.jsonl |
Additional Claude diagnostic files:
~/.claude.json~/.claude/stats-cache.json~/.claude/usage-data/session-meta/*.json~/.claude/usage-data/facets/*.json
Session Semantics
sessionsmeans canonical top-level sessions- subagents are counted separately and shown as a compact session mix notice
- token and cost totals still include subagent usage
- Claude subagents are inferred from sidechain/session metadata
- Codex subagents are inferred from spawned-thread metadata
Requirements
- Node.js 18+
- Claude Code or OpenAI Codex CLI usage data
View Online
Visit vibestats.wolfai.dev to view shares in the browser.
License
MIT
