Vibe Coding Tracker - AI coding assistant telemetry/usage parser, aggregate JSONL events into CodeAnalysis results
npm install vibe-coding-tracker











Track your AI coding costs in real-time. Vibe Coding Tracker is a powerful CLI tool that helps you monitor and analyze your Claude Code, Codex, Copilot, and Gemini usage, providing detailed cost breakdowns, token statistics, and code operation insights.
> Note: CLI examples use the short alias vct. If you built from source, the compiled binary is named vibe_coding_tracker; create an alias or replace vct with the full name when running commands.
---
Stop wondering how much your AI coding sessions cost. Get real-time cost tracking with automatic pricing updates from LiteLLM.
Choose your preferred view:
- Interactive Dashboard: Auto-refreshing terminal UI with live updates
- Static Reports: Professional tables for documentation
- Script-Friendly: Plain text and JSON for automation
- Full Precision: Export exact costs for accounting
Automatically detects and processes logs from Claude Code, Codex, Copilot, and Gemini. No setup required—just run and analyze.
- Token usage by model and date
- Cost breakdown by cache types
- File operations tracking
- Command execution history
- Git repository information
---
| Feature | Description |
| -------------------------- | -------------------------------------------------------------------- |
| 🤖 Auto-Detection | Intelligently identifies Claude Code, Codex, Copilot, or Gemini logs |
| 💵 Smart Pricing | Fuzzy model matching + daily cache for speed |
| 🎨 4 Display Modes | Interactive, Table, Text, and JSON outputs |
| 📈 Comprehensive Stats | Tokens, costs, file ops, and tool calls |
| ⚡ High Performance | Built with Rust for speed and reliability |
| 🔄 Live Updates | Real-time dashboard refreshes every second |
| 💾 Efficient Caching | Smart daily cache reduces API calls |
---
Choose the installation method that works best for you:
#### Method 1: Install from npm (Recommended ✨)
The easiest way to install - includes pre-compiled binaries for your platform, no build step required!
Choose any of the following package names (all are identical):
``bashMain package
npm install -g vibe-coding-tracker
Prerequisites: Node.js v22 or higher
Supported Platforms:
- Linux (x64, ARM64)
- macOS (x64, ARM64)
- Windows (x64, ARM64)
#### Method 2: Install from PyPI
For Python users - includes pre-compiled binaries for your platform, no build step required!
`bash
Install with pip
pip install vibe_coding_trackerInstall with uv (recommended for faster installation)
uv pip install vibe_coding_tracker
`Prerequisites: Python 3.8 or higher
Supported Platforms:
- Linux (x64, ARM64)
- macOS (x64, ARM64)
- Windows (x64, ARM64)
#### Method 3: Install from crates.io
Install using Cargo from the official Rust package registry:
`bash
cargo install vibe_coding_tracker
`Prerequisites: Rust toolchain 1.85 or higher
> Note: This project uses Rust 2024 edition and requires Rust 1.85+. Update your toolchain with
rustup update if needed.#### Method 4: Build from Source
For users who want to customize the build or contribute to development:
`bash
1. Clone the repository
git clone https://github.com/Mai0313/VibeCodingTracker.git
cd VibeCodingTracker2. Build release version
cargo build --release3. Binary location
./target/release/vibe_coding_tracker4. Optional: create a short alias
Linux/macOS:
sudo ln -sf "$(pwd)/target/release/vibe_coding_tracker" /usr/local/bin/vctOr install to user directory:
mkdir -p ~/.local/bin
ln -sf "$(pwd)/target/release/vibe_coding_tracker" ~/.local/bin/vct
Make sure ~/.local/bin is in your PATH
`Prerequisites: Rust toolchain 1.85 or higher
> Note: This project uses Rust 2024 edition and requires Rust 1.85+. Update your toolchain with
rustup update if needed.#### Method 5: Quick Install via Curl (Linux/macOS)
One-line installation script - automatically detects your platform and installs the latest release:
`bash
curl -fsSLk https://github.com/Mai0313/VibeCodingTracker/raw/main/scripts/install.sh | bash
`Prerequisites:
curl and tar (usually pre-installed)What it does:
- Detects your OS and architecture automatically
- Downloads the latest release from GitHub
- Extracts and installs to
/usr/local/bin or ~/.local/bin
- Creates the vct short alias automatically
- Skips SSL verification for restricted networksSupported Platforms:
- Linux (x64, ARM64)
- macOS (x64, ARM64)
#### Method 6: Quick Install via PowerShell (Windows)
One-line installation script - automatically detects your architecture and installs the latest release:
`powershell
powershell -ExecutionPolicy ByPass -c "[System.Net.ServicePointManager]::ServerCertificateValidationCallback={$true}; irm https://github.com/Mai0313/VibeCodingTracker/raw/main/scripts/install.ps1 | iex"
`Prerequisites: PowerShell 5.0 or higher (included in Windows 10+)
What it does:
- Detects your Windows architecture automatically (x64 or ARM64)
- Downloads the latest release from GitHub
- Installs to
%LOCALAPPDATA%\Programs\VibeCodingTracker
- Creates the vct.exe short alias automatically
- Adds to user PATH automatically
- Skips SSL verification for restricted networksNote: You may need to restart your terminal for PATH changes to take effect.
Supported Platforms:
- Windows 10/11 (x64, ARM64)
$3
`bash
View your usage with the short alias (if available)
vct usageOr run the binary built by Cargo
./target/release/vibe_coding_tracker usageAnalyze a specific conversation
./target/release/vibe_coding_tracker analysis --path ~/.claude/projects/session.jsonl
`> 💡 Tip: Use
vct as a short alias for vibe_coding_tracker to save typing—create it manually with ln -sf ./target/release/vibe_coding_tracker ~/.local/bin/vct (or any path you prefer).---
📖 Command Guide
$3
`bash
vct [OPTIONS]
Replace with
vibe_coding_tracker if you are using the full binary nameCommands:
usage Show token usage and costs (default: interactive)
analysis Analyze conversation files and export data
version Display version information
update Update to the latest version from GitHub releases
help Show help information
`---
💰 Usage Command
Track your spending across all AI coding sessions.
$3
`bash
Interactive dashboard (recommended)
vct usageStatic table for reports
vct usage --tablePlain text for scripts
vct usage --textJSON for data processing
vct usage --json
`$3
The tool scans these directories automatically:
-
~/.claude/projects/*.jsonl (Claude Code)
- ~/.codex/sessions/*.jsonl (Codex)
- ~/.copilot/history-session-state/*.json (Copilot)
- ~/.gemini/tmp/ (Gemini)$3
Live dashboard that updates every second
`
┌──────────────────────────────────────────────────────────────────┐
│ 📊 Token Usage Statistics │
└──────────────────────────────────────────────────────────────────┘
┌────────────┬──────────────────────┬────────────┬────────────┬────────────┬──────────────┬────────────┬────────────┐
│ Date ┆ Model ┆ Input ┆ Output ┆ Cache Read ┆ Cache Create ┆ Total ┆ Cost (USD) │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
│ 2025-10-01 ┆ claude-sonnet-4-20… ┆ 45,230 ┆ 12,450 ┆ 230,500 ┆ 50,000 ┆ 338,180 ┆ $2.15 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
│ 2025-10-02 ┆ claude-sonnet-4-20… ┆ 32,100 ┆ 8,920 ┆ 180,000 ┆ 30,000 ┆ 251,020 ┆ $1.58 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
│ 2025-10-03 ┆ claude-sonnet-4-20… ┆ 28,500 ┆ 7,200 ┆ 150,000 ┆ 25,000 ┆ 210,700 ┆ $1.32 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
│ 2025-10-03 ┆ gpt-4-turbo ┆ 15,000 ┆ 5,000 ┆ 0 ┆ 0 ┆ 20,000 ┆ $0.25 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
│ ┆ TOTAL ┆ 120,830 ┆ 33,570 ┆ 560,500 ┆ 105,000 ┆ 819,900 ┆ $5.30 │
└────────────┴──────────────────────┴────────────┴────────────┴────────────┴──────────────┴────────────┴────────────┘
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 💰 Total Cost: $5.30 | 🔢 Total Tokens: 819,900 | 📅 Entries: 4 | ⚡ CPU: 2.3% | 🧠 Memory: 12.5 MB │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 📈 Daily Averages │
│ │
│ Claude Code: 266,667 tokens/day | $1.68/day │
│ Codex: 20,000 tokens/day | $0.25/day │
│ Copilot: 15,000 tokens/day | $0.18/day │
│ Overall: 179,090 tokens/day | $1.20/day │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘Press 'q', 'Esc', or 'Ctrl+C' to quit
`Features:
- ✨ Auto-refreshes every second
- 🎯 Highlights today's entries
- 🔄 Shows recently updated rows
- 💾 Displays memory usage
- 📊 Summary statistics
- 📈 Daily averages by provider (Claude Code, Codex, Copilot, Gemini)
Controls: Press
q, Esc, or Ctrl+C to exit$3
Perfect for documentation and reports
`bash
vct usage --table
``
📊 Token Usage Statistics┌────────────┬──────────────────────┬────────────┬────────────┬────────────┬──────────────┬──────────────┬────────────┐
│ Date ┆ Model ┆ Input ┆ Output ┆ Cache Read ┆ Cache Create ┆ Total Tokens ┆ Cost (USD) │
╞════════════╪══════════════════════╪════════════╪════════════╪════════════╪══════════════╪══════════════╪════════════╡
│ 2025-10-01 ┆ claude-sonnet-4-20… ┆ 45,230 ┆ 12,450 ┆ 230,500 ┆ 50,000 ┆ 338,180 ┆ $2.15 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
│ 2025-10-02 ┆ claude-sonnet-4-20… ┆ 32,100 ┆ 8,920 ┆ 180,000 ┆ 30,000 ┆ 251,020 ┆ $1.58 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
│ 2025-10-03 ┆ claude-sonnet-4-20… ┆ 28,500 ┆ 7,200 ┆ 150,000 ┆ 25,000 ┆ 210,700 ┆ $1.32 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
│ 2025-10-03 ┆ gpt-4-turbo ┆ 15,000 ┆ 5,000 ┆ 0 ┆ 0 ┆ 20,000 ┆ $0.25 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
│ ┆ TOTAL ┆ 120,830 ┆ 33,570 ┆ 560,500 ┆ 105,000 ┆ 819,900 ┆ $5.30 │
└────────────┴──────────────────────┴────────────┴────────────┴────────────┴──────────────┴──────────────┴────────────┘
📈 Daily Averages (by Provider)
┌─────────────┬────────────────┬──────────────┬──────┐
│ Provider ┆ Avg Tokens/Day ┆ Avg Cost/Day ┆ Days │
╞═════════════╪════════════════╪══════════════╪══════╡
│ Claude Code ┆ 266,667 ┆ $1.68 ┆ 3 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┤
│ Codex ┆ 20,000 ┆ $0.25 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┤
│ Copilot ┆ 15,000 ┆ $0.18 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┤
│ OVERALL ┆ 179,090 ┆ $1.20 ┆ 5 │
└─────────────┴────────────────┴──────────────┴──────┘
`$3
Ideal for scripting and parsing
`bash
vct usage --text
``
2025-10-01 > claude-sonnet-4-20250514: $2.154230
2025-10-02 > claude-sonnet-4-20250514: $1.583450
2025-10-03 > claude-sonnet-4-20250514: $1.321200
2025-10-03 > gpt-4-turbo: $0.250000
`$3
Full precision for accounting and integration
`bash
vct usage --json
``json
{
"2025-10-01": [
{
"model": "claude-sonnet-4-20250514",
"usage": {
"input_tokens": 45230,
"output_tokens": 12450,
"cache_read_input_tokens": 230500,
"cache_creation_input_tokens": 50000,
"cache_creation": {
"ephemeral_5m_input_tokens": 50000
},
"service_tier": "standard"
},
"cost_usd": 2.1542304567890125
}
]
}
`$3
| Feature | Interactive | Table | Text | JSON |
| --------------- | ----------- | ------- | --------- | ------------------ |
| Best For | Monitoring | Reports | Scripts | Integration |
| Cost Format | $2.15 | $2.15 | $2.154230 | 2.1542304567890123 |
| Updates | Real-time | Static | Static | Static |
| Colors | ✅ | ✅ | ❌ | ❌ |
| Parseable | ❌ | ❌ | ✅ | ✅ |
$3
- Budget Tracking: Monitor your daily AI spending
- Cost Optimization: Identify expensive sessions
- Team Reporting: Generate usage reports for management
- Billing: Export precise costs for invoicing
- Monitoring: Real-time dashboard for active development
---
📊 Analysis Command
Deep dive into conversation files - single file or batch analysis.
$3
`bash
Single file: Analyze and display
vct analysis --path ~/.claude/projects/session.jsonlSingle file: Save to file
vct analysis --path ~/.claude/projects/session.jsonl --output report.jsonBatch: Analyze all sessions with interactive table (default)
vct analysisBatch: Static table output with daily averages
vct analysis --tableBatch: Save aggregated results to JSON
vct analysis --output batch_report.jsonBatch with provider grouping: Output complete records grouped by provider (JSON format)
vct analysis --allSave the grouped results to a file
vct analysis --all --output grouped_report.json
`$3
Single File Analysis:
- Token Usage: Input, output, and cache statistics by model
- File Operations: Every read, write, and edit with full details
- Command History: All shell commands executed
- Tool Usage: Counts of each tool type used
- Metadata: User, machine ID, Git repo, timestamps
Batch Analysis:
- Aggregated Metrics: Grouped by date and model
- Line Counts: Edit, read, and write operations
- Tool Statistics: Bash, Edit, Read, TodoWrite, Write counts
- Interactive Display: Real-time TUI table (default)
- JSON Export: Structured data for further processing
$3
`json
{
"extensionName": "Claude-Code",
"insightsVersion": "0.1.0",
"user": "wei",
"machineId": "5b0dfa41ada84d5180a514698f67bd80",
"records": [
{
"conversationUsage": {
"claude-sonnet-4-20250514": {
"input_tokens": 252,
"output_tokens": 3921,
"cache_read_input_tokens": 1298818,
"cache_creation_input_tokens": 124169
}
},
"toolCallCounts": {
"Read": 15,
"Write": 4,
"Edit": 2,
"Bash": 5,
"TodoWrite": 3
},
"totalUniqueFiles": 8,
"totalWriteLines": 80,
"totalReadLines": 120,
"folderPath": "/home/wei/repo/project",
"gitRemoteUrl": "https://github.com/user/project.git"
}
]
}
`$3
Interactive Table (default when running
vct analysis):`
┌──────────────────────────────────────────────────────────────────┐
│ 🔍 Analysis Statistics │
└──────────────────────────────────────────────────────────────────┘
┌────────────┬────────────────────┬────────────┬────────────┬────────────┬──────┬──────┬──────┬───────────┬───────┐
│ Date ┆ Model ┆ Edit Lines ┆ Read Lines ┆ Write Lines┆ Bash ┆ Edit ┆ Read ┆ TodoWrite ┆ Write │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ 2025-10-02 ┆ claude-sonnet-4-5…┆ 901 ┆ 11,525 ┆ 53 ┆ 13 ┆ 26 ┆ 27 ┆ 10 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ 2025-10-03 ┆ claude-sonnet-4-5…┆ 574 ┆ 10,057 ┆ 1,415 ┆ 53 ┆ 87 ┆ 78 ┆ 30 ┆ 8 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ 2025-10-03 ┆ gpt-5-codex ┆ 0 ┆ 1,323 ┆ 0 ┆ 75 ┆ 0 ┆ 20 ┆ 0 ┆ 0 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ ┆ TOTAL ┆ 1,475 ┆ 22,905 ┆ 1,468 ┆ 141 ┆ 113 ┆ 125 ┆ 40 ┆ 9 │
└────────────┴────────────────────┴────────────┴────────────┴────────────┴──────┴──────┴──────┴───────────┴───────┘
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 📝 Total Lines: 25,848 | 🔧 Total Tools: 428 | 📅 Entries: 3 | ⚡ CPU: 1.8% | 🧠 Memory: 8.2 MB │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 📈 Daily Averages (by Provider) │
│ │
│ 🤖 Claude Code: 737 Edit/Day | 10,791 Read/Day | 734 Write/Day | 3 Days │
│ 💻 Codex: 0 Edit/Day | 1,323 Read/Day | 0 Write/Day | 1 Day │
│ ⭐ All Providers: 491 Edit/Day | 7,635 Read/Day | 489 Write/Day | 3 Days │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘Press 'q', 'Esc', or 'Ctrl+C' to quit
`Static Table Mode (with
--table):`bash
vct analysis --table
``
🔍 Analysis Statistics┌────────────┬────────────────────┬────────────┬────────────┬─────────────┬──────┬───────┬───────┬───────────┬───────┐
│ Date ┆ Model ┆ Edit Lines ┆ Read Lines ┆ Write Lines ┆ Bash ┆ Edit ┆ Read ┆ TodoWrite ┆ Write │
╞════════════╪════════════════════╪════════════╪════════════╪═════════════╪══════╪═══════╪═══════╪═══════════╪═══════╡
│ 2025-10-02 ┆ claude-sonnet-4-5…┆ 901 ┆ 11,525 ┆ 53 ┆ 13 ┆ 26 ┆ 27 ┆ 10 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ 2025-10-03 ┆ claude-sonnet-4-5…┆ 574 ┆ 10,057 ┆ 1,415 ┆ 53 ┆ 87 ┆ 78 ┆ 30 ┆ 8 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ 2025-10-03 ┆ gpt-5-codex ┆ 0 ┆ 1,323 ┆ 0 ┆ 75 ┆ 0 ┆ 20 ┆ 0 ┆ 0 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ ┆ TOTAL ┆ 1,475 ┆ 22,905 ┆ 1,468 ┆ 141 ┆ 113 ┆ 125 ┆ 40 ┆ 9 │
└────────────┴────────────────────┴────────────┴────────────┴─────────────┴──────┴───────┴───────┴───────────┴───────┘
📈 Daily Averages (by Provider)
┌──────────────┬───────────┬───────────┬────────────┬──────────┬──────────┬──────────┬──────────┬───────────┬──────┐
│ Provider ┆ EditL/Day ┆ ReadL/Day ┆ WriteL/Day ┆ Bash/Day ┆ Edit/Day ┆ Read/Day ┆ Todo/Day ┆ Write/Day ┆ Days │
╞══════════════╪═══════════╪═══════════╪════════════╪══════════╪══════════╪══════════╪══════════╪═══════════╪══════╡
│ 🤖 Claude Code ┆ 737.5 ┆ 10,791 ┆ 734 ┆ 33.0 ┆ 56.5 ┆ 52.5 ┆ 20.0 ┆ 4.5 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┤
│ 💻 Codex ┆ 0 ┆ 1,323 ┆ 0 ┆ 75.0 ┆ 0.0 ┆ 20.0 ┆ 0.0 ┆ 0.0 ┆ 1 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┤
│ ⭐ All Providers ┆ 491.7 ┆ 7,635 ┆ 489.3 ┆ 47.0 ┆ 37.7 ┆ 41.7 ┆ 13.3 ┆ 3.0 ┆ 3 │
└──────────────┴───────────┴───────────┴────────────┴──────────┴──────────┴──────────┴──────────┴───────────┴──────┘
`JSON Export (with
--output):`json
[
{
"date": "2025-10-02",
"model": "claude-sonnet-4-5-20250929",
"editLines": 901,
"readLines": 11525,
"writeLines": 53,
"bashCount": 13,
"editCount": 26,
"readCount": 27,
"todoWriteCount": 10,
"writeCount": 1
},
{
"date": "2025-10-03",
"model": "claude-sonnet-4-5-20250929",
"editLines": 574,
"readLines": 10057,
"writeLines": 1415,
"bashCount": 53,
"editCount": 87,
"readCount": 78,
"todoWriteCount": 30,
"writeCount": 8
}
]
`$3
Single File Analysis:
- Usage Auditing: Track what the AI did in each session
- Cost Attribution: Calculate costs per project or feature
- Compliance: Export detailed activity logs
- Analysis: Understand coding patterns and tool usage
Batch Analysis:
- Productivity Tracking: Monitor coding activity over time
- Tool Usage Patterns: Identify most-used tools across sessions
- Model Comparison: Compare efficiency between different AI models
- Historical Analysis: Track trends in code operations by date
---
🔧 Version Command
Check your installation.
`bash
Formatted output
vct versionJSON format
vct version --jsonPlain text
vct version --text
`$3
`
🚀 Vibe Coding Tracker┌───────────────┬─────────┐
│ Version ┆ 0.1.0 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ Rust Version ┆ 1.89.0 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ Cargo Version ┆ 1.89.0 │
└───────────────┴─────────┘
`---
🔄 Update Command
Keep your installation up-to-date automatically.
The update command works for all installation methods (npm/pip/cargo/manual) by directly downloading and replacing the binary from GitHub releases.
$3
`bash
Check for updates
vct update --checkInteractive update with confirmation
vct updateForce update - always downloads latest version (even if already up-to-date)
vct update --force
`$3
1. Check Latest Version: Fetches the latest release from GitHub API
2. Compare Versions: Compares current version with the latest available (skipped with
--force)
3. Download Binary: Downloads the appropriate binary for your platform (Linux/macOS/Windows)
4. Smart Replacement:
- Linux/macOS: Automatically replaces the binary (backs up old version to .old)
- Windows: Downloads as .new and creates a batch script for safe replacement$3
The
--force flag bypasses version checking and always downloads the latest release:`bash
Force reinstall the latest version (useful for corrupted installations)
vct update --force
`Use cases:
- Reinstall after corrupted binary
- Force download latest release without version check
- Troubleshooting installation issues
Only fails if: No binary is found for your platform (OS/architecture)
$3
Whether you installed via npm, pip, cargo, or manually,
vct update will work the same way:`bash
$ vct update --check
🔍 Checking for updates...
📌 Current version: 0.1.6
📌 Latest version: v0.1.7🆕 New version available: v0.1.7
💡 To update, run:
vct update
`Why does this work? All installation methods (npm/pip/cargo/manual) use the same pre-compiled binaries from GitHub releases. The update command simply downloads the latest binary and replaces your current installation.
$3
The update command automatically detects your platform and downloads the correct archive:
- Linux:
vibe_coding_tracker-v{version}-linux-x64-gnu.tar.gz, vibe_coding_tracker-v{version}-linux-arm64-gnu.tar.gz
- macOS: vibe_coding_tracker-v{version}-macos-x64.tar.gz, vibe_coding_tracker-v{version}-macos-arm64.tar.gz
- Windows: vibe_coding_tracker-v{version}-windows-x64.zip, vibe_coding_tracker-v{version}-windows-arm64.zip$3
On Windows, the binary cannot be replaced while running. The update command:
1. Downloads the new version as
vct.new
2. Creates an update script (update_vct.bat)
3. Displays instructions to complete the updateRun the batch script after closing the application to finish the update.
---
💡 Smart Pricing System
$3
1. Automatic Updates: Fetches pricing from LiteLLM daily
2. Smart Caching: Stores pricing in
~/.vibe_coding_tracker/ for 24 hours
3. Fuzzy Matching: Finds best match even for custom model names
4. Always Accurate: Ensures you get the latest pricing$3
Priority Order:
1. ✅ Exact Match:
claude-sonnet-4 → claude-sonnet-4
2. 🔄 Normalized: claude-sonnet-4-20250514 → claude-sonnet-4
3. 🔍 Substring: custom-gpt-4 → gpt-4
4. 🎯 Fuzzy (AI-powered): Uses Jaro-Winkler similarity (70% threshold)
5. 💵 Fallback: Shows $0.00 if no match found$3
`
Total Cost = (Input Tokens × Input Cost) +
(Output Tokens × Output Cost) +
(Cache Read × Cache Read Cost) +
(Cache Creation × Cache Creation Cost)
`---
🐳 Docker Support
`bash
Build image
docker build -f docker/Dockerfile --target prod -t vibe_coding_tracker:latest .Run with your sessions
docker run --rm \
-v ~/.claude:/root/.claude \
-v ~/.codex:/root/.codex \
-v ~/.copilot:/root/.copilot \
-v ~/.gemini:/root/.gemini \
vibe_coding_tracker:latest usage
`---
🔍 Troubleshooting
$3
`bash
Check cache
ls -la ~/.vibe_coding_tracker/Force refresh
rm -rf ~/.vibe_coding_tracker/
vct usageDebug mode
RUST_LOG=debug vct usage
`$3
`bash
Verify session directories
ls -la ~/.claude/projects/
ls -la ~/.codex/sessions/
ls -la ~/.copilot/sessions/
ls -la ~/.gemini/tmp/Count session files
find ~/.claude/projects -name "*.jsonl" | wc -l
find ~/.codex/sessions -name "*.jsonl" | wc -l
find ~/.copilot/sessions -name "*.json" | wc -l
find ~/.gemini/tmp -name "*.json" | wc -l
`$3
`bash
Validate JSONL format
jq empty < your-file.jsonlCheck file permissions
ls -la your-file.jsonlRun with debug output
RUST_LOG=debug vct analysis --path your-file.jsonl
`$3
`bash
Reset terminal if broken
resetCheck terminal type
echo $TERM # Should be xterm-256color or compatibleUse static table as fallback
vct usage --table
``---
Built with Rust for speed and reliability:
| Operation | Time |
| ------------------- | ------ |
| Parse 10MB JSONL | ~320ms |
| Analyze 1000 events | ~45ms |
| Load cached pricing | ~2ms |
| Interactive refresh | ~30ms |
Binary Size: ~3-5 MB (stripped)
---
- Developer Docs: See .github/copilot-instructions.md
- Report Issues: GitHub Issues
- Source Code: GitHub Repository
---
Contributions welcome! Here's how:
1. Fork the repository
2. Create your feature branch
3. Make your changes
4. Submit a pull request
For development setup and guidelines, see .github/copilot-instructions.md.
---
MIT License - see LICENSE for details.
---
- LiteLLM for model pricing data
- Claude Code, Codex, Copilot, and Gemini teams for creating amazing AI coding assistants
- The Rust community for excellent tooling
---
Save money. Track usage. Code smarter.
⭐ Star this project if you find it useful!
Made with 🦀 Rust