vibe-coding-tracker 1.7.0__tar.gz → 1.8.0__tar.gz
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.
- {vibe_coding_tracker-1.7.0 → vibe_coding_tracker-1.8.0}/PKG-INFO +70 -7
- {vibe_coding_tracker-1.7.0 → vibe_coding_tracker-1.8.0}/README.md +69 -6
- {vibe_coding_tracker-1.7.0 → vibe_coding_tracker-1.8.0}/pyproject.toml +1 -1
- {vibe_coding_tracker-1.7.0 → vibe_coding_tracker-1.8.0}/src/vibe_coding_tracker/binaries/linux-arm64-gnu/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-1.7.0 → vibe_coding_tracker-1.8.0}/src/vibe_coding_tracker/binaries/linux-x64-gnu/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-1.7.0 → vibe_coding_tracker-1.8.0}/src/vibe_coding_tracker/binaries/macos-arm64/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-1.7.0 → vibe_coding_tracker-1.8.0}/src/vibe_coding_tracker/binaries/macos-x64/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-1.7.0 → vibe_coding_tracker-1.8.0}/src/vibe_coding_tracker/binaries/windows-arm64/vibe_coding_tracker.exe +0 -0
- {vibe_coding_tracker-1.7.0 → vibe_coding_tracker-1.8.0}/src/vibe_coding_tracker/binaries/windows-x64/vibe_coding_tracker.exe +0 -0
- {vibe_coding_tracker-1.7.0 → vibe_coding_tracker-1.8.0}/src/vibe_coding_tracker/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: vibe-coding-tracker
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.8.0
|
|
4
4
|
Summary: Vibe Coding Tracker - AI coding assistant telemetry/usage parser, aggregate JSONL events into CodeAnalysis results
|
|
5
5
|
Keywords: cli,ai,coding-assistant,telemetry,claude,codex,gemini,usage-tracker,analytics
|
|
6
6
|
Author: Wei Lee
|
|
@@ -74,7 +74,7 @@ Choose your preferred view:
|
|
|
74
74
|
|
|
75
75
|
### Zero Configuration
|
|
76
76
|
|
|
77
|
-
Automatically detects and processes logs from Claude Code, Codex, Copilot, Gemini, OpenCode, and Cursor. No setup required — just run and analyze.
|
|
77
|
+
Automatically detects and processes logs from Claude Code, Codex, Copilot, Gemini, OpenCode, and Cursor. No setup required — just run and analyze. A `~/.vct/config.toml` is created with sensible defaults on first run if you ever want to tweak behavior (see [Configuration](#configuration)).
|
|
78
78
|
|
|
79
79
|
### Rich Insights
|
|
80
80
|
|
|
@@ -175,6 +175,7 @@ Commands:
|
|
|
175
175
|
version Display version information
|
|
176
176
|
update Update to the latest version from GitHub releases
|
|
177
177
|
fetch Fetch a provider's raw quota/usage API response
|
|
178
|
+
config Show or edit the persistent settings file (~/.vct/config.toml)
|
|
178
179
|
help Print this message or the help of the given subcommand(s)
|
|
179
180
|
```
|
|
180
181
|
|
|
@@ -237,7 +238,7 @@ vct usage --table --merge-providers
|
|
|
237
238
|
> Model rows are sorted by cost in ascending order, so the highest-spending model is listed last (right above the `TOTAL` row in `--table`). This applies to the interactive dashboard, `--table`, and `--text` output; `--json` preserves the same order. The interactive dashboard also hides models with zero usage in the selected range.
|
|
238
239
|
|
|
239
240
|
> [!TIP]
|
|
240
|
-
> The same model can show up as several rows when it is routed under different provider prefixes (`openai/gpt-5.5`, `azure/gpt-5.5`, plain `gpt-5.5`). `--merge-providers` collapses rows that share the base name after the first `/` (versions like `gpt-5.5` vs `gpt-5.4` stay separate) and sums their already-priced cost. In the interactive dashboard, press `m` to toggle it live; `--merge-providers` opens the dashboard already merged. `--json` is left as the raw per-model export.
|
|
241
|
+
> The same model can show up as several rows when it is routed under different provider prefixes (`openai/gpt-5.5`, `azure/gpt-5.5`, plain `gpt-5.5`). `--merge-providers` collapses rows that share the base name after the first `/` (versions like `gpt-5.5` vs `gpt-5.4` stay separate) and sums their already-priced cost. In the interactive dashboard, press `m` to toggle it live (the choice is saved to `~/.vct/config.toml`, so the next launch remembers it); `--merge-providers` opens the dashboard already merged. `--json` is left as the raw per-model export.
|
|
241
242
|
|
|
242
243
|
### Preview: Interactive Dashboard (`vct usage`)
|
|
243
244
|
|
|
@@ -258,7 +259,7 @@ vct usage --table --merge-providers
|
|
|
258
259
|
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
259
260
|
│ Total Cost: $79.33 | Total Tokens: 49.3M | Models: 3 | Memory: 42.8 MB │
|
|
260
261
|
└─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
261
|
-
↑/↓ scroll
|
|
262
|
+
↑/↓ scroll m merge r refresh q quit | ★ github.com/Mai0313/VibeCodingTracker
|
|
262
263
|
```
|
|
263
264
|
|
|
264
265
|
### Preview: Table & JSON (`vct usage`)
|
|
@@ -315,11 +316,11 @@ The tool automatically scans these directories:
|
|
|
315
316
|
- `~/.copilot/session-state/<sessionId>/events.jsonl` (Copilot CLI)
|
|
316
317
|
- `~/.gemini/tmp/<project_hash>/chats/*.jsonl` (Gemini CLI)
|
|
317
318
|
- `~/.local/share/opencode/opencode.db` (OpenCode — SQLite database; honors `$XDG_DATA_HOME`)
|
|
318
|
-
- `~/.cursor/chats/*/*/store.db` (Cursor — SQLite chat stores, for `analysis`
|
|
319
|
+
- `~/.cursor/chats/*/*/store.db` (Cursor — SQLite chat stores, used for `analysis` and a local `usage` estimate consistent with the other providers)
|
|
319
320
|
|
|
320
321
|
### Live Quota Panels
|
|
321
322
|
|
|
322
|
-
`vct usage` shows **live remaining quota for Claude Code, Codex, GitHub Copilot, and Cursor right in the dashboard — with zero setup.** No status-line hook, no
|
|
323
|
+
`vct usage` shows **live remaining quota for Claude Code, Codex, GitHub Copilot, and Cursor right in the dashboard — with zero setup.** No status-line hook, no credentials to enter: vct reads each provider's own credentials, calls its usage API on a background thread, and keeps the panels current while you work. (Prefer a quieter dashboard? Trim `quota_panels` in [`config.toml`](#configuration), or set it to `[]` to hide the band.)
|
|
323
324
|
|
|
324
325
|
```
|
|
325
326
|
┌ Claude ─────────────────┐┌ Codex ──────────────────┐┌ Copilot ────────────────┐┌ Cursor ─────────────────┐
|
|
@@ -409,7 +410,7 @@ vct analysis --output today.json --daily
|
|
|
409
410
|
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
410
411
|
│ Total Lines: 16.1K | Total Tools: 619 | Models: 3 | Memory: 41.2 MB │
|
|
411
412
|
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
412
|
-
↑/↓ scroll
|
|
413
|
+
↑/↓ scroll r refresh q quit | ★ github.com/Mai0313/VibeCodingTracker
|
|
413
414
|
```
|
|
414
415
|
|
|
415
416
|
### Preview: Table & JSON (`vct analysis`)
|
|
@@ -534,6 +535,68 @@ vct fetch copilot --table
|
|
|
534
535
|
|
|
535
536
|
---
|
|
536
537
|
|
|
538
|
+
## Configuration
|
|
539
|
+
|
|
540
|
+
vct keeps its user settings in `~/.vct/config.toml`. The file is **created with defaults on first run**, so you never have to write it by hand — edit it only when you want to change a default.
|
|
541
|
+
|
|
542
|
+
```toml
|
|
543
|
+
[general]
|
|
544
|
+
# Default time range when no --daily/--weekly/--monthly/--all flag is given.
|
|
545
|
+
# one of: "daily" | "weekly" | "monthly" | "all"
|
|
546
|
+
default_time_range = "all"
|
|
547
|
+
|
|
548
|
+
[usage]
|
|
549
|
+
# Start the usage dashboard with models merged across provider prefixes.
|
|
550
|
+
# Toggled live with `m`; the last state is saved back here.
|
|
551
|
+
merge_models = false
|
|
552
|
+
# Which live quota panels to show in the usage TUI. Remove a name to hide that
|
|
553
|
+
# panel; use an empty list ([]) to hide the whole band.
|
|
554
|
+
quota_panels = ["claude", "codex", "copilot", "cursor"]
|
|
555
|
+
# Seconds between automatic refreshes of the usage TUI (minimum 1).
|
|
556
|
+
refresh_interval_secs = 10
|
|
557
|
+
|
|
558
|
+
[analysis]
|
|
559
|
+
# Seconds between automatic refreshes of the analysis TUI (minimum 1).
|
|
560
|
+
refresh_interval_secs = 10
|
|
561
|
+
|
|
562
|
+
[providers]
|
|
563
|
+
# Include each provider's sessions in usage / analysis. Set a provider to false
|
|
564
|
+
# to skip it entirely (no directory scan, no API).
|
|
565
|
+
claude = true
|
|
566
|
+
codex = true
|
|
567
|
+
copilot = true
|
|
568
|
+
gemini = true
|
|
569
|
+
opencode = true
|
|
570
|
+
cursor = true
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
| Setting | Effect |
|
|
574
|
+
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
|
|
575
|
+
| `general.default_time_range` | Period used when you pass no `--daily/--weekly/--monthly/--all`. An explicit flag always wins. |
|
|
576
|
+
| `usage.merge_models` | Seeds the dashboard merged; the `m` toggle saves your last choice back here. `--merge-providers` forces on. |
|
|
577
|
+
| `usage.quota_panels` | Which quota panels to show (`claude` / `codex` / `copilot` / `cursor`); drop a name to hide it, `[]` to hide the whole band. |
|
|
578
|
+
| `usage.refresh_interval_secs` | Auto-refresh cadence of the `usage` dashboard (seconds). |
|
|
579
|
+
| `analysis.refresh_interval_secs` | Auto-refresh cadence of the `analysis` dashboard (seconds). |
|
|
580
|
+
| `providers.*` | Skip a provider entirely (no scan, no API) when `false` — handy if you don't use one. |
|
|
581
|
+
|
|
582
|
+
> [!NOTE]
|
|
583
|
+
> Cursor `usage` is a **local estimate** from the chat stores, so it behaves like Claude Code / Codex / Copilot / Gemini (all computed from local session files) and needs no network. It undercounts Cursor's real spend, because much of it is billed under Cursor-internal model names the local data cannot price — treat Cursor cost as approximate.
|
|
584
|
+
|
|
585
|
+
### Managing the file
|
|
586
|
+
|
|
587
|
+
```bash
|
|
588
|
+
# Print the config file path
|
|
589
|
+
vct config path
|
|
590
|
+
|
|
591
|
+
# Print the current settings
|
|
592
|
+
vct config show
|
|
593
|
+
|
|
594
|
+
# Open the file in $VISUAL / $EDITOR (falls back to vi / notepad)
|
|
595
|
+
vct config edit
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
---
|
|
599
|
+
|
|
537
600
|
## Smart Pricing System
|
|
538
601
|
|
|
539
602
|
### How It Works
|
|
@@ -48,7 +48,7 @@ Choose your preferred view:
|
|
|
48
48
|
|
|
49
49
|
### Zero Configuration
|
|
50
50
|
|
|
51
|
-
Automatically detects and processes logs from Claude Code, Codex, Copilot, Gemini, OpenCode, and Cursor. No setup required — just run and analyze.
|
|
51
|
+
Automatically detects and processes logs from Claude Code, Codex, Copilot, Gemini, OpenCode, and Cursor. No setup required — just run and analyze. A `~/.vct/config.toml` is created with sensible defaults on first run if you ever want to tweak behavior (see [Configuration](#configuration)).
|
|
52
52
|
|
|
53
53
|
### Rich Insights
|
|
54
54
|
|
|
@@ -149,6 +149,7 @@ Commands:
|
|
|
149
149
|
version Display version information
|
|
150
150
|
update Update to the latest version from GitHub releases
|
|
151
151
|
fetch Fetch a provider's raw quota/usage API response
|
|
152
|
+
config Show or edit the persistent settings file (~/.vct/config.toml)
|
|
152
153
|
help Print this message or the help of the given subcommand(s)
|
|
153
154
|
```
|
|
154
155
|
|
|
@@ -211,7 +212,7 @@ vct usage --table --merge-providers
|
|
|
211
212
|
> Model rows are sorted by cost in ascending order, so the highest-spending model is listed last (right above the `TOTAL` row in `--table`). This applies to the interactive dashboard, `--table`, and `--text` output; `--json` preserves the same order. The interactive dashboard also hides models with zero usage in the selected range.
|
|
212
213
|
|
|
213
214
|
> [!TIP]
|
|
214
|
-
> The same model can show up as several rows when it is routed under different provider prefixes (`openai/gpt-5.5`, `azure/gpt-5.5`, plain `gpt-5.5`). `--merge-providers` collapses rows that share the base name after the first `/` (versions like `gpt-5.5` vs `gpt-5.4` stay separate) and sums their already-priced cost. In the interactive dashboard, press `m` to toggle it live; `--merge-providers` opens the dashboard already merged. `--json` is left as the raw per-model export.
|
|
215
|
+
> The same model can show up as several rows when it is routed under different provider prefixes (`openai/gpt-5.5`, `azure/gpt-5.5`, plain `gpt-5.5`). `--merge-providers` collapses rows that share the base name after the first `/` (versions like `gpt-5.5` vs `gpt-5.4` stay separate) and sums their already-priced cost. In the interactive dashboard, press `m` to toggle it live (the choice is saved to `~/.vct/config.toml`, so the next launch remembers it); `--merge-providers` opens the dashboard already merged. `--json` is left as the raw per-model export.
|
|
215
216
|
|
|
216
217
|
### Preview: Interactive Dashboard (`vct usage`)
|
|
217
218
|
|
|
@@ -232,7 +233,7 @@ vct usage --table --merge-providers
|
|
|
232
233
|
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
233
234
|
│ Total Cost: $79.33 | Total Tokens: 49.3M | Models: 3 | Memory: 42.8 MB │
|
|
234
235
|
└─────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
235
|
-
↑/↓ scroll
|
|
236
|
+
↑/↓ scroll m merge r refresh q quit | ★ github.com/Mai0313/VibeCodingTracker
|
|
236
237
|
```
|
|
237
238
|
|
|
238
239
|
### Preview: Table & JSON (`vct usage`)
|
|
@@ -289,11 +290,11 @@ The tool automatically scans these directories:
|
|
|
289
290
|
- `~/.copilot/session-state/<sessionId>/events.jsonl` (Copilot CLI)
|
|
290
291
|
- `~/.gemini/tmp/<project_hash>/chats/*.jsonl` (Gemini CLI)
|
|
291
292
|
- `~/.local/share/opencode/opencode.db` (OpenCode — SQLite database; honors `$XDG_DATA_HOME`)
|
|
292
|
-
- `~/.cursor/chats/*/*/store.db` (Cursor — SQLite chat stores, for `analysis`
|
|
293
|
+
- `~/.cursor/chats/*/*/store.db` (Cursor — SQLite chat stores, used for `analysis` and a local `usage` estimate consistent with the other providers)
|
|
293
294
|
|
|
294
295
|
### Live Quota Panels
|
|
295
296
|
|
|
296
|
-
`vct usage` shows **live remaining quota for Claude Code, Codex, GitHub Copilot, and Cursor right in the dashboard — with zero setup.** No status-line hook, no
|
|
297
|
+
`vct usage` shows **live remaining quota for Claude Code, Codex, GitHub Copilot, and Cursor right in the dashboard — with zero setup.** No status-line hook, no credentials to enter: vct reads each provider's own credentials, calls its usage API on a background thread, and keeps the panels current while you work. (Prefer a quieter dashboard? Trim `quota_panels` in [`config.toml`](#configuration), or set it to `[]` to hide the band.)
|
|
297
298
|
|
|
298
299
|
```
|
|
299
300
|
┌ Claude ─────────────────┐┌ Codex ──────────────────┐┌ Copilot ────────────────┐┌ Cursor ─────────────────┐
|
|
@@ -383,7 +384,7 @@ vct analysis --output today.json --daily
|
|
|
383
384
|
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
384
385
|
│ Total Lines: 16.1K | Total Tools: 619 | Models: 3 | Memory: 41.2 MB │
|
|
385
386
|
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
386
|
-
↑/↓ scroll
|
|
387
|
+
↑/↓ scroll r refresh q quit | ★ github.com/Mai0313/VibeCodingTracker
|
|
387
388
|
```
|
|
388
389
|
|
|
389
390
|
### Preview: Table & JSON (`vct analysis`)
|
|
@@ -508,6 +509,68 @@ vct fetch copilot --table
|
|
|
508
509
|
|
|
509
510
|
---
|
|
510
511
|
|
|
512
|
+
## Configuration
|
|
513
|
+
|
|
514
|
+
vct keeps its user settings in `~/.vct/config.toml`. The file is **created with defaults on first run**, so you never have to write it by hand — edit it only when you want to change a default.
|
|
515
|
+
|
|
516
|
+
```toml
|
|
517
|
+
[general]
|
|
518
|
+
# Default time range when no --daily/--weekly/--monthly/--all flag is given.
|
|
519
|
+
# one of: "daily" | "weekly" | "monthly" | "all"
|
|
520
|
+
default_time_range = "all"
|
|
521
|
+
|
|
522
|
+
[usage]
|
|
523
|
+
# Start the usage dashboard with models merged across provider prefixes.
|
|
524
|
+
# Toggled live with `m`; the last state is saved back here.
|
|
525
|
+
merge_models = false
|
|
526
|
+
# Which live quota panels to show in the usage TUI. Remove a name to hide that
|
|
527
|
+
# panel; use an empty list ([]) to hide the whole band.
|
|
528
|
+
quota_panels = ["claude", "codex", "copilot", "cursor"]
|
|
529
|
+
# Seconds between automatic refreshes of the usage TUI (minimum 1).
|
|
530
|
+
refresh_interval_secs = 10
|
|
531
|
+
|
|
532
|
+
[analysis]
|
|
533
|
+
# Seconds between automatic refreshes of the analysis TUI (minimum 1).
|
|
534
|
+
refresh_interval_secs = 10
|
|
535
|
+
|
|
536
|
+
[providers]
|
|
537
|
+
# Include each provider's sessions in usage / analysis. Set a provider to false
|
|
538
|
+
# to skip it entirely (no directory scan, no API).
|
|
539
|
+
claude = true
|
|
540
|
+
codex = true
|
|
541
|
+
copilot = true
|
|
542
|
+
gemini = true
|
|
543
|
+
opencode = true
|
|
544
|
+
cursor = true
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
| Setting | Effect |
|
|
548
|
+
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
|
|
549
|
+
| `general.default_time_range` | Period used when you pass no `--daily/--weekly/--monthly/--all`. An explicit flag always wins. |
|
|
550
|
+
| `usage.merge_models` | Seeds the dashboard merged; the `m` toggle saves your last choice back here. `--merge-providers` forces on. |
|
|
551
|
+
| `usage.quota_panels` | Which quota panels to show (`claude` / `codex` / `copilot` / `cursor`); drop a name to hide it, `[]` to hide the whole band. |
|
|
552
|
+
| `usage.refresh_interval_secs` | Auto-refresh cadence of the `usage` dashboard (seconds). |
|
|
553
|
+
| `analysis.refresh_interval_secs` | Auto-refresh cadence of the `analysis` dashboard (seconds). |
|
|
554
|
+
| `providers.*` | Skip a provider entirely (no scan, no API) when `false` — handy if you don't use one. |
|
|
555
|
+
|
|
556
|
+
> [!NOTE]
|
|
557
|
+
> Cursor `usage` is a **local estimate** from the chat stores, so it behaves like Claude Code / Codex / Copilot / Gemini (all computed from local session files) and needs no network. It undercounts Cursor's real spend, because much of it is billed under Cursor-internal model names the local data cannot price — treat Cursor cost as approximate.
|
|
558
|
+
|
|
559
|
+
### Managing the file
|
|
560
|
+
|
|
561
|
+
```bash
|
|
562
|
+
# Print the config file path
|
|
563
|
+
vct config path
|
|
564
|
+
|
|
565
|
+
# Print the current settings
|
|
566
|
+
vct config show
|
|
567
|
+
|
|
568
|
+
# Open the file in $VISUAL / $EDITOR (falls back to vi / notepad)
|
|
569
|
+
vct config edit
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
---
|
|
573
|
+
|
|
511
574
|
## Smart Pricing System
|
|
512
575
|
|
|
513
576
|
### How It Works
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "vibe_coding_tracker"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.8.0"
|
|
4
4
|
description = "Vibe Coding Tracker - AI coding assistant telemetry/usage parser, aggregate JSONL events into CodeAnalysis results"
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "Wei Lee", email = "mai@mai0313.com" }
|
|
index 44ca5f5..80c9e18 100755
|
|
|
Binary file
|
|
index b87895f..08a24f6 100755
|
|
|
Binary file
|
|
index dc70458..c719cb5 100755
|
|
|
Binary file
|
|
index 78e4827..8c6cff6 100755
|
|
|
Binary file
|
|
index 172cc2a..42420fa 100644
|
|
|
Binary file
|
|
index 2fceeba..21aeb38 100644
|
|
|
Binary file
|
|
File without changes
|