vibe-coding-tracker 0.16.0__tar.gz → 1.0.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: 0.16.0
3
+ Version: 1.0.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
@@ -169,7 +169,6 @@ vct <COMMAND> [OPTIONS]
169
169
  Commands:
170
170
  analysis Analyze JSONL conversation files (single file or all sessions)
171
171
  usage Display token usage statistics
172
- statusline Cache Claude Code rate limits from a statusLine hook (stdin JSON)
173
172
  version Display version information
174
173
  update Update to the latest version from GitHub releases
175
174
  help Print this message or the help of the given subcommand(s)
@@ -177,12 +176,12 @@ Commands:
177
176
 
178
177
  Time range flags (shared by `usage` and `analysis`, mutually exclusive, default `--all`):
179
178
 
180
- | Flag | Window |
181
- | ----------- | --------------------------------- |
182
- | `--daily` | Sessions modified today |
183
- | `--weekly` | Current ISO week (Monday → today) |
184
- | `--monthly` | Current calendar month |
185
- | `--all` | Every session on disk (default) |
179
+ | Flag | Window |
180
+ | ------------- | --------------------------------- |
181
+ | `--daily` | Sessions modified today |
182
+ | `--weekly` | Current ISO week (Monday → today) |
183
+ | `--monthly` | Current calendar month |
184
+ | `-a`, `--all` | Every session on disk (default) |
186
185
 
187
186
  ---
188
187
 
@@ -198,6 +197,7 @@ Time range flags (shared by `usage` and `analysis`, mutually exclusive, default
198
197
  | `--table` | Static table, no TUI |
199
198
  | `--text` | Plain text, script-friendly |
200
199
  | `--json` | JSON with enriched pricing metadata |
200
+ | `--output <FILE>` | Save enriched JSON to a file |
201
201
  | `--daily` / `--weekly` / `--monthly` / `--all` | Time range filter (see table above) |
202
202
 
203
203
  ### Basic Usage
@@ -215,6 +215,9 @@ vct usage --text
215
215
  # JSON for data processing (includes cost_usd and matched_model fields)
216
216
  vct usage --json
217
217
 
218
+ # Save enriched JSON straight to a file
219
+ vct usage --output report.json
220
+
218
221
  # Combine time range with output format
219
222
  vct usage --weekly
220
223
  vct usage --table --monthly
@@ -258,7 +261,7 @@ The tool automatically scans these directories:
258
261
 
259
262
  ### Live Quota Panels
260
263
 
261
- At the bottom of the interactive dashboard, the per-provider stats sit on the left and two live quota panels sit on the right:
264
+ `vct usage` shows **live remaining quota for Claude Code and Codex right in the dashboard — with zero setup.** No status-line hook, no config file: vct reads each provider's own OAuth credentials, calls its usage API on a background thread, and keeps the panels current while you work.
262
265
 
263
266
  ```
264
267
  ┌ Provider/Tokens/Cost/Days ┬ Claude ────────┬ Codex ──────────┐
@@ -269,10 +272,14 @@ At the bottom of the interactive dashboard, the per-provider stats sit on the le
269
272
  └───────────────────────────┴────────────────┴─────────────────┘
270
273
  ```
271
274
 
272
- - **Claude** — 5-hour and weekly rate-limit usage. Claude Code only exposes these limits through its `statusLine` hook, so wire `vct statusline ingest` into your statusLine (see [Statusline Command](#statusline-command)) for this panel to populate.
273
- - **Codex** — plan tier, 5-hour and weekly usage, and credit balance. Pulled live from the ChatGPT backend (`wham/usage`) using the token in `~/.codex/auth.json` on a background thread; when unavailable it falls back to the newest `rate_limits` in your Codex session logs (the title shows `(API)` vs `(session)`).
275
+ - **Claude** — 5-hour and weekly usage from the official OAuth usage API (`GET /api/oauth/usage`), read from `~/.claude/.credentials.json`.
276
+ - **Codex** — plan tier, 5-hour and weekly usage, and credit balance from the ChatGPT backend (`wham/usage`) using `~/.codex/auth.json`; falls back to the newest `rate_limits` in your Codex session logs when the API is unavailable (the title shows `Codex` vs `Codex (session)`).
277
+
278
+ **Automatic token refresh.** For both providers, when a token is near expiry or rejected, vct refreshes it and writes the new token back to the provider's own credential file (in that CLI's exact format), so a token is reused across checks rather than refreshed every time. If a refresh cannot proceed, the panel shows a `run: <provider> auth login` hint instead of breaking.
279
+
280
+ A panel appears only for a provider whose credentials are present. Quota panels appear only in the interactive TUI; `--table`, `--text`, and `--json` are unchanged.
274
281
 
275
- Quota panels appear only in the interactive TUI; `--table`, `--text`, and `--json` are unchanged.
282
+ > **Platform note:** on macOS, Claude Code stores its OAuth credentials in the system Keychain rather than `~/.claude/.credentials.json`, so the Claude panel is not shown on macOS.
276
283
 
277
284
  ---
278
285
 
@@ -346,35 +353,6 @@ vct analysis --output today.json --daily
346
353
 
347
354
  ---
348
355
 
349
- ## Statusline Command
350
-
351
- **Feed Claude Code rate limits into the `usage` dashboard.**
352
-
353
- Claude Code only exposes its 5-hour / weekly rate limits through the `statusLine` hook's stdin JSON, so `vct` captures them from there and caches them to `~/.vibe_coding_tracker/claude_rate_limits.json` for the Claude quota panel.
354
-
355
- ### If you already have a statusLine
356
-
357
- Add one backgrounded line to your existing statusLine script. It has zero impact on your current display and is isolated, so a vct error can never disturb the statusLine:
358
-
359
- ```bash
360
- printf '%s' "$input" | vct statusline ingest >/dev/null 2>&1 &
361
- ```
362
-
363
- ### If you do not have a statusLine yet
364
-
365
- Point Claude Code's `~/.claude/settings.json` straight at vct, which caches the limits and prints a compact one-line status:
366
-
367
- ```json
368
- {
369
- "statusLine": {
370
- "type": "command",
371
- "command": "vct statusline"
372
- }
373
- }
374
- ```
375
-
376
- ---
377
-
378
356
  ## Update Command
379
357
 
380
358
  **Keep your installation up-to-date automatically.**
@@ -143,7 +143,6 @@ vct <COMMAND> [OPTIONS]
143
143
  Commands:
144
144
  analysis Analyze JSONL conversation files (single file or all sessions)
145
145
  usage Display token usage statistics
146
- statusline Cache Claude Code rate limits from a statusLine hook (stdin JSON)
147
146
  version Display version information
148
147
  update Update to the latest version from GitHub releases
149
148
  help Print this message or the help of the given subcommand(s)
@@ -151,12 +150,12 @@ Commands:
151
150
 
152
151
  Time range flags (shared by `usage` and `analysis`, mutually exclusive, default `--all`):
153
152
 
154
- | Flag | Window |
155
- | ----------- | --------------------------------- |
156
- | `--daily` | Sessions modified today |
157
- | `--weekly` | Current ISO week (Monday → today) |
158
- | `--monthly` | Current calendar month |
159
- | `--all` | Every session on disk (default) |
153
+ | Flag | Window |
154
+ | ------------- | --------------------------------- |
155
+ | `--daily` | Sessions modified today |
156
+ | `--weekly` | Current ISO week (Monday → today) |
157
+ | `--monthly` | Current calendar month |
158
+ | `-a`, `--all` | Every session on disk (default) |
160
159
 
161
160
  ---
162
161
 
@@ -172,6 +171,7 @@ Time range flags (shared by `usage` and `analysis`, mutually exclusive, default
172
171
  | `--table` | Static table, no TUI |
173
172
  | `--text` | Plain text, script-friendly |
174
173
  | `--json` | JSON with enriched pricing metadata |
174
+ | `--output <FILE>` | Save enriched JSON to a file |
175
175
  | `--daily` / `--weekly` / `--monthly` / `--all` | Time range filter (see table above) |
176
176
 
177
177
  ### Basic Usage
@@ -189,6 +189,9 @@ vct usage --text
189
189
  # JSON for data processing (includes cost_usd and matched_model fields)
190
190
  vct usage --json
191
191
 
192
+ # Save enriched JSON straight to a file
193
+ vct usage --output report.json
194
+
192
195
  # Combine time range with output format
193
196
  vct usage --weekly
194
197
  vct usage --table --monthly
@@ -232,7 +235,7 @@ The tool automatically scans these directories:
232
235
 
233
236
  ### Live Quota Panels
234
237
 
235
- At the bottom of the interactive dashboard, the per-provider stats sit on the left and two live quota panels sit on the right:
238
+ `vct usage` shows **live remaining quota for Claude Code and Codex right in the dashboard — with zero setup.** No status-line hook, no config file: vct reads each provider's own OAuth credentials, calls its usage API on a background thread, and keeps the panels current while you work.
236
239
 
237
240
  ```
238
241
  ┌ Provider/Tokens/Cost/Days ┬ Claude ────────┬ Codex ──────────┐
@@ -243,10 +246,14 @@ At the bottom of the interactive dashboard, the per-provider stats sit on the le
243
246
  └───────────────────────────┴────────────────┴─────────────────┘
244
247
  ```
245
248
 
246
- - **Claude** — 5-hour and weekly rate-limit usage. Claude Code only exposes these limits through its `statusLine` hook, so wire `vct statusline ingest` into your statusLine (see [Statusline Command](#statusline-command)) for this panel to populate.
247
- - **Codex** — plan tier, 5-hour and weekly usage, and credit balance. Pulled live from the ChatGPT backend (`wham/usage`) using the token in `~/.codex/auth.json` on a background thread; when unavailable it falls back to the newest `rate_limits` in your Codex session logs (the title shows `(API)` vs `(session)`).
249
+ - **Claude** — 5-hour and weekly usage from the official OAuth usage API (`GET /api/oauth/usage`), read from `~/.claude/.credentials.json`.
250
+ - **Codex** — plan tier, 5-hour and weekly usage, and credit balance from the ChatGPT backend (`wham/usage`) using `~/.codex/auth.json`; falls back to the newest `rate_limits` in your Codex session logs when the API is unavailable (the title shows `Codex` vs `Codex (session)`).
251
+
252
+ **Automatic token refresh.** For both providers, when a token is near expiry or rejected, vct refreshes it and writes the new token back to the provider's own credential file (in that CLI's exact format), so a token is reused across checks rather than refreshed every time. If a refresh cannot proceed, the panel shows a `run: <provider> auth login` hint instead of breaking.
253
+
254
+ A panel appears only for a provider whose credentials are present. Quota panels appear only in the interactive TUI; `--table`, `--text`, and `--json` are unchanged.
248
255
 
249
- Quota panels appear only in the interactive TUI; `--table`, `--text`, and `--json` are unchanged.
256
+ > **Platform note:** on macOS, Claude Code stores its OAuth credentials in the system Keychain rather than `~/.claude/.credentials.json`, so the Claude panel is not shown on macOS.
250
257
 
251
258
  ---
252
259
 
@@ -320,35 +327,6 @@ vct analysis --output today.json --daily
320
327
 
321
328
  ---
322
329
 
323
- ## Statusline Command
324
-
325
- **Feed Claude Code rate limits into the `usage` dashboard.**
326
-
327
- Claude Code only exposes its 5-hour / weekly rate limits through the `statusLine` hook's stdin JSON, so `vct` captures them from there and caches them to `~/.vibe_coding_tracker/claude_rate_limits.json` for the Claude quota panel.
328
-
329
- ### If you already have a statusLine
330
-
331
- Add one backgrounded line to your existing statusLine script. It has zero impact on your current display and is isolated, so a vct error can never disturb the statusLine:
332
-
333
- ```bash
334
- printf '%s' "$input" | vct statusline ingest >/dev/null 2>&1 &
335
- ```
336
-
337
- ### If you do not have a statusLine yet
338
-
339
- Point Claude Code's `~/.claude/settings.json` straight at vct, which caches the limits and prints a compact one-line status:
340
-
341
- ```json
342
- {
343
- "statusLine": {
344
- "type": "command",
345
- "command": "vct statusline"
346
- }
347
- }
348
- ```
349
-
350
- ---
351
-
352
330
  ## Update Command
353
331
 
354
332
  **Keep your installation up-to-date automatically.**
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "vibe_coding_tracker"
3
- version = "0.16.0"
3
+ version = "1.0.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" }