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.
- {vibe_coding_tracker-0.16.0 → vibe_coding_tracker-1.0.0}/PKG-INFO +19 -41
- {vibe_coding_tracker-0.16.0 → vibe_coding_tracker-1.0.0}/README.md +18 -40
- {vibe_coding_tracker-0.16.0 → vibe_coding_tracker-1.0.0}/pyproject.toml +1 -1
- {vibe_coding_tracker-0.16.0 → vibe_coding_tracker-1.0.0}/src/vibe_coding_tracker/binaries/linux-arm64-gnu/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-0.16.0 → vibe_coding_tracker-1.0.0}/src/vibe_coding_tracker/binaries/linux-x64-gnu/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-0.16.0 → vibe_coding_tracker-1.0.0}/src/vibe_coding_tracker/binaries/macos-arm64/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-0.16.0 → vibe_coding_tracker-1.0.0}/src/vibe_coding_tracker/binaries/macos-x64/vibe_coding_tracker +0 -0
- {vibe_coding_tracker-0.16.0 → vibe_coding_tracker-1.0.0}/src/vibe_coding_tracker/binaries/windows-arm64/vibe_coding_tracker.exe +0 -0
- {vibe_coding_tracker-0.16.0 → vibe_coding_tracker-1.0.0}/src/vibe_coding_tracker/binaries/windows-x64/vibe_coding_tracker.exe +0 -0
- {vibe_coding_tracker-0.16.0 → vibe_coding_tracker-1.0.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: 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
|
|
181
|
-
|
|
|
182
|
-
| `--daily`
|
|
183
|
-
| `--weekly`
|
|
184
|
-
| `--monthly`
|
|
185
|
-
| `--all`
|
|
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
|
-
|
|
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
|
|
273
|
-
- **Codex** — plan tier, 5-hour and weekly usage, and credit balance
|
|
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
|
-
|
|
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
|
|
155
|
-
|
|
|
156
|
-
| `--daily`
|
|
157
|
-
| `--weekly`
|
|
158
|
-
| `--monthly`
|
|
159
|
-
| `--all`
|
|
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
|
-
|
|
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
|
|
247
|
-
- **Codex** — plan tier, 5-hour and weekly usage, and credit balance
|
|
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
|
-
|
|
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.
|
|
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" }
|
|
index 1eb89b2..1993a0b 100755
|
|
|
Binary file
|
|
index 4cd8b02..25dfbf8 100755
|
|
|
Binary file
|
|
index bc2a608..12111d4 100755
|
|
|
Binary file
|
|
index 29a89b8..ef2bd22 100755
|
|
|
Binary file
|
|
index 6599363..d6845aa 100644
|
|
|
Binary file
|
|
index ab0fc48..5260c5a 100644
|
|
|
Binary file
|
{vibe_coding_tracker-0.16.0 → vibe_coding_tracker-1.0.0}/src/vibe_coding_tracker/__init__.py
RENAMED
|
File without changes
|