@mai0313/vct 0.5.9 → 0.5.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -685
- package/README.zh-CN.md +327 -0
- package/README.zh-TW.md +327 -0
- package/binaries/linux-arm64-gnu/vibe_coding_tracker +0 -0
- package/binaries/linux-x64-gnu/vibe_coding_tracker +0 -0
- package/binaries/macos-arm64/vibe_coding_tracker +0 -0
- package/binaries/macos-x64/vibe_coding_tracker +0 -0
- package/binaries/windows-arm64/vibe_coding_tracker.exe +0 -0
- package/binaries/windows-x64/vibe_coding_tracker.exe +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<center>
|
|
1
|
+
<div align="center" markdown="1">
|
|
2
2
|
|
|
3
3
|
# Vibe Coding Tracker — AI Coding Assistant Usage Tracker
|
|
4
4
|
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
[](https://github.com/Mai0313/VibeCodingTracker)
|
|
16
16
|
[](https://github.com/Mai0313/VibeCodingTracker/pulls)
|
|
17
17
|
|
|
18
|
-
</
|
|
18
|
+
</div>
|
|
19
19
|
|
|
20
|
-
**Track your AI coding costs in real-time.** Vibe Coding Tracker is a
|
|
20
|
+
**Track your AI coding costs in real-time.** Vibe Coding Tracker is a lightweight, high-performance CLI tool built in Rust that monitors and analyzes your Claude Code, Codex, Copilot, and Gemini usage — with detailed cost breakdowns, token statistics, and code operation insights, all while keeping CPU and memory usage minimal.
|
|
21
21
|
|
|
22
22
|
[English](README.md) | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md)
|
|
23
23
|
|
|
24
|
-
> Note: CLI examples use the short alias `vct`. If you
|
|
24
|
+
> Note: CLI examples use the short alias `vct`. If you installed via npm/pip/cargo, the binary might be named `vibe_coding_tracker` or `vct`. Create an alias or replace `vct` with the full name when running commands if needed.
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
@@ -31,6 +31,10 @@
|
|
|
31
31
|
|
|
32
32
|
Stop wondering how much your AI coding sessions cost. Get **real-time cost tracking** with automatic pricing updates from [LiteLLM](https://github.com/BerriAI/litellm).
|
|
33
33
|
|
|
34
|
+
### 🪶 Ultra-Lightweight
|
|
35
|
+
|
|
36
|
+
Built with Rust for minimal resource footprint. The interactive TUI dashboard runs at **~3-5% CPU** and **~140 MB memory** even while processing millions of tokens across multiple providers — no Electron, no bloated runtimes.
|
|
37
|
+
|
|
34
38
|
### 📊 Beautiful Visualizations
|
|
35
39
|
|
|
36
40
|
Choose your preferred view:
|
|
@@ -42,29 +46,29 @@ Choose your preferred view:
|
|
|
42
46
|
|
|
43
47
|
### 🚀 Zero Configuration
|
|
44
48
|
|
|
45
|
-
Automatically detects and processes logs from Claude Code, Codex, Copilot, and Gemini. No setup required—just run and analyze.
|
|
49
|
+
Automatically detects and processes logs from Claude Code, Codex, Copilot, and Gemini. No setup required — just run and analyze.
|
|
46
50
|
|
|
47
51
|
### 🎨 Rich Insights
|
|
48
52
|
|
|
49
53
|
- Token usage by model and date
|
|
50
|
-
- Cost breakdown by cache types
|
|
51
|
-
- File operations tracking
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
+
- Cost breakdown by cache types (read / create)
|
|
55
|
+
- File operations tracking (edit, read, write lines)
|
|
56
|
+
- Tool call history (Bash, Edit, Read, Write, TodoWrite)
|
|
57
|
+
- Per-provider daily averages
|
|
54
58
|
|
|
55
59
|
---
|
|
56
60
|
|
|
57
61
|
## ✨ Key Features
|
|
58
62
|
|
|
59
|
-
| Feature
|
|
60
|
-
|
|
|
61
|
-
| 🤖 **
|
|
62
|
-
| 💵 **Smart Pricing**
|
|
63
|
-
| 🎨 **4 Display Modes**
|
|
64
|
-
| 📈 **
|
|
65
|
-
|
|
|
66
|
-
| 🔄 **Live Updates**
|
|
67
|
-
| 💾 **Efficient Caching**
|
|
63
|
+
| Feature | Description |
|
|
64
|
+
| ------------------------ | -------------------------------------------------------------- |
|
|
65
|
+
| 🤖 **Multi-Provider** | Claude Code, Codex, Copilot, and Gemini — all in one place |
|
|
66
|
+
| 💵 **Smart Pricing** | Fuzzy model matching + daily cache from LiteLLM |
|
|
67
|
+
| 🎨 **4 Display Modes** | Interactive TUI, static table, plain text, and JSON |
|
|
68
|
+
| 📈 **Dual Analysis** | Token/cost stats (`usage`) + code operation stats (`analysis`) |
|
|
69
|
+
| 🪶 **Ultra-Lightweight** | ~3-5% CPU, ~140 MB RAM — built with Rust |
|
|
70
|
+
| 🔄 **Live Updates** | Real-time dashboard refreshes every second |
|
|
71
|
+
| 💾 **Efficient Caching** | Smart daily cache reduces API calls |
|
|
68
72
|
|
|
69
73
|
---
|
|
70
74
|
|
|
@@ -74,11 +78,13 @@ Automatically detects and processes logs from Claude Code, Codex, Copilot, and G
|
|
|
74
78
|
|
|
75
79
|
Choose the installation method that works best for you:
|
|
76
80
|
|
|
77
|
-
|
|
81
|
+
> 👨💻 **Developers**: If you want to build from source or contribute to development, please see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
78
82
|
|
|
79
|
-
|
|
83
|
+
#### Method 1: Install from npm
|
|
84
|
+
|
|
85
|
+
**Prerequisites**: [Node.js](https://nodejs.org/) v22 or higher
|
|
80
86
|
|
|
81
|
-
Choose
|
|
87
|
+
Choose one of the following package names (they are identical):
|
|
82
88
|
|
|
83
89
|
```bash
|
|
84
90
|
# Main package
|
|
@@ -91,34 +97,16 @@ npm install -g @mai0313/vct
|
|
|
91
97
|
npm install -g @mai0313/vibe-coding-tracker
|
|
92
98
|
```
|
|
93
99
|
|
|
94
|
-
**Prerequisites**: [Node.js](https://nodejs.org/) v22 or higher
|
|
95
|
-
|
|
96
|
-
**Supported Platforms**:
|
|
97
|
-
|
|
98
|
-
- Linux (x64, ARM64)
|
|
99
|
-
- macOS (x64, ARM64)
|
|
100
|
-
- Windows (x64, ARM64)
|
|
101
|
-
|
|
102
100
|
#### Method 2: Install from PyPI
|
|
103
101
|
|
|
104
|
-
**
|
|
102
|
+
**Prerequisites**: Python 3.8 or higher
|
|
105
103
|
|
|
106
104
|
```bash
|
|
107
|
-
# Install with pip
|
|
108
105
|
pip install vibe_coding_tracker
|
|
109
|
-
|
|
110
|
-
# Install with uv (recommended for faster installation)
|
|
106
|
+
# Or with uv
|
|
111
107
|
uv pip install vibe_coding_tracker
|
|
112
108
|
```
|
|
113
109
|
|
|
114
|
-
**Prerequisites**: Python 3.8 or higher
|
|
115
|
-
|
|
116
|
-
**Supported Platforms**:
|
|
117
|
-
|
|
118
|
-
- Linux (x64, ARM64)
|
|
119
|
-
- macOS (x64, ARM64)
|
|
120
|
-
- Windows (x64, ARM64)
|
|
121
|
-
|
|
122
110
|
#### Method 3: Install from crates.io
|
|
123
111
|
|
|
124
112
|
Install using Cargo from the official Rust package registry:
|
|
@@ -127,118 +115,35 @@ Install using Cargo from the official Rust package registry:
|
|
|
127
115
|
cargo install vibe_coding_tracker
|
|
128
116
|
```
|
|
129
117
|
|
|
130
|
-
**Prerequisites**: [Rust toolchain](https://rustup.rs/) 1.85 or higher
|
|
131
|
-
|
|
132
|
-
> **Note**: This project uses **Rust 2024 edition** and requires Rust 1.85+. Update your toolchain with `rustup update` if needed.
|
|
133
|
-
|
|
134
|
-
#### Method 4: Build from Source
|
|
135
|
-
|
|
136
|
-
For users who want to customize the build or contribute to development:
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
# 1. Clone the repository
|
|
140
|
-
git clone https://github.com/Mai0313/VibeCodingTracker.git
|
|
141
|
-
cd VibeCodingTracker
|
|
142
|
-
|
|
143
|
-
# 2. Build release version
|
|
144
|
-
cargo build --release
|
|
145
|
-
|
|
146
|
-
# 3. Binary location
|
|
147
|
-
./target/release/vibe_coding_tracker
|
|
148
|
-
|
|
149
|
-
# 4. Optional: create a short alias
|
|
150
|
-
# Linux/macOS:
|
|
151
|
-
sudo ln -sf "$(pwd)/target/release/vibe_coding_tracker" /usr/local/bin/vct
|
|
152
|
-
|
|
153
|
-
# Or install to user directory:
|
|
154
|
-
mkdir -p ~/.local/bin
|
|
155
|
-
ln -sf "$(pwd)/target/release/vibe_coding_tracker" ~/.local/bin/vct
|
|
156
|
-
# Make sure ~/.local/bin is in your PATH
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
**Prerequisites**: [Rust toolchain](https://rustup.rs/) 1.85 or higher
|
|
160
|
-
|
|
161
|
-
> **Note**: This project uses **Rust 2024 edition** and requires Rust 1.85+. Update your toolchain with `rustup update` if needed.
|
|
162
|
-
|
|
163
|
-
#### Method 5: Quick Install via Curl (Linux/macOS)
|
|
164
|
-
|
|
165
|
-
**One-line installation script** - automatically detects your platform and installs the latest release:
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
curl -fsSLk https://github.com/Mai0313/VibeCodingTracker/raw/main/scripts/install.sh | bash
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
**Prerequisites**: `curl` and `tar` (usually pre-installed)
|
|
172
|
-
|
|
173
|
-
**What it does**:
|
|
174
|
-
|
|
175
|
-
- Detects your OS and architecture automatically
|
|
176
|
-
- Downloads the latest release from GitHub
|
|
177
|
-
- Extracts and installs to `/usr/local/bin` or `~/.local/bin`
|
|
178
|
-
- Creates the `vct` short alias automatically
|
|
179
|
-
- Skips SSL verification for restricted networks
|
|
180
|
-
|
|
181
|
-
**Supported Platforms**:
|
|
182
|
-
|
|
183
|
-
- Linux (x64, ARM64)
|
|
184
|
-
- macOS (x64, ARM64)
|
|
185
|
-
|
|
186
|
-
#### Method 6: Quick Install via PowerShell (Windows)
|
|
187
|
-
|
|
188
|
-
**One-line installation script** - automatically detects your architecture and installs the latest release:
|
|
189
|
-
|
|
190
|
-
```powershell
|
|
191
|
-
powershell -ExecutionPolicy ByPass -c "[System.Net.ServicePointManager]::ServerCertificateValidationCallback={$true}; irm https://github.com/Mai0313/VibeCodingTracker/raw/main/scripts/install.ps1 | iex"
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
**Prerequisites**: PowerShell 5.0 or higher (included in Windows 10+)
|
|
195
|
-
|
|
196
|
-
**What it does**:
|
|
197
|
-
|
|
198
|
-
- Detects your Windows architecture automatically (x64 or ARM64)
|
|
199
|
-
- Downloads the latest release from GitHub
|
|
200
|
-
- Installs to `%LOCALAPPDATA%\Programs\VibeCodingTracker`
|
|
201
|
-
- Creates the `vct.exe` short alias automatically
|
|
202
|
-
- Adds to user PATH automatically
|
|
203
|
-
- Skips SSL verification for restricted networks
|
|
204
|
-
|
|
205
|
-
**Note**: You may need to restart your terminal for PATH changes to take effect.
|
|
206
|
-
|
|
207
|
-
**Supported Platforms**:
|
|
208
|
-
|
|
209
|
-
- Windows 10/11 (x64, ARM64)
|
|
210
|
-
|
|
211
118
|
### First Run
|
|
212
119
|
|
|
213
120
|
```bash
|
|
214
|
-
# View your usage with the
|
|
121
|
+
# View your usage with the interactive dashboard
|
|
215
122
|
vct usage
|
|
216
123
|
|
|
217
|
-
# Or run the binary built by Cargo
|
|
218
|
-
|
|
124
|
+
# Or run the binary built by Cargo/pip
|
|
125
|
+
vibe_coding_tracker usage
|
|
219
126
|
|
|
220
|
-
# Analyze
|
|
221
|
-
|
|
127
|
+
# Analyze code operations across all sessions
|
|
128
|
+
vct analysis
|
|
222
129
|
```
|
|
223
130
|
|
|
224
|
-
> 💡 **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).
|
|
225
|
-
|
|
226
131
|
---
|
|
227
132
|
|
|
228
133
|
## 📖 Command Guide
|
|
229
134
|
|
|
230
135
|
### 🔍 Quick Reference
|
|
231
136
|
|
|
232
|
-
```
|
|
137
|
+
```
|
|
233
138
|
vct <COMMAND> [OPTIONS]
|
|
234
139
|
# Replace with `vibe_coding_tracker` if you are using the full binary name
|
|
235
140
|
|
|
236
141
|
Commands:
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
version Display version information
|
|
240
|
-
update Update to the latest version from GitHub releases
|
|
241
|
-
help
|
|
142
|
+
analysis Analyze JSONL conversation files (single file or all sessions)
|
|
143
|
+
usage Display token usage statistics
|
|
144
|
+
version Display version information
|
|
145
|
+
update Update to the latest version from GitHub releases
|
|
146
|
+
help Print this message or the help of the given subcommand(s)
|
|
242
147
|
```
|
|
243
148
|
|
|
244
149
|
---
|
|
@@ -263,391 +168,95 @@ vct usage --text
|
|
|
263
168
|
vct usage --json
|
|
264
169
|
```
|
|
265
170
|
|
|
266
|
-
###
|
|
267
|
-
|
|
268
|
-
The tool scans these directories automatically:
|
|
269
|
-
|
|
270
|
-
- `~/.claude/projects/*.jsonl` (Claude Code)
|
|
271
|
-
- `~/.codex/sessions/*.jsonl` (Codex)
|
|
272
|
-
- `~/.copilot/history-session-state/*.json` (Copilot)
|
|
273
|
-
- `~/.gemini/tmp/<project_hash>/chats/*.json` (Gemini)
|
|
274
|
-
|
|
275
|
-
### 🎨 Interactive Mode (Default)
|
|
276
|
-
|
|
277
|
-
**Live dashboard that updates every second**
|
|
278
|
-
|
|
279
|
-
```
|
|
280
|
-
┌──────────────────────────────────────────────────────────────────┐
|
|
281
|
-
│ 📊 Token Usage Statistics │
|
|
282
|
-
└──────────────────────────────────────────────────────────────────┘
|
|
283
|
-
┌────────────┬──────────────────────┬────────────┬────────────┬────────────┬──────────────┬────────────┬────────────┐
|
|
284
|
-
│ Date ┆ Model ┆ Input ┆ Output ┆ Cache Read ┆ Cache Create ┆ Total ┆ Cost (USD) │
|
|
285
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
|
|
286
|
-
│ 2025-10-01 ┆ claude-sonnet-4-20… ┆ 45,230 ┆ 12,450 ┆ 230,500 ┆ 50,000 ┆ 338,180 ┆ $2.15 │
|
|
287
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
|
|
288
|
-
│ 2025-10-02 ┆ claude-sonnet-4-20… ┆ 32,100 ┆ 8,920 ┆ 180,000 ┆ 30,000 ┆ 251,020 ┆ $1.58 │
|
|
289
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
|
|
290
|
-
│ 2025-10-03 ┆ claude-sonnet-4-20… ┆ 28,500 ┆ 7,200 ┆ 150,000 ┆ 25,000 ┆ 210,700 ┆ $1.32 │
|
|
291
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
|
|
292
|
-
│ 2025-10-03 ┆ gpt-4-turbo ┆ 15,000 ┆ 5,000 ┆ 0 ┆ 0 ┆ 20,000 ┆ $0.25 │
|
|
293
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
|
|
294
|
-
│ ┆ TOTAL ┆ 120,830 ┆ 33,570 ┆ 560,500 ┆ 105,000 ┆ 819,900 ┆ $5.30 │
|
|
295
|
-
└────────────┴──────────────────────┴────────────┴────────────┴────────────┴──────────────┴────────────┴────────────┘
|
|
296
|
-
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
297
|
-
│ 💰 Total Cost: $5.30 | 🔢 Total Tokens: 819,900 | 📅 Entries: 4 | ⚡ CPU: 2.3% | 🧠 Memory: 12.5 MB │
|
|
298
|
-
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
299
|
-
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
300
|
-
│ 📈 Daily Averages │
|
|
301
|
-
│ │
|
|
302
|
-
│ Claude Code: 266,667 tokens/day | $1.68/day │
|
|
303
|
-
│ Codex: 20,000 tokens/day | $0.25/day │
|
|
304
|
-
│ Copilot: 15,000 tokens/day | $0.18/day │
|
|
305
|
-
│ Overall: 179,090 tokens/day | $1.20/day │
|
|
306
|
-
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
307
|
-
|
|
308
|
-
Press 'q', 'Esc', or 'Ctrl+C' to quit
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
**Features**:
|
|
312
|
-
|
|
313
|
-
- ✨ Auto-refreshes every second
|
|
314
|
-
- 🎯 Highlights today's entries
|
|
315
|
-
- 🔄 Shows recently updated rows
|
|
316
|
-
- 💾 Displays memory usage
|
|
317
|
-
- 📊 Summary statistics
|
|
318
|
-
- 📈 Daily averages by provider (Claude Code, Codex, Copilot, Gemini)
|
|
319
|
-
|
|
320
|
-
**Controls**: Press `q`, `Esc`, or `Ctrl+C` to exit
|
|
321
|
-
|
|
322
|
-
### 📋 Static Table Mode
|
|
323
|
-
|
|
324
|
-
**Perfect for documentation and reports**
|
|
325
|
-
|
|
326
|
-
```bash
|
|
327
|
-
vct usage --table
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
```
|
|
331
|
-
📊 Token Usage Statistics
|
|
332
|
-
|
|
333
|
-
┌────────────┬──────────────────────┬────────────┬────────────┬────────────┬──────────────┬──────────────┬────────────┐
|
|
334
|
-
│ Date ┆ Model ┆ Input ┆ Output ┆ Cache Read ┆ Cache Create ┆ Total Tokens ┆ Cost (USD) │
|
|
335
|
-
╞════════════╪══════════════════════╪════════════╪════════════╪════════════╪══════════════╪══════════════╪════════════╡
|
|
336
|
-
│ 2025-10-01 ┆ claude-sonnet-4-20… ┆ 45,230 ┆ 12,450 ┆ 230,500 ┆ 50,000 ┆ 338,180 ┆ $2.15 │
|
|
337
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
|
|
338
|
-
│ 2025-10-02 ┆ claude-sonnet-4-20… ┆ 32,100 ┆ 8,920 ┆ 180,000 ┆ 30,000 ┆ 251,020 ┆ $1.58 │
|
|
339
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
|
|
340
|
-
│ 2025-10-03 ┆ claude-sonnet-4-20… ┆ 28,500 ┆ 7,200 ┆ 150,000 ┆ 25,000 ┆ 210,700 ┆ $1.32 │
|
|
341
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
|
|
342
|
-
│ 2025-10-03 ┆ gpt-4-turbo ┆ 15,000 ┆ 5,000 ┆ 0 ┆ 0 ┆ 20,000 ┆ $0.25 │
|
|
343
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤
|
|
344
|
-
│ ┆ TOTAL ┆ 120,830 ┆ 33,570 ┆ 560,500 ┆ 105,000 ┆ 819,900 ┆ $5.30 │
|
|
345
|
-
└────────────┴──────────────────────┴────────────┴────────────┴────────────┴──────────────┴──────────────┴────────────┘
|
|
346
|
-
|
|
347
|
-
📈 Daily Averages (by Provider)
|
|
348
|
-
|
|
349
|
-
┌─────────────┬────────────────┬──────────────┬──────┐
|
|
350
|
-
│ Provider ┆ Avg Tokens/Day ┆ Avg Cost/Day ┆ Days │
|
|
351
|
-
╞═════════════╪════════════════╪══════════════╪══════╡
|
|
352
|
-
│ Claude Code ┆ 266,667 ┆ $1.68 ┆ 3 │
|
|
353
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┤
|
|
354
|
-
│ Codex ┆ 20,000 ┆ $0.25 ┆ 1 │
|
|
355
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┤
|
|
356
|
-
│ Copilot ┆ 15,000 ┆ $0.18 ┆ 1 │
|
|
357
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┤
|
|
358
|
-
│ OVERALL ┆ 179,090 ┆ $1.20 ┆ 5 │
|
|
359
|
-
└─────────────┴────────────────┴──────────────┴──────┘
|
|
360
|
-
```
|
|
361
|
-
|
|
362
|
-
### 📝 Text Mode
|
|
363
|
-
|
|
364
|
-
**Ideal for scripting and parsing**
|
|
365
|
-
|
|
366
|
-
```bash
|
|
367
|
-
vct usage --text
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
```
|
|
371
|
-
2025-10-01 > claude-sonnet-4-20250514: $2.154230
|
|
372
|
-
2025-10-02 > claude-sonnet-4-20250514: $1.583450
|
|
373
|
-
2025-10-03 > claude-sonnet-4-20250514: $1.321200
|
|
374
|
-
2025-10-03 > gpt-4-turbo: $0.250000
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
### 🗂️ JSON Mode
|
|
378
|
-
|
|
379
|
-
**Full precision for accounting and integration**
|
|
171
|
+
### Preview: Interactive Dashboard (`vct usage`)
|
|
380
172
|
|
|
381
|
-
```bash
|
|
382
|
-
vct usage --json
|
|
383
173
|
```
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
174
|
+
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
175
|
+
│ 📊 Token Usage Statistics │
|
|
176
|
+
└─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
177
|
+
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
178
|
+
│ Model Input Output Cache Read Cache Create Total Cost │
|
|
179
|
+
│ │
|
|
180
|
+
│ claude-haiku-4-5-20251001 5,567 19,769 4,627,938 619,816 $1.34 │
|
|
181
|
+
│ claude-opus-4-6 25,651 179,066 40,830,154 2,572,258 $77.59 │
|
|
182
|
+
│ gemini-3.1-pro-preview 129,115 10,339 67,385 0 $0.40 │
|
|
183
|
+
│ TOTAL 160,333 209,174 45,525,477 3,192,074 $79.33 │
|
|
184
|
+
└─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
185
|
+
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
186
|
+
│ Provider Tokens / Day Cost / Day Active Days │
|
|
187
|
+
│ │
|
|
188
|
+
│ 🤖 Claude Code 16,293,406 $26.31 3 │
|
|
189
|
+
│ ✨ Gemini 206,839 $0.40 1 │
|
|
190
|
+
│ ⭐ All Providers 16,362,353 $26.44 3 │
|
|
191
|
+
└─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
192
|
+
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
193
|
+
│ 💰 Total: $79.33 | 🔢 Tokens: 49,087,058 | 📊 Models: 3 | ⚡ CPU: 4.6% | 🧠 Mem: 148 MB │
|
|
194
|
+
└─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
195
|
+
Press 'q', 'Esc', 'Ctrl+C' to quit | Press 'r' to refresh
|
|
404
196
|
```
|
|
405
197
|
|
|
406
|
-
###
|
|
198
|
+
### What It Scans
|
|
407
199
|
|
|
408
|
-
|
|
409
|
-
| --------------- | ----------- | ------- | --------- | ------------------ |
|
|
410
|
-
| **Best For** | Monitoring | Reports | Scripts | Integration |
|
|
411
|
-
| **Cost Format** | $2.15 | $2.15 | $2.154230 | 2.1542304567890123 |
|
|
412
|
-
| **Updates** | Real-time | Static | Static | Static |
|
|
413
|
-
| **Colors** | ✅ | ✅ | ❌ | ❌ |
|
|
414
|
-
| **Parseable** | ❌ | ❌ | ✅ | ✅ |
|
|
200
|
+
The tool automatically scans these directories:
|
|
415
201
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
-
|
|
419
|
-
-
|
|
420
|
-
- **Team Reporting**: Generate usage reports for management
|
|
421
|
-
- **Billing**: Export precise costs for invoicing
|
|
422
|
-
- **Monitoring**: Real-time dashboard for active development
|
|
202
|
+
- `~/.claude/projects/*.jsonl` (Claude Code)
|
|
203
|
+
- `~/.codex/sessions/*.jsonl` (Codex)
|
|
204
|
+
- `~/.copilot/history-session-state/*.json` (Copilot)
|
|
205
|
+
- `~/.gemini/tmp/<project_hash>/chats/*.json` (Gemini)
|
|
423
206
|
|
|
424
207
|
---
|
|
425
208
|
|
|
426
209
|
## 📊 Analysis Command
|
|
427
210
|
|
|
428
|
-
**Deep dive into
|
|
211
|
+
**Deep dive into code operations — see exactly what your AI assistant did.**
|
|
429
212
|
|
|
430
213
|
### Basic Usage
|
|
431
214
|
|
|
432
215
|
```bash
|
|
433
|
-
#
|
|
434
|
-
vct analysis --path ~/.claude/projects/session.jsonl
|
|
435
|
-
|
|
436
|
-
# Single file: Save to file
|
|
437
|
-
vct analysis --path ~/.claude/projects/session.jsonl --output report.json
|
|
438
|
-
|
|
439
|
-
# Batch: Analyze all sessions with interactive table (default)
|
|
216
|
+
# Interactive dashboard for all sessions (default)
|
|
440
217
|
vct analysis
|
|
441
218
|
|
|
442
|
-
#
|
|
219
|
+
# Static table output with daily averages
|
|
443
220
|
vct analysis --table
|
|
444
221
|
|
|
445
|
-
#
|
|
446
|
-
vct analysis --
|
|
222
|
+
# Analyze a single conversation file
|
|
223
|
+
vct analysis --path ~/.claude/projects/session.jsonl
|
|
224
|
+
|
|
225
|
+
# Save results to JSON
|
|
226
|
+
vct analysis --output report.json
|
|
447
227
|
|
|
448
|
-
#
|
|
228
|
+
# Group results by provider
|
|
449
229
|
vct analysis --all
|
|
450
230
|
|
|
451
|
-
# Save
|
|
231
|
+
# Save grouped results
|
|
452
232
|
vct analysis --all --output grouped_report.json
|
|
453
233
|
```
|
|
454
234
|
|
|
455
|
-
###
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
"machineId": "5b0dfa41ada84d5180a514698f67bd80",
|
|
481
|
-
"records": [
|
|
482
|
-
{
|
|
483
|
-
"conversationUsage": {
|
|
484
|
-
"claude-sonnet-4-20250514": {
|
|
485
|
-
"input_tokens": 252,
|
|
486
|
-
"output_tokens": 3921,
|
|
487
|
-
"cache_read_input_tokens": 1298818,
|
|
488
|
-
"cache_creation_input_tokens": 124169
|
|
489
|
-
}
|
|
490
|
-
},
|
|
491
|
-
"toolCallCounts": {
|
|
492
|
-
"Read": 15,
|
|
493
|
-
"Write": 4,
|
|
494
|
-
"Edit": 2,
|
|
495
|
-
"Bash": 5,
|
|
496
|
-
"TodoWrite": 3
|
|
497
|
-
},
|
|
498
|
-
"totalUniqueFiles": 8,
|
|
499
|
-
"totalWriteLines": 80,
|
|
500
|
-
"totalReadLines": 120,
|
|
501
|
-
"folderPath": "/home/wei/repo/project",
|
|
502
|
-
"gitRemoteUrl": "https://github.com/user/project.git"
|
|
503
|
-
}
|
|
504
|
-
]
|
|
505
|
-
}
|
|
506
|
-
```
|
|
507
|
-
|
|
508
|
-
### Sample Output - Batch Analysis
|
|
509
|
-
|
|
510
|
-
**Interactive Table** (default when running `vct analysis`):
|
|
511
|
-
|
|
512
|
-
```
|
|
513
|
-
┌──────────────────────────────────────────────────────────────────┐
|
|
514
|
-
│ 🔍 Analysis Statistics │
|
|
515
|
-
└──────────────────────────────────────────────────────────────────┘
|
|
516
|
-
┌────────────┬────────────────────┬────────────┬────────────┬────────────┬──────┬──────┬──────┬───────────┬───────┐
|
|
517
|
-
│ Date ┆ Model ┆ Edit Lines ┆ Read Lines ┆ Write Lines┆ Bash ┆ Edit ┆ Read ┆ TodoWrite ┆ Write │
|
|
518
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
|
|
519
|
-
│ 2025-10-02 ┆ claude-sonnet-4-5…┆ 901 ┆ 11,525 ┆ 53 ┆ 13 ┆ 26 ┆ 27 ┆ 10 ┆ 1 │
|
|
520
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
|
|
521
|
-
│ 2025-10-03 ┆ claude-sonnet-4-5…┆ 574 ┆ 10,057 ┆ 1,415 ┆ 53 ┆ 87 ┆ 78 ┆ 30 ┆ 8 │
|
|
522
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
|
|
523
|
-
│ 2025-10-03 ┆ gpt-5-codex ┆ 0 ┆ 1,323 ┆ 0 ┆ 75 ┆ 0 ┆ 20 ┆ 0 ┆ 0 │
|
|
524
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
|
|
525
|
-
│ ┆ TOTAL ┆ 1,475 ┆ 22,905 ┆ 1,468 ┆ 141 ┆ 113 ┆ 125 ┆ 40 ┆ 9 │
|
|
526
|
-
└────────────┴────────────────────┴────────────┴────────────┴────────────┴──────┴──────┴──────┴───────────┴───────┘
|
|
527
|
-
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
528
|
-
│ 📝 Total Lines: 25,848 | 🔧 Total Tools: 428 | 📅 Entries: 3 | ⚡ CPU: 1.8% | 🧠 Memory: 8.2 MB │
|
|
529
|
-
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
530
|
-
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
531
|
-
│ 📈 Daily Averages (by Provider) │
|
|
532
|
-
│ │
|
|
533
|
-
│ 🤖 Claude Code: 737 Edit/Day | 10,791 Read/Day | 734 Write/Day | 3 Days │
|
|
534
|
-
│ 💻 Codex: 0 Edit/Day | 1,323 Read/Day | 0 Write/Day | 1 Day │
|
|
535
|
-
│ ⭐ All Providers: 491 Edit/Day | 7,635 Read/Day | 489 Write/Day | 3 Days │
|
|
536
|
-
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
537
|
-
|
|
538
|
-
Press 'q', 'Esc', or 'Ctrl+C' to quit
|
|
539
|
-
```
|
|
540
|
-
|
|
541
|
-
**Static Table Mode** (with `--table`):
|
|
542
|
-
|
|
543
|
-
```bash
|
|
544
|
-
vct analysis --table
|
|
545
|
-
```
|
|
546
|
-
|
|
547
|
-
```
|
|
548
|
-
🔍 Analysis Statistics
|
|
549
|
-
|
|
550
|
-
┌────────────┬────────────────────┬────────────┬────────────┬─────────────┬──────┬───────┬───────┬───────────┬───────┐
|
|
551
|
-
│ Date ┆ Model ┆ Edit Lines ┆ Read Lines ┆ Write Lines ┆ Bash ┆ Edit ┆ Read ┆ TodoWrite ┆ Write │
|
|
552
|
-
╞════════════╪════════════════════╪════════════╪════════════╪═════════════╪══════╪═══════╪═══════╪═══════════╪═══════╡
|
|
553
|
-
│ 2025-10-02 ┆ claude-sonnet-4-5…┆ 901 ┆ 11,525 ┆ 53 ┆ 13 ┆ 26 ┆ 27 ┆ 10 ┆ 1 │
|
|
554
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
|
|
555
|
-
│ 2025-10-03 ┆ claude-sonnet-4-5…┆ 574 ┆ 10,057 ┆ 1,415 ┆ 53 ┆ 87 ┆ 78 ┆ 30 ┆ 8 │
|
|
556
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
|
|
557
|
-
│ 2025-10-03 ┆ gpt-5-codex ┆ 0 ┆ 1,323 ┆ 0 ┆ 75 ┆ 0 ┆ 20 ┆ 0 ┆ 0 │
|
|
558
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
|
|
559
|
-
│ ┆ TOTAL ┆ 1,475 ┆ 22,905 ┆ 1,468 ┆ 141 ┆ 113 ┆ 125 ┆ 40 ┆ 9 │
|
|
560
|
-
└────────────┴────────────────────┴────────────┴────────────┴─────────────┴──────┴───────┴───────┴───────────┴───────┘
|
|
561
|
-
|
|
562
|
-
📈 Daily Averages (by Provider)
|
|
563
|
-
|
|
564
|
-
┌──────────────┬───────────┬───────────┬────────────┬──────────┬──────────┬──────────┬──────────┬───────────┬──────┐
|
|
565
|
-
│ Provider ┆ EditL/Day ┆ ReadL/Day ┆ WriteL/Day ┆ Bash/Day ┆ Edit/Day ┆ Read/Day ┆ Todo/Day ┆ Write/Day ┆ Days │
|
|
566
|
-
╞══════════════╪═══════════╪═══════════╪════════════╪══════════╪══════════╪══════════╪══════════╪═══════════╪══════╡
|
|
567
|
-
│ 🤖 Claude Code ┆ 737.5 ┆ 10,791 ┆ 734 ┆ 33.0 ┆ 56.5 ┆ 52.5 ┆ 20.0 ┆ 4.5 ┆ 2 │
|
|
568
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┤
|
|
569
|
-
│ 💻 Codex ┆ 0 ┆ 1,323 ┆ 0 ┆ 75.0 ┆ 0.0 ┆ 20.0 ┆ 0.0 ┆ 0.0 ┆ 1 │
|
|
570
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌┤
|
|
571
|
-
│ ⭐ All Providers ┆ 491.7 ┆ 7,635 ┆ 489.3 ┆ 47.0 ┆ 37.7 ┆ 41.7 ┆ 13.3 ┆ 3.0 ┆ 3 │
|
|
572
|
-
└──────────────┴───────────┴───────────┴────────────┴──────────┴──────────┴──────────┴──────────┴───────────┴──────┘
|
|
573
|
-
```
|
|
574
|
-
|
|
575
|
-
**JSON Export** (with `--output`):
|
|
576
|
-
|
|
577
|
-
```json
|
|
578
|
-
[
|
|
579
|
-
{
|
|
580
|
-
"date": "2025-10-02",
|
|
581
|
-
"model": "claude-sonnet-4-5-20250929",
|
|
582
|
-
"editLines": 901,
|
|
583
|
-
"readLines": 11525,
|
|
584
|
-
"writeLines": 53,
|
|
585
|
-
"bashCount": 13,
|
|
586
|
-
"editCount": 26,
|
|
587
|
-
"readCount": 27,
|
|
588
|
-
"todoWriteCount": 10,
|
|
589
|
-
"writeCount": 1
|
|
590
|
-
},
|
|
591
|
-
{
|
|
592
|
-
"date": "2025-10-03",
|
|
593
|
-
"model": "claude-sonnet-4-5-20250929",
|
|
594
|
-
"editLines": 574,
|
|
595
|
-
"readLines": 10057,
|
|
596
|
-
"writeLines": 1415,
|
|
597
|
-
"bashCount": 53,
|
|
598
|
-
"editCount": 87,
|
|
599
|
-
"readCount": 78,
|
|
600
|
-
"todoWriteCount": 30,
|
|
601
|
-
"writeCount": 8
|
|
602
|
-
}
|
|
603
|
-
]
|
|
604
|
-
```
|
|
605
|
-
|
|
606
|
-
### 💡 Use Cases
|
|
607
|
-
|
|
608
|
-
**Single File Analysis**:
|
|
609
|
-
|
|
610
|
-
- **Usage Auditing**: Track what the AI did in each session
|
|
611
|
-
- **Cost Attribution**: Calculate costs per project or feature
|
|
612
|
-
- **Compliance**: Export detailed activity logs
|
|
613
|
-
- **Analysis**: Understand coding patterns and tool usage
|
|
614
|
-
|
|
615
|
-
**Batch Analysis**:
|
|
616
|
-
|
|
617
|
-
- **Productivity Tracking**: Monitor coding activity over time
|
|
618
|
-
- **Tool Usage Patterns**: Identify most-used tools across sessions
|
|
619
|
-
- **Model Comparison**: Compare efficiency between different AI models
|
|
620
|
-
- **Historical Analysis**: Track trends in code operations by date
|
|
621
|
-
|
|
622
|
-
---
|
|
623
|
-
|
|
624
|
-
## 🔧 Version Command
|
|
625
|
-
|
|
626
|
-
**Check your installation.**
|
|
627
|
-
|
|
628
|
-
```bash
|
|
629
|
-
# Formatted output
|
|
630
|
-
vct version
|
|
631
|
-
|
|
632
|
-
# JSON format
|
|
633
|
-
vct version --json
|
|
634
|
-
|
|
635
|
-
# Plain text
|
|
636
|
-
vct version --text
|
|
637
|
-
```
|
|
638
|
-
|
|
639
|
-
### Output
|
|
640
|
-
|
|
641
|
-
```
|
|
642
|
-
🚀 Vibe Coding Tracker
|
|
643
|
-
|
|
644
|
-
┌───────────────┬─────────┐
|
|
645
|
-
│ Version ┆ 0.1.0 │
|
|
646
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
|
|
647
|
-
│ Rust Version ┆ 1.89.0 │
|
|
648
|
-
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
|
|
649
|
-
│ Cargo Version ┆ 1.89.0 │
|
|
650
|
-
└───────────────┴─────────┘
|
|
235
|
+
### Preview: Interactive Dashboard (`vct analysis`)
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
239
|
+
│ 🔍 Analysis Statistics │
|
|
240
|
+
└─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
241
|
+
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
242
|
+
│ Model Edit Lines Read Lines Write Lines Bash Edit Read Write │
|
|
243
|
+
│ │
|
|
244
|
+
│ claude-haiku-4-5-20251001 0 0 0 43 0 59 0 │
|
|
245
|
+
│ claude-opus-4-6 1,280 13,264 1,575 82 146 209 62 │
|
|
246
|
+
│ gemini-3.1-pro-preview 0 0 0 0 0 0 0 │
|
|
247
|
+
│ TOTAL 1,280 13,264 1,575 125 146 268 62 │
|
|
248
|
+
└─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
249
|
+
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
250
|
+
│ Provider EditL/Day ReadL/Day WriteL/Day Bash/Day Edit/Day Read/Day Write/Day Days │
|
|
251
|
+
│ │
|
|
252
|
+
│ 🤖 Claude Code 426.7 4421.3 525.0 41.7 48.7 89.3 20.7 3 │
|
|
253
|
+
│ ✨ Gemini 0 0 0 0.0 0.0 0.0 0.0 1 │
|
|
254
|
+
│ ⭐ All Providers 426.7 4421.3 525.0 41.7 48.7 89.3 20.7 3 │
|
|
255
|
+
└─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
256
|
+
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
257
|
+
│ 📝 Lines: 16,119 | 🔧 Tools: 601 | 📊 Models: 3 | ⚡ CPU: 3.6% | 🧠 Mem: 140 MB │
|
|
258
|
+
└─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
259
|
+
Press 'q', 'Esc', 'Ctrl+C' to quit | Press 'r' to refresh
|
|
651
260
|
```
|
|
652
261
|
|
|
653
262
|
---
|
|
@@ -667,72 +276,18 @@ vct update --check
|
|
|
667
276
|
# Interactive update with confirmation
|
|
668
277
|
vct update
|
|
669
278
|
|
|
670
|
-
# Force update
|
|
279
|
+
# Force update — always downloads latest version
|
|
671
280
|
vct update --force
|
|
672
281
|
```
|
|
673
282
|
|
|
674
|
-
###
|
|
675
|
-
|
|
676
|
-
1. **Check Latest Version**: Fetches the latest release from GitHub API
|
|
677
|
-
2. **Compare Versions**: Compares current version with the latest available (skipped with `--force`)
|
|
678
|
-
3. **Download Binary**: Downloads the appropriate binary for your platform (Linux/macOS/Windows)
|
|
679
|
-
4. **Smart Replacement**:
|
|
680
|
-
- **Linux/macOS**: Automatically replaces the binary (backs up old version to `.old`)
|
|
681
|
-
- **Windows**: Downloads as `.new` and creates a batch script for safe replacement
|
|
283
|
+
### Preview (`vct update --check`)
|
|
682
284
|
|
|
683
|
-
### 🔄 Force Update Mode
|
|
684
|
-
|
|
685
|
-
The `--force` flag bypasses version checking and **always downloads** the latest release:
|
|
686
|
-
|
|
687
|
-
```bash
|
|
688
|
-
# Force reinstall the latest version (useful for corrupted installations)
|
|
689
|
-
vct update --force
|
|
690
285
|
```
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
- Reinstall after corrupted binary
|
|
695
|
-
- Force download latest release without version check
|
|
696
|
-
- Troubleshooting installation issues
|
|
697
|
-
|
|
698
|
-
**Only fails if**: No binary is found for your platform (OS/architecture)
|
|
699
|
-
|
|
700
|
-
### 🎯 Works for All Installation Methods
|
|
701
|
-
|
|
702
|
-
Whether you installed via **npm**, **pip**, **cargo**, or **manually**, `vct update` will work the same way:
|
|
703
|
-
|
|
704
|
-
```bash
|
|
705
|
-
$ vct update --check
|
|
706
|
-
🔍 Checking for updates...
|
|
707
|
-
📌 Current version: 0.1.6
|
|
708
|
-
📌 Latest version: v0.1.7
|
|
709
|
-
|
|
710
|
-
🆕 New version available: v0.1.7
|
|
711
|
-
|
|
712
|
-
💡 To update, run:
|
|
713
|
-
vct update
|
|
286
|
+
📋 Current version: v0.5.10
|
|
287
|
+
🔍 Checking for latest release...
|
|
288
|
+
✅ Latest version: v0.5.10 — you are up to date!
|
|
714
289
|
```
|
|
715
290
|
|
|
716
|
-
**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.
|
|
717
|
-
|
|
718
|
-
### Platform Support
|
|
719
|
-
|
|
720
|
-
The update command automatically detects your platform and downloads the correct archive:
|
|
721
|
-
|
|
722
|
-
- **Linux**: `vibe_coding_tracker-v{version}-linux-x64-gnu.tar.gz`, `vibe_coding_tracker-v{version}-linux-arm64-gnu.tar.gz`
|
|
723
|
-
- **macOS**: `vibe_coding_tracker-v{version}-macos-x64.tar.gz`, `vibe_coding_tracker-v{version}-macos-arm64.tar.gz`
|
|
724
|
-
- **Windows**: `vibe_coding_tracker-v{version}-windows-x64.zip`, `vibe_coding_tracker-v{version}-windows-arm64.zip`
|
|
725
|
-
|
|
726
|
-
### Windows Update Process
|
|
727
|
-
|
|
728
|
-
On Windows, the binary cannot be replaced while running. The update command:
|
|
729
|
-
|
|
730
|
-
1. Downloads the new version as `vct.new`
|
|
731
|
-
2. Creates an update script (`update_vct.bat`)
|
|
732
|
-
3. Displays instructions to complete the update
|
|
733
|
-
|
|
734
|
-
Run the batch script after closing the application to finish the update.
|
|
735
|
-
|
|
736
291
|
---
|
|
737
292
|
|
|
738
293
|
## 💡 Smart Pricing System
|
|
@@ -754,15 +309,6 @@ Run the batch script after closing the application to finish the update.
|
|
|
754
309
|
4. 🎯 **Fuzzy (AI-powered)**: Uses Jaro-Winkler similarity (70% threshold)
|
|
755
310
|
5. 💵 **Fallback**: Shows $0.00 if no match found
|
|
756
311
|
|
|
757
|
-
### Cost Calculation
|
|
758
|
-
|
|
759
|
-
```
|
|
760
|
-
Total Cost = (Input Tokens × Input Cost) +
|
|
761
|
-
(Output Tokens × Output Cost) +
|
|
762
|
-
(Cache Read × Cache Read Cost) +
|
|
763
|
-
(Cache Creation × Cache Creation Cost)
|
|
764
|
-
```
|
|
765
|
-
|
|
766
312
|
---
|
|
767
313
|
|
|
768
314
|
## 🐳 Docker Support
|
|
@@ -779,125 +325,3 @@ docker run --rm \
|
|
|
779
325
|
-v ~/.gemini:/root/.gemini \
|
|
780
326
|
vibe_coding_tracker:latest usage
|
|
781
327
|
```
|
|
782
|
-
|
|
783
|
-
---
|
|
784
|
-
|
|
785
|
-
## 🔍 Troubleshooting
|
|
786
|
-
|
|
787
|
-
### Pricing Data Not Loading
|
|
788
|
-
|
|
789
|
-
```bash
|
|
790
|
-
# Check cache
|
|
791
|
-
ls -la ~/.vibe_coding_tracker/
|
|
792
|
-
|
|
793
|
-
# Force refresh
|
|
794
|
-
rm -rf ~/.vibe_coding_tracker/
|
|
795
|
-
vct usage
|
|
796
|
-
|
|
797
|
-
# Debug mode
|
|
798
|
-
RUST_LOG=debug vct usage
|
|
799
|
-
```
|
|
800
|
-
|
|
801
|
-
### No Usage Data Shown
|
|
802
|
-
|
|
803
|
-
```bash
|
|
804
|
-
# Verify session directories
|
|
805
|
-
ls -la ~/.claude/projects/
|
|
806
|
-
ls -la ~/.codex/sessions/
|
|
807
|
-
ls -la ~/.copilot/sessions/
|
|
808
|
-
ls -la ~/.gemini/tmp/
|
|
809
|
-
|
|
810
|
-
# Count session files
|
|
811
|
-
find ~/.claude/projects -name "*.jsonl" | wc -l
|
|
812
|
-
find ~/.codex/sessions -name "*.jsonl" | wc -l
|
|
813
|
-
find ~/.copilot/sessions -name "*.json" | wc -l
|
|
814
|
-
find ~/.gemini/tmp -name "*.json" | wc -l
|
|
815
|
-
```
|
|
816
|
-
|
|
817
|
-
### Analysis Command Fails
|
|
818
|
-
|
|
819
|
-
```bash
|
|
820
|
-
# Validate JSONL format
|
|
821
|
-
jq empty < your-file.jsonl
|
|
822
|
-
|
|
823
|
-
# Check file permissions
|
|
824
|
-
ls -la your-file.jsonl
|
|
825
|
-
|
|
826
|
-
# Run with debug output
|
|
827
|
-
RUST_LOG=debug vct analysis --path your-file.jsonl
|
|
828
|
-
```
|
|
829
|
-
|
|
830
|
-
### Interactive Mode Issues
|
|
831
|
-
|
|
832
|
-
```bash
|
|
833
|
-
# Reset terminal if broken
|
|
834
|
-
reset
|
|
835
|
-
|
|
836
|
-
# Check terminal type
|
|
837
|
-
echo $TERM # Should be xterm-256color or compatible
|
|
838
|
-
|
|
839
|
-
# Use static table as fallback
|
|
840
|
-
vct usage --table
|
|
841
|
-
```
|
|
842
|
-
|
|
843
|
-
---
|
|
844
|
-
|
|
845
|
-
## ⚡ Performance
|
|
846
|
-
|
|
847
|
-
Built with Rust for **speed** and **reliability**:
|
|
848
|
-
|
|
849
|
-
| Operation | Time |
|
|
850
|
-
| ------------------- | ------ |
|
|
851
|
-
| Parse 10MB JSONL | ~320ms |
|
|
852
|
-
| Analyze 1000 events | ~45ms |
|
|
853
|
-
| Load cached pricing | ~2ms |
|
|
854
|
-
| Interactive refresh | ~30ms |
|
|
855
|
-
|
|
856
|
-
**Binary Size**: ~3-5 MB (stripped)
|
|
857
|
-
|
|
858
|
-
---
|
|
859
|
-
|
|
860
|
-
## 📚 Learn More
|
|
861
|
-
|
|
862
|
-
- **Developer Docs**: See [.github/copilot-instructions.md](.github/copilot-instructions.md)
|
|
863
|
-
- **Report Issues**: [GitHub Issues](https://github.com/Mai0313/VibeCodingTracker/issues)
|
|
864
|
-
- **Source Code**: [GitHub Repository](https://github.com/Mai0313/VibeCodingTracker)
|
|
865
|
-
|
|
866
|
-
---
|
|
867
|
-
|
|
868
|
-
## 🤝 Contributing
|
|
869
|
-
|
|
870
|
-
Contributions welcome! Here's how:
|
|
871
|
-
|
|
872
|
-
1. Fork the repository
|
|
873
|
-
2. Create your feature branch
|
|
874
|
-
3. Make your changes
|
|
875
|
-
4. Submit a pull request
|
|
876
|
-
|
|
877
|
-
For development setup and guidelines, see [.github/copilot-instructions.md](.github/copilot-instructions.md).
|
|
878
|
-
|
|
879
|
-
---
|
|
880
|
-
|
|
881
|
-
## 📄 License
|
|
882
|
-
|
|
883
|
-
MIT License - see [LICENSE](LICENSE) for details.
|
|
884
|
-
|
|
885
|
-
---
|
|
886
|
-
|
|
887
|
-
## 🙏 Credits
|
|
888
|
-
|
|
889
|
-
- [LiteLLM](https://github.com/BerriAI/litellm) for model pricing data
|
|
890
|
-
- Claude Code, Codex, Copilot, and Gemini teams for creating amazing AI coding assistants
|
|
891
|
-
- The Rust community for excellent tooling
|
|
892
|
-
|
|
893
|
-
---
|
|
894
|
-
|
|
895
|
-
<center>
|
|
896
|
-
|
|
897
|
-
**Save money. Track usage. Code smarter.**
|
|
898
|
-
|
|
899
|
-
[⭐ Star this project](https://github.com/Mai0313/VibeCodingTracker) if you find it useful!
|
|
900
|
-
|
|
901
|
-
Made with 🦀 Rust
|
|
902
|
-
|
|
903
|
-
</center>
|