vibe-coding-tracker 1.10.0__tar.gz → 1.12.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.10.0 → vibe_coding_tracker-1.12.0}/PKG-INFO +26 -12
- {vibe_coding_tracker-1.10.0 → vibe_coding_tracker-1.12.0}/README.md +25 -11
- {vibe_coding_tracker-1.10.0 → vibe_coding_tracker-1.12.0}/pyproject.toml +1 -1
- {vibe_coding_tracker-1.10.0 → vibe_coding_tracker-1.12.0}/src/vibe_coding_tracker/binaries/linux-arm64-gnu/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-1.10.0 → vibe_coding_tracker-1.12.0}/src/vibe_coding_tracker/binaries/linux-x64-gnu/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-1.10.0 → vibe_coding_tracker-1.12.0}/src/vibe_coding_tracker/binaries/macos-arm64/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-1.10.0 → vibe_coding_tracker-1.12.0}/src/vibe_coding_tracker/binaries/macos-x64/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-1.10.0 → vibe_coding_tracker-1.12.0}/src/vibe_coding_tracker/binaries/windows-arm64/vibe_coding_tracker.exe +0 -0
- {vibe_coding_tracker-1.10.0 → vibe_coding_tracker-1.12.0}/src/vibe_coding_tracker/binaries/windows-x64/vibe_coding_tracker.exe +0 -0
- {vibe_coding_tracker-1.10.0 → vibe_coding_tracker-1.12.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.12.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
|
|
@@ -45,7 +45,7 @@ Description-Content-Type: text/markdown
|
|
|
45
45
|
|
|
46
46
|
</div>
|
|
47
47
|
|
|
48
|
-
**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, Gemini, OpenCode, and
|
|
48
|
+
**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, Gemini, OpenCode, Cursor, and Hermes usage — with detailed cost breakdowns, token statistics, and code operation insights, all while keeping the memory footprint minimal.
|
|
49
49
|
|
|
50
50
|
[English](README.md) | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md)
|
|
51
51
|
|
|
@@ -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
|
|
77
|
+
Automatically detects and processes logs from Claude Code, Codex, Copilot, Gemini, OpenCode, Cursor, and Hermes. 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
|
|
|
@@ -88,15 +88,15 @@ Automatically detects and processes logs from Claude Code, Codex, Copilot, Gemin
|
|
|
88
88
|
|
|
89
89
|
## Key Features
|
|
90
90
|
|
|
91
|
-
| Feature | Description
|
|
92
|
-
| --------------------- |
|
|
93
|
-
| **Multi-Provider** | Claude Code, Codex, Copilot, Gemini, OpenCode, and
|
|
94
|
-
| **Smart Pricing** | Fuzzy model matching + daily cache from LiteLLM
|
|
95
|
-
| **4 Display Modes** | Interactive TUI, static table, plain text, and JSON
|
|
96
|
-
| **Dual Analysis** | Token/cost stats (`usage`) + code operation stats (`analysis`)
|
|
97
|
-
| **Live Quota Panels** | Live remaining quota for Claude, Codex, Copilot, and Cursor
|
|
98
|
-
| **Ultra-Lightweight** | Under ~50 MB RSS in the TUI, streaming JSONL parse — built with Rust
|
|
99
|
-
| **Live Updates** | Auto-refreshing dashboard (every 10s) with change highlighting
|
|
91
|
+
| Feature | Description |
|
|
92
|
+
| --------------------- | ------------------------------------------------------------------------------------ |
|
|
93
|
+
| **Multi-Provider** | Claude Code, Codex, Copilot, Gemini, OpenCode, Cursor, and Hermes — all in one place |
|
|
94
|
+
| **Smart Pricing** | Fuzzy model matching + daily cache from LiteLLM |
|
|
95
|
+
| **4 Display Modes** | Interactive TUI, static table, plain text, and JSON |
|
|
96
|
+
| **Dual Analysis** | Token/cost stats (`usage`) + code operation stats (`analysis`) |
|
|
97
|
+
| **Live Quota Panels** | Live remaining quota for Claude, Codex, Copilot, and Cursor |
|
|
98
|
+
| **Ultra-Lightweight** | Under ~50 MB RSS in the TUI, streaming JSONL parse — built with Rust |
|
|
99
|
+
| **Live Updates** | Auto-refreshing dashboard (every 10s) with change highlighting |
|
|
100
100
|
|
|
101
101
|
---
|
|
102
102
|
|
|
@@ -317,6 +317,7 @@ The tool automatically scans these directories:
|
|
|
317
317
|
- `~/.gemini/tmp/<project_hash>/chats/*.jsonl` (Gemini CLI)
|
|
318
318
|
- `~/.local/share/opencode/opencode.db` (OpenCode — SQLite database; honors `$XDG_DATA_HOME`)
|
|
319
319
|
- `~/.cursor/chats/*/*/store.db` (Cursor — SQLite chat stores, used for `analysis` and a local `usage` estimate consistent with the other providers)
|
|
320
|
+
- `~/.hermes/state.db` (Hermes — SQLite database, honors `$HERMES_HOME`; `usage` only)
|
|
320
321
|
|
|
321
322
|
### Live Quota Panels
|
|
322
323
|
|
|
@@ -574,6 +575,13 @@ copilot = true
|
|
|
574
575
|
gemini = true
|
|
575
576
|
opencode = true
|
|
576
577
|
cursor = true
|
|
578
|
+
|
|
579
|
+
[logging]
|
|
580
|
+
# Minimum level written to ~/.vct/logs/vct-YYYY-MM-DD.log.
|
|
581
|
+
# One of: "off" | "error" | "warn" | "info" | "debug" | "trace".
|
|
582
|
+
level = "warn"
|
|
583
|
+
# Days of daily log files to keep; older files are pruned on startup. 0 keeps every file.
|
|
584
|
+
retention_days = 7
|
|
577
585
|
```
|
|
578
586
|
|
|
579
587
|
| Setting | Effect |
|
|
@@ -585,10 +593,15 @@ cursor = true
|
|
|
585
593
|
| `usage.quota.refresh_interval` | Poll cadence for every live quota panel (seconds); higher is safer against a provider's rate limits. |
|
|
586
594
|
| `analysis.refresh_interval` | Redraw cadence of the `analysis` dashboard (seconds). |
|
|
587
595
|
| `providers.*` | Skip a provider entirely (no scan, no API) when `false` — handy if you don't use one. |
|
|
596
|
+
| `logging.level` | Minimum severity written to the log file (`off`..`trace`); never printed to the terminal. |
|
|
597
|
+
| `logging.retention_days` | Days of daily log files to keep; older `vct-*.log` are pruned on startup (`0` keeps all). |
|
|
588
598
|
|
|
589
599
|
> [!NOTE]
|
|
590
600
|
> 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.
|
|
591
601
|
|
|
602
|
+
> [!NOTE]
|
|
603
|
+
> vct writes diagnostics to `~/.vct/logs/vct-YYYY-MM-DD.log` (plain text, file only — never shown in the dashboard). It stays quiet when healthy (default level `warn`) and the file is created lazily, so a healthy run leaves nothing behind. When a quota fetch fails or a session is skipped, that is where the reason is recorded — bump `logging.level` to `debug` for the full detail.
|
|
604
|
+
|
|
592
605
|
### Managing the file
|
|
593
606
|
|
|
594
607
|
```bash
|
|
@@ -633,6 +646,7 @@ vct config migrate
|
|
|
633
646
|
|
|
634
647
|
- **Beyond tokens**: Claude web-search tool calls (`server_tool_use.web_search_requests`) are billed per query on top of the token cost; every other model's per-query charge is $0.
|
|
635
648
|
- **OpenCode**: a novel model name is priced from its tokens only on an **exact** LiteLLM match; with no exact match, vct trusts the assistant message's own stored cost instead of guessing from a loosely-similar name.
|
|
649
|
+
- **Hermes**: priced the same way as OpenCode — an **exact** LiteLLM match prices from tokens, otherwise vct uses Hermes's own stored cost.
|
|
636
650
|
- **Cache is raw**: the daily cache stores the filtered upstream LiteLLM JSON (not a derived shape), so tiered / batch pricing stays available without re-fetching, and a small in-process LRU keeps repeated lookups cheap during a TUI refresh.
|
|
637
651
|
|
|
638
652
|
---
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
|
-
**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, Gemini, OpenCode, and
|
|
22
|
+
**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, Gemini, OpenCode, Cursor, and Hermes usage — with detailed cost breakdowns, token statistics, and code operation insights, all while keeping the memory footprint minimal.
|
|
23
23
|
|
|
24
24
|
[English](README.md) | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md)
|
|
25
25
|
|
|
@@ -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
|
|
51
|
+
Automatically detects and processes logs from Claude Code, Codex, Copilot, Gemini, OpenCode, Cursor, and Hermes. 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
|
|
|
@@ -62,15 +62,15 @@ Automatically detects and processes logs from Claude Code, Codex, Copilot, Gemin
|
|
|
62
62
|
|
|
63
63
|
## Key Features
|
|
64
64
|
|
|
65
|
-
| Feature | Description
|
|
66
|
-
| --------------------- |
|
|
67
|
-
| **Multi-Provider** | Claude Code, Codex, Copilot, Gemini, OpenCode, and
|
|
68
|
-
| **Smart Pricing** | Fuzzy model matching + daily cache from LiteLLM
|
|
69
|
-
| **4 Display Modes** | Interactive TUI, static table, plain text, and JSON
|
|
70
|
-
| **Dual Analysis** | Token/cost stats (`usage`) + code operation stats (`analysis`)
|
|
71
|
-
| **Live Quota Panels** | Live remaining quota for Claude, Codex, Copilot, and Cursor
|
|
72
|
-
| **Ultra-Lightweight** | Under ~50 MB RSS in the TUI, streaming JSONL parse — built with Rust
|
|
73
|
-
| **Live Updates** | Auto-refreshing dashboard (every 10s) with change highlighting
|
|
65
|
+
| Feature | Description |
|
|
66
|
+
| --------------------- | ------------------------------------------------------------------------------------ |
|
|
67
|
+
| **Multi-Provider** | Claude Code, Codex, Copilot, Gemini, OpenCode, Cursor, and Hermes — all in one place |
|
|
68
|
+
| **Smart Pricing** | Fuzzy model matching + daily cache from LiteLLM |
|
|
69
|
+
| **4 Display Modes** | Interactive TUI, static table, plain text, and JSON |
|
|
70
|
+
| **Dual Analysis** | Token/cost stats (`usage`) + code operation stats (`analysis`) |
|
|
71
|
+
| **Live Quota Panels** | Live remaining quota for Claude, Codex, Copilot, and Cursor |
|
|
72
|
+
| **Ultra-Lightweight** | Under ~50 MB RSS in the TUI, streaming JSONL parse — built with Rust |
|
|
73
|
+
| **Live Updates** | Auto-refreshing dashboard (every 10s) with change highlighting |
|
|
74
74
|
|
|
75
75
|
---
|
|
76
76
|
|
|
@@ -291,6 +291,7 @@ The tool automatically scans these directories:
|
|
|
291
291
|
- `~/.gemini/tmp/<project_hash>/chats/*.jsonl` (Gemini CLI)
|
|
292
292
|
- `~/.local/share/opencode/opencode.db` (OpenCode — SQLite database; honors `$XDG_DATA_HOME`)
|
|
293
293
|
- `~/.cursor/chats/*/*/store.db` (Cursor — SQLite chat stores, used for `analysis` and a local `usage` estimate consistent with the other providers)
|
|
294
|
+
- `~/.hermes/state.db` (Hermes — SQLite database, honors `$HERMES_HOME`; `usage` only)
|
|
294
295
|
|
|
295
296
|
### Live Quota Panels
|
|
296
297
|
|
|
@@ -548,6 +549,13 @@ copilot = true
|
|
|
548
549
|
gemini = true
|
|
549
550
|
opencode = true
|
|
550
551
|
cursor = true
|
|
552
|
+
|
|
553
|
+
[logging]
|
|
554
|
+
# Minimum level written to ~/.vct/logs/vct-YYYY-MM-DD.log.
|
|
555
|
+
# One of: "off" | "error" | "warn" | "info" | "debug" | "trace".
|
|
556
|
+
level = "warn"
|
|
557
|
+
# Days of daily log files to keep; older files are pruned on startup. 0 keeps every file.
|
|
558
|
+
retention_days = 7
|
|
551
559
|
```
|
|
552
560
|
|
|
553
561
|
| Setting | Effect |
|
|
@@ -559,10 +567,15 @@ cursor = true
|
|
|
559
567
|
| `usage.quota.refresh_interval` | Poll cadence for every live quota panel (seconds); higher is safer against a provider's rate limits. |
|
|
560
568
|
| `analysis.refresh_interval` | Redraw cadence of the `analysis` dashboard (seconds). |
|
|
561
569
|
| `providers.*` | Skip a provider entirely (no scan, no API) when `false` — handy if you don't use one. |
|
|
570
|
+
| `logging.level` | Minimum severity written to the log file (`off`..`trace`); never printed to the terminal. |
|
|
571
|
+
| `logging.retention_days` | Days of daily log files to keep; older `vct-*.log` are pruned on startup (`0` keeps all). |
|
|
562
572
|
|
|
563
573
|
> [!NOTE]
|
|
564
574
|
> 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.
|
|
565
575
|
|
|
576
|
+
> [!NOTE]
|
|
577
|
+
> vct writes diagnostics to `~/.vct/logs/vct-YYYY-MM-DD.log` (plain text, file only — never shown in the dashboard). It stays quiet when healthy (default level `warn`) and the file is created lazily, so a healthy run leaves nothing behind. When a quota fetch fails or a session is skipped, that is where the reason is recorded — bump `logging.level` to `debug` for the full detail.
|
|
578
|
+
|
|
566
579
|
### Managing the file
|
|
567
580
|
|
|
568
581
|
```bash
|
|
@@ -607,6 +620,7 @@ vct config migrate
|
|
|
607
620
|
|
|
608
621
|
- **Beyond tokens**: Claude web-search tool calls (`server_tool_use.web_search_requests`) are billed per query on top of the token cost; every other model's per-query charge is $0.
|
|
609
622
|
- **OpenCode**: a novel model name is priced from its tokens only on an **exact** LiteLLM match; with no exact match, vct trusts the assistant message's own stored cost instead of guessing from a loosely-similar name.
|
|
623
|
+
- **Hermes**: priced the same way as OpenCode — an **exact** LiteLLM match prices from tokens, otherwise vct uses Hermes's own stored cost.
|
|
610
624
|
- **Cache is raw**: the daily cache stores the filtered upstream LiteLLM JSON (not a derived shape), so tiered / batch pricing stays available without re-fetching, and a small in-process LRU keeps repeated lookups cheap during a TUI refresh.
|
|
611
625
|
|
|
612
626
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "vibe_coding_tracker"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.12.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 9ab7536..c84b0dc 100755
|
|
|
Binary file
|
|
index 058b517..88e6f69 100755
|
|
|
Binary file
|
|
index 94dfe6c..be58b93 100755
|
|
|
Binary file
|
|
index 2c11259..93f30de 100755
|
|
|
Binary file
|
|
index 80c6caa..8719103 100644
|
|
|
Binary file
|
|
index c2cb3d6..537bd4c 100644
|
|
|
Binary file
|
{vibe_coding_tracker-1.10.0 → vibe_coding_tracker-1.12.0}/src/vibe_coding_tracker/__init__.py
RENAMED
|
File without changes
|