vibe-coding-tracker 1.8.0__tar.gz → 1.9.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: vibe-coding-tracker
3
- Version: 1.8.0
3
+ Version: 1.9.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
@@ -320,7 +320,7 @@ The tool automatically scans these directories:
320
320
 
321
321
  ### Live Quota Panels
322
322
 
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
+ `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 `panels` under `[usage.quota]` in [`config.toml`](#configuration), or set it to `[]` to hide the band.)
324
324
 
325
325
  ```
326
326
  ┌ Claude ─────────────────┐┌ Codex ──────────────────┐┌ Copilot ────────────────┐┌ Cursor ─────────────────┐
@@ -537,27 +537,33 @@ vct fetch copilot --table
537
537
 
538
538
  ## Configuration
539
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.
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. It is generated from vct's typed settings and carries a `#:schema` directive on the first line, so a schema-aware TOML editor (taplo / VS Code "Even Better TOML") gives you autocomplete and validation. Print the schema yourself with `vct config schema`.
541
541
 
542
542
  ```toml
543
+ #:schema https://raw.githubusercontent.com/Mai0313/VibeCodingTracker/main/vct.schema.json
544
+
543
545
  [general]
544
546
  # Default time range when no --daily/--weekly/--monthly/--all flag is given.
545
- # one of: "daily" | "weekly" | "monthly" | "all"
547
+ # One of: "daily" | "weekly" | "monthly" | "all".
546
548
  default_time_range = "all"
547
549
 
548
550
  [usage]
549
551
  # Start the usage dashboard with models merged across provider prefixes.
550
552
  # Toggled live with `m`; the last state is saved back here.
551
553
  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
554
+ # Seconds between automatic redraws of the usage TUI (minimum 1).
555
+ refresh_interval = 10
556
+
557
+ [usage.quota]
558
+ # Which live quota panels to show. Remove a name to hide that panel; use an
559
+ # empty list ([]) to hide the whole band.
560
+ panels = ["claude", "codex", "copilot", "cursor"]
561
+ # Seconds between live quota-panel polls, shared by every provider (minimum 1).
562
+ refresh_interval = 60
557
563
 
558
564
  [analysis]
559
- # Seconds between automatic refreshes of the analysis TUI (minimum 1).
560
- refresh_interval_secs = 10
565
+ # Seconds between automatic redraws of the analysis TUI (minimum 1).
566
+ refresh_interval = 10
561
567
 
562
568
  [providers]
563
569
  # Include each provider's sessions in usage / analysis. Set a provider to false
@@ -570,14 +576,15 @@ opencode = true
570
576
  cursor = true
571
577
  ```
572
578
 
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. |
579
+ | Setting | Effect |
580
+ | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
581
+ | `general.default_time_range` | Period used when you pass no `--daily/--weekly/--monthly/--all`. An explicit flag always wins. |
582
+ | `usage.merge_models` | Seeds the dashboard merged; the `m` toggle saves your last choice back here. `--merge-providers` forces on. |
583
+ | `usage.refresh_interval` | Redraw cadence of the `usage` dashboard (seconds). |
584
+ | `usage.quota.panels` | Which quota panels to show (`claude` / `codex` / `copilot` / `cursor`); drop a name to hide it, `[]` to hide the whole band. |
585
+ | `usage.quota.refresh_interval` | Poll cadence for every live quota panel (seconds); higher is safer against a provider's rate limits. |
586
+ | `analysis.refresh_interval` | Redraw cadence of the `analysis` dashboard (seconds). |
587
+ | `providers.*` | Skip a provider entirely (no scan, no API) when `false` — handy if you don't use one. |
581
588
 
582
589
  > [!NOTE]
583
590
  > 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.
@@ -593,6 +600,9 @@ vct config show
593
600
 
594
601
  # Open the file in $VISUAL / $EDITOR (falls back to vi / notepad)
595
602
  vct config edit
603
+
604
+ # Print the JSON schema (regenerate with: vct config schema > vct.schema.json)
605
+ vct config schema
596
606
  ```
597
607
 
598
608
  ---
@@ -294,7 +294,7 @@ The tool automatically scans these directories:
294
294
 
295
295
  ### Live Quota Panels
296
296
 
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
+ `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 `panels` under `[usage.quota]` in [`config.toml`](#configuration), or set it to `[]` to hide the band.)
298
298
 
299
299
  ```
300
300
  ┌ Claude ─────────────────┐┌ Codex ──────────────────┐┌ Copilot ────────────────┐┌ Cursor ─────────────────┐
@@ -511,27 +511,33 @@ vct fetch copilot --table
511
511
 
512
512
  ## Configuration
513
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.
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. It is generated from vct's typed settings and carries a `#:schema` directive on the first line, so a schema-aware TOML editor (taplo / VS Code "Even Better TOML") gives you autocomplete and validation. Print the schema yourself with `vct config schema`.
515
515
 
516
516
  ```toml
517
+ #:schema https://raw.githubusercontent.com/Mai0313/VibeCodingTracker/main/vct.schema.json
518
+
517
519
  [general]
518
520
  # Default time range when no --daily/--weekly/--monthly/--all flag is given.
519
- # one of: "daily" | "weekly" | "monthly" | "all"
521
+ # One of: "daily" | "weekly" | "monthly" | "all".
520
522
  default_time_range = "all"
521
523
 
522
524
  [usage]
523
525
  # Start the usage dashboard with models merged across provider prefixes.
524
526
  # Toggled live with `m`; the last state is saved back here.
525
527
  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
528
+ # Seconds between automatic redraws of the usage TUI (minimum 1).
529
+ refresh_interval = 10
530
+
531
+ [usage.quota]
532
+ # Which live quota panels to show. Remove a name to hide that panel; use an
533
+ # empty list ([]) to hide the whole band.
534
+ panels = ["claude", "codex", "copilot", "cursor"]
535
+ # Seconds between live quota-panel polls, shared by every provider (minimum 1).
536
+ refresh_interval = 60
531
537
 
532
538
  [analysis]
533
- # Seconds between automatic refreshes of the analysis TUI (minimum 1).
534
- refresh_interval_secs = 10
539
+ # Seconds between automatic redraws of the analysis TUI (minimum 1).
540
+ refresh_interval = 10
535
541
 
536
542
  [providers]
537
543
  # Include each provider's sessions in usage / analysis. Set a provider to false
@@ -544,14 +550,15 @@ opencode = true
544
550
  cursor = true
545
551
  ```
546
552
 
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. |
553
+ | Setting | Effect |
554
+ | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
555
+ | `general.default_time_range` | Period used when you pass no `--daily/--weekly/--monthly/--all`. An explicit flag always wins. |
556
+ | `usage.merge_models` | Seeds the dashboard merged; the `m` toggle saves your last choice back here. `--merge-providers` forces on. |
557
+ | `usage.refresh_interval` | Redraw cadence of the `usage` dashboard (seconds). |
558
+ | `usage.quota.panels` | Which quota panels to show (`claude` / `codex` / `copilot` / `cursor`); drop a name to hide it, `[]` to hide the whole band. |
559
+ | `usage.quota.refresh_interval` | Poll cadence for every live quota panel (seconds); higher is safer against a provider's rate limits. |
560
+ | `analysis.refresh_interval` | Redraw cadence of the `analysis` dashboard (seconds). |
561
+ | `providers.*` | Skip a provider entirely (no scan, no API) when `false` — handy if you don't use one. |
555
562
 
556
563
  > [!NOTE]
557
564
  > 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.
@@ -567,6 +574,9 @@ vct config show
567
574
 
568
575
  # Open the file in $VISUAL / $EDITOR (falls back to vi / notepad)
569
576
  vct config edit
577
+
578
+ # Print the JSON schema (regenerate with: vct config schema > vct.schema.json)
579
+ vct config schema
570
580
  ```
571
581
 
572
582
  ---
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "vibe_coding_tracker"
3
- version = "1.8.0"
3
+ version = "1.9.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" }