vibe-coding-tracker 0.17.0__tar.gz → 1.1.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.17.0
3
+ Version: 1.1.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)
@@ -262,21 +261,27 @@ The tool automatically scans these directories:
262
261
 
263
262
  ### Live Quota Panels
264
263
 
265
- 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.
266
265
 
267
266
  ```
268
- ┌ Provider/Tokens/Cost/Days ┬ Claude ────────┬ Codex ──────────┐
269
- │ Claude 1.2M $3.00 4d │ 5h ▰▰▱▱▱ 16% │ Plan: plus
270
- │ Codex 800K $0.00 6d │ 4h13m │ 5h ▰▰▱▱▱ 27%
271
- │ ... │ 7d ▰▰▰▱▱ 28% │ 7d ▱▱▱▱▱ 4%
272
- │ │ updated 2m ago │ Credits: 0 +2
273
- └───────────────────────────┴────────────────┴─────────────────┘
267
+ ┌ Provider/Tokens/Cost/Days ┬ Claude ───────────────────┬ Codex ────────────────────┐
268
+ │ Claude 1.2M $3.00 4d │ Plan: max 20x │ Plan: plus
269
+ │ Codex 800K $0.00 6d │ 5h ▰▱▱▱▱ 16% 2h0m │ 5h ▰▰▱▱▱ 37% ↻ 2h33m
270
+ │ ... │ 7d ▰▰▱▱▱ 41% ↻ 5d │ 7d ▰▰▱▱▱ 24% ↻ 3d16h
271
+ │ │ Opus ▰▰▰▱▱ 61% ↻ 5d │ Credits: 0 +3 reset
272
+ │ │ Balance: - $0.00 used │ updated just now │
273
+ │ │ updated just now │ │
274
+ └───────────────────────────┴────────────────────────────┴────────────────────────────┘
274
275
  ```
275
276
 
276
- - **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.
277
- - **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)`).
277
+ - **Claude** — plan tier, 5-hour, weekly, and per-model weekly usage from the official OAuth usage API (`GET /api/oauth/usage`), read from `~/.claude/.credentials.json`, plus your credit balance. Polled about once a minute to stay under the endpoint's rate limit; a red `LIMIT` flag appears in the title when a cap is hit. The per-model weekly row is best-effort and simply hides when that scope is not returned.
278
+ - **Codex** — plan tier, 5-hour and weekly usage, and credit balance from the ChatGPT backend (`wham/usage`) using `~/.codex/auth.json` (with approximate remaining messages / spend cap when applicable); falls back to the newest `rate_limits` in your Codex session logs when the API is unavailable (the title shows `Codex` vs `Codex (session)`).
278
279
 
279
- Quota panels appear only in the interactive TUI; `--table`, `--text`, and `--json` are unchanged.
280
+ **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.
281
+
282
+ 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.
283
+
284
+ > **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.
280
285
 
281
286
  ---
282
287
 
@@ -350,35 +355,6 @@ vct analysis --output today.json --daily
350
355
 
351
356
  ---
352
357
 
353
- ## Statusline Command
354
-
355
- **Feed Claude Code rate limits into the `usage` dashboard.**
356
-
357
- 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.
358
-
359
- ### If you already have a statusLine
360
-
361
- 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:
362
-
363
- ```bash
364
- printf '%s' "$input" | vct statusline ingest >/dev/null 2>&1 &
365
- ```
366
-
367
- ### If you do not have a statusLine yet
368
-
369
- Point Claude Code's `~/.claude/settings.json` straight at vct, which caches the limits and prints a compact one-line status:
370
-
371
- ```json
372
- {
373
- "statusLine": {
374
- "type": "command",
375
- "command": "vct statusline"
376
- }
377
- }
378
- ```
379
-
380
- ---
381
-
382
358
  ## Update Command
383
359
 
384
360
  **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)
@@ -236,21 +235,27 @@ The tool automatically scans these directories:
236
235
 
237
236
  ### Live Quota Panels
238
237
 
239
- 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.
240
239
 
241
240
  ```
242
- ┌ Provider/Tokens/Cost/Days ┬ Claude ────────┬ Codex ──────────┐
243
- │ Claude 1.2M $3.00 4d │ 5h ▰▰▱▱▱ 16% │ Plan: plus
244
- │ Codex 800K $0.00 6d │ 4h13m │ 5h ▰▰▱▱▱ 27%
245
- │ ... │ 7d ▰▰▰▱▱ 28% │ 7d ▱▱▱▱▱ 4%
246
- │ │ updated 2m ago │ Credits: 0 +2
247
- └───────────────────────────┴────────────────┴─────────────────┘
241
+ ┌ Provider/Tokens/Cost/Days ┬ Claude ───────────────────┬ Codex ────────────────────┐
242
+ │ Claude 1.2M $3.00 4d │ Plan: max 20x │ Plan: plus
243
+ │ Codex 800K $0.00 6d │ 5h ▰▱▱▱▱ 16% 2h0m │ 5h ▰▰▱▱▱ 37% ↻ 2h33m
244
+ │ ... │ 7d ▰▰▱▱▱ 41% ↻ 5d │ 7d ▰▰▱▱▱ 24% ↻ 3d16h
245
+ │ │ Opus ▰▰▰▱▱ 61% ↻ 5d │ Credits: 0 +3 reset
246
+ │ │ Balance: - $0.00 used │ updated just now │
247
+ │ │ updated just now │ │
248
+ └───────────────────────────┴────────────────────────────┴────────────────────────────┘
248
249
  ```
249
250
 
250
- - **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.
251
- - **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)`).
251
+ - **Claude** — plan tier, 5-hour, weekly, and per-model weekly usage from the official OAuth usage API (`GET /api/oauth/usage`), read from `~/.claude/.credentials.json`, plus your credit balance. Polled about once a minute to stay under the endpoint's rate limit; a red `LIMIT` flag appears in the title when a cap is hit. The per-model weekly row is best-effort and simply hides when that scope is not returned.
252
+ - **Codex** — plan tier, 5-hour and weekly usage, and credit balance from the ChatGPT backend (`wham/usage`) using `~/.codex/auth.json` (with approximate remaining messages / spend cap when applicable); falls back to the newest `rate_limits` in your Codex session logs when the API is unavailable (the title shows `Codex` vs `Codex (session)`).
252
253
 
253
- Quota panels appear only in the interactive TUI; `--table`, `--text`, and `--json` are unchanged.
254
+ **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.
255
+
256
+ 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.
257
+
258
+ > **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.
254
259
 
255
260
  ---
256
261
 
@@ -324,35 +329,6 @@ vct analysis --output today.json --daily
324
329
 
325
330
  ---
326
331
 
327
- ## Statusline Command
328
-
329
- **Feed Claude Code rate limits into the `usage` dashboard.**
330
-
331
- 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.
332
-
333
- ### If you already have a statusLine
334
-
335
- 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:
336
-
337
- ```bash
338
- printf '%s' "$input" | vct statusline ingest >/dev/null 2>&1 &
339
- ```
340
-
341
- ### If you do not have a statusLine yet
342
-
343
- Point Claude Code's `~/.claude/settings.json` straight at vct, which caches the limits and prints a compact one-line status:
344
-
345
- ```json
346
- {
347
- "statusLine": {
348
- "type": "command",
349
- "command": "vct statusline"
350
- }
351
- }
352
- ```
353
-
354
- ---
355
-
356
332
  ## Update Command
357
333
 
358
334
  **Keep your installation up-to-date automatically.**
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "vibe_coding_tracker"
3
- version = "0.17.0"
3
+ version = "1.1.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" }