@mai0313/vct 2.3.0 → 2.4.1

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.
package/README.md CHANGED
@@ -216,15 +216,16 @@ vct usage --table --merge-providers
216
216
  ### Preview: Interactive Dashboard (`vct usage`)
217
217
 
218
218
  ```
219
- ┌ Models · $79.33 · 49.1M tokens · 3 models ────────────────────────── −2 cols ┐┌ Providers ───────────────────────────┐
220
- │Model Input Output Total Cost (USD) █│Provider Tokens Cost │
221
- │ █│ │
222
- │gemini-3.1-pro-preview 129K 10.3K 207K $0.40█│Claude 48.9M $78.93 │
223
- │claude-haiku-4-5-20251001 5.57K 19.8K 5.28M $1.34█│Gemini 207K $0.40 │
224
- │claude-opus-4-8 25.7K 179K 43.6M $77.59█│ │
225
- │ █│ │
226
- │ █│ │
227
- └──────────────────────────────────────────────────────────────────────────────┘└──────────────────────────────────────┘
219
+ ┌ Models · $79.33 · 49.1M tokens · 3 models ───────────────────────────────────────────────────────────────────────────┐
220
+ │Model Input Output Cache Read Cache Write Total Cost (USD) Share █
221
+ │ █
222
+ │gemini-3.1-pro-preview 129K 10.3K 66.0K 1.70K 207K $0.40 0.4%█
223
+ │claude-haiku-4-5-20251001 5.57K 19.8K 5.20M 55.0K 5.28M $1.34 █ 10.8%█
224
+ │claude-opus-4-8 25.7K 179K 42.9M 496K 43.6M $77.59 █████████ 88.8%█
225
+ │ █
226
+ │ █
227
+ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
228
+ Claude $78.93 · Gemini $0.40
228
229
  ┌ Claude ──────────────┐┌ Codex ───────────────┐┌ Copilot ─────────────┐┌ Cursor ────────LIMIT ┐┌ Grok ────────────────┐
229
230
  │max 20x just now││plus just now││individual just now││free just now││SuperGrok just now│
230
231
  │5h ▰▱▱▱▱ 13% 1h42m││5h ▰▰▱▱▱ 33% 12m ││prem ▰▱▱▱▱ 3% 24d0h││total ▰▰▰▰▰ 94% 16d0h││week ▰▰▱▱▱ 38% 3d4h │
@@ -233,7 +234,7 @@ vct usage --table --merge-providers
233
234
  │bal - · $0.00 used ││reset expires 17d0h ││ ││ ││ │
234
235
  └──────────────────────┘└──────────────────────┘└──────────────────────┘└──────────────────────┘└──────────────────────┘
235
236
  Total Cost: $79.33 | Total Tokens: 49.1M | Models: 3 | Memory: 4.7 MB | CPU: 0.0%
236
- ↑/↓ scroll m merge p hide Q quota r refresh q quit | Star on GitHub
237
+ ↑/↓ scroll m merge p providers Q quota r refresh q quit | Star on GitHub
237
238
  ```
238
239
 
239
240
  Both interactive dashboards draw a centered `Loading sessions...` spinner as soon as terminal setup finishes. Loading stays responsive to `q`, Ctrl+C, and resize events. Later scans run in one background worker, keep the last successful data visible with a `Refreshing...` footer, and coalesce repeated refresh requests into at most one pending scan. A failed refresh keeps the last-known-good view and retries on the next scheduled or manual refresh.
@@ -291,7 +292,7 @@ Every row serializes the same flat token fields regardless of provider (Codex's
291
292
  The tool automatically scans these directories:
292
293
 
293
294
  - `~/.claude/projects/**/*.jsonl` (Claude Code — recursive, includes subagent logs)
294
- - `~/.codex/sessions/**/*.jsonl` (Codex — recursive, includes daily subdirectories)
295
+ - `~/.codex/sessions/**/*.jsonl` (Codex — recursive, includes daily subdirectories) plus `~/.codex/archived_sessions/*.jsonl`, the flat directory Codex moves a session's log into when you archive it (a session found in both is counted once)
295
296
  - `~/.copilot/session-state/<sessionId>/events.jsonl` (Copilot CLI)
296
297
  - `~/.gemini/tmp/<project_hash>/chats/*.jsonl` (Gemini CLI)
297
298
  - `~/.local/share/opencode/opencode.db` (OpenCode — SQLite database; honors `$XDG_DATA_HOME`)
@@ -305,7 +306,7 @@ For noninteractive `usage` and `analysis` scans, vct exits with an error when ev
305
306
 
306
307
  ### Live Quota Panels
307
308
 
308
- `vct usage` shows **live quota usage for Claude Code, Codex, GitHub Copilot, Cursor, and Grok 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. Every gauge is percent **used**, so a full bar means the window is spent, not untouched. (Prefer a quieter dashboard? Trim `panels` under `[usage.quota]` in [`config.toml`](#configuration), or set it to `[]` to hide the quota cards entirely. The Provider Usage pane is local scan data, not a quota panel, so it keeps its own `p` toggle.)
309
+ `vct usage` shows **live quota usage for Claude Code, Codex, GitHub Copilot, Cursor, and Grok 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. Every gauge is percent **used**, so a full bar means the window is spent, not untouched. (Prefer a quieter dashboard? Trim `panels` under `[usage.quota]` in [`config.toml`](#configuration), or set it to `[]` to hide the quota cards entirely. The per-provider cost line under the table is local scan data, not a quota panel, so it stays whatever you set here.)
309
310
 
310
311
  ```
311
312
  ┌ Claude ──────────────┐┌ Codex ───────────────┐┌ Copilot ─────────────┐┌ Cursor ────────LIMIT ┐┌ Grok ────────────────┐
@@ -325,7 +326,7 @@ For noninteractive `usage` and `analysis` scans, vct exits with an error when ev
325
326
 
326
327
  **Automatic token refresh.** For Claude, Codex, and Grok, 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. Grok's token endpoint is resolved from its login issuer rather than hardcoded, the way its own CLI does it, and every other login in the file is preserved on write. If a refresh cannot proceed, the panel shows a `run: <provider> auth login` hint instead of breaking. Copilot (long-lived token) and Cursor (kept fresh by its own client) are read-only — vct never writes their credential files.
327
328
 
328
- A panel appears only for a provider whose credentials are present. Panels are placed on a uniform grid that fits as many cards per row as the terminal allows and wraps the rest onto the next row, so a new provider costs a card and never a new layout rule. On a terminal too short to spend rows on the grid, it folds into a one-line digest showing the gauges that still fit and counting the rest; press `Q` for the full-detail overlay, where every card has room for every line whatever the terminal size, and `p` to toggle the Provider Usage side pane. Quota panels appear only in the interactive TUI; `--table`, `--text`, and `--json` are unchanged.
329
+ A panel appears only for a provider whose credentials are present. Panels are placed on a uniform grid that fits as many cards per row as the terminal allows and wraps the rest onto the next row, so a new provider costs a card and never a new layout rule. On a terminal too short to spend rows on the grid, it folds into a one-line digest showing the gauges that still fit and counting the rest; press `Q` for the full-detail overlay, where every card has room for every line whatever the terminal size, and `p` for the Provider Usage panel with per-provider tokens and share. Quota panels appear only in the interactive TUI; `--table`, `--text`, and `--json` are unchanged.
329
330
 
330
331
  > **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. Cursor's `~/.config/cursor` credential path is Linux-oriented.
331
332
 
package/README.zh-CN.md CHANGED
@@ -216,15 +216,16 @@ vct usage --table --merge-providers
216
216
  ### 预览:交互式面板(`vct usage`)
217
217
 
218
218
  ```
219
- ┌ Models · $79.33 · 49.1M tokens · 3 models ────────────────────────── −2 cols ┐┌ Providers ───────────────────────────┐
220
- │Model Input Output Total Cost (USD) █│Provider Tokens Cost │
221
- │ █│ │
222
- │gemini-3.1-pro-preview 129K 10.3K 207K $0.40█│Claude 48.9M $78.93 │
223
- │claude-haiku-4-5-20251001 5.57K 19.8K 5.28M $1.34█│Gemini 207K $0.40 │
224
- │claude-opus-4-8 25.7K 179K 43.6M $77.59█│ │
225
- │ █│ │
226
- │ █│ │
227
- └──────────────────────────────────────────────────────────────────────────────┘└──────────────────────────────────────┘
219
+ ┌ Models · $79.33 · 49.1M tokens · 3 models ───────────────────────────────────────────────────────────────────────────┐
220
+ │Model Input Output Cache Read Cache Write Total Cost (USD) Share █
221
+ │ █
222
+ │gemini-3.1-pro-preview 129K 10.3K 66.0K 1.70K 207K $0.40 0.4%█
223
+ │claude-haiku-4-5-20251001 5.57K 19.8K 5.20M 55.0K 5.28M $1.34 █ 10.8%█
224
+ │claude-opus-4-8 25.7K 179K 42.9M 496K 43.6M $77.59 █████████ 88.8%█
225
+ │ █
226
+ │ █
227
+ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
228
+ Claude $78.93 · Gemini $0.40
228
229
  ┌ Claude ──────────────┐┌ Codex ───────────────┐┌ Copilot ─────────────┐┌ Cursor ────────LIMIT ┐┌ Grok ────────────────┐
229
230
  │max 20x just now││plus just now││individual just now││free just now││SuperGrok just now│
230
231
  │5h ▰▱▱▱▱ 13% 1h42m││5h ▰▰▱▱▱ 33% 12m ││prem ▰▱▱▱▱ 3% 24d0h││total ▰▰▰▰▰ 94% 16d0h││week ▰▰▱▱▱ 38% 3d4h │
@@ -233,7 +234,7 @@ vct usage --table --merge-providers
233
234
  │bal - · $0.00 used ││reset expires 17d0h ││ ││ ││ │
234
235
  └──────────────────────┘└──────────────────────┘└──────────────────────┘└──────────────────────┘└──────────────────────┘
235
236
  Total Cost: $79.33 | Total Tokens: 49.1M | Models: 3 | Memory: 4.7 MB | CPU: 0.0%
236
- ↑/↓ scroll m merge p hide Q quota r refresh q quit | Star on GitHub
237
+ ↑/↓ scroll m merge p providers Q quota r refresh q quit | Star on GitHub
237
238
  ```
238
239
 
239
240
  两个交互式面板都会在 terminal setup 完成后立即绘制居中的 `Loading sessions...` spinner. Loading 期间仍可响应 `q`, Ctrl+C 与 resize event. 后续扫描由单一 background worker 执行, 并在 `Refreshing...` footer 下保留上一次成功的数据. 重复的 refresh 请求最多只会合并为一个 pending scan. 如果 refresh 失败, 面板会保留 last-known-good view, 并在下次排程或手动刷新时重试.
@@ -291,7 +292,7 @@ Totals (by Provider)
291
292
  该工具会自动扫描以下目录:
292
293
 
293
294
  - `~/.claude/projects/**/*.jsonl`(Claude Code,递归包含 subagent 日志)
294
- - `~/.codex/sessions/**/*.jsonl`(Codex,递归包含每日子目录)
295
+ - `~/.codex/sessions/**/*.jsonl`(Codex,递归包含每日子目录),以及 `~/.codex/archived_sessions/*.jsonl`——归档会话时 Codex 会把日志移进这个扁平目录(同时存在于两处的会话只会计入一次)
295
296
  - `~/.copilot/session-state/<sessionId>/events.jsonl`(Copilot CLI)
296
297
  - `~/.gemini/tmp/<project_hash>/chats/*.jsonl`(Gemini CLI)
297
298
  - `~/.local/share/opencode/opencode.db`(OpenCode,SQLite 数据库;遵循 `$XDG_DATA_HOME`)
@@ -305,7 +306,7 @@ Grok 的 `usage` 是单一时点的本地 context 估算:vct 会把 `signals.j
305
306
 
306
307
  ### 实时额度面板
307
308
 
308
- `vct usage` 会**在仪表盘中直接显示 Claude Code、Codex、GitHub Copilot、Cursor 与 Grok 的实时额度用量——完全零配置。** 不需要 status-line hook,也无需手动输入任何凭证:vct 会读取各 provider 自己的 OAuth 凭证,在后台线程调用其用量 API,并在你工作时保持面板持续更新。每个进度条都是**已用**百分比,所以进度条满格代表该额度周期已耗尽,而不是还没开始用。(想要更清爽的面板?在 [`config.toml`](#%E9%85%8D%E7%BD%AE) 中精简 `[usage.quota]` 下的 `panels`,或设为 `[]` 隐藏所有额度卡片。Provider Usage 侧栏是本机扫描数据而不是额度面板,所以它有自己的 `p` 开关。)
309
+ `vct usage` 会**在仪表盘中直接显示 Claude Code、Codex、GitHub Copilot、Cursor 与 Grok 的实时额度用量——完全零配置。** 不需要 status-line hook,也无需手动输入任何凭证:vct 会读取各 provider 自己的 OAuth 凭证,在后台线程调用其用量 API,并在你工作时保持面板持续更新。每个进度条都是**已用**百分比,所以进度条满格代表该额度周期已耗尽,而不是还没开始用。(想要更清爽的面板?在 [`config.toml`](#%E9%85%8D%E7%BD%AE) 中精简 `[usage.quota]` 下的 `panels`,或设为 `[]` 隐藏所有额度卡片。表格下方那行各 provider 成本是本机扫描数据而不是额度面板,所以不受这里的设置影响。)
309
310
 
310
311
  ```
311
312
  ┌ Claude ──────────────┐┌ Codex ───────────────┐┌ Copilot ─────────────┐┌ Cursor ────────LIMIT ┐┌ Grok ────────────────┐
@@ -325,7 +326,7 @@ Grok 的 `usage` 是单一时点的本地 context 估算:vct 会把 `signals.j
325
326
 
326
327
  **自动刷新 token。** 对 Claude、Codex 和 Grok,当 token 接近过期或被拒绝时,vct 会刷新它并把新 token 写回该 provider 自己的凭证文件(采用该 CLI 的原始格式),因此 token 会在多次检查之间复用,而不是每次都重新刷新。Grok 的 token 端点会像它自己的 CLI 那样,从登录时的 issuer 解析得出,而不是写死在代码里;写入时也会保留文件中其他所有的登录信息。如果刷新失败,面板会显示 `run: <provider> auth login` 提示,而不会直接中断。Copilot(长期有效的 token)和 Cursor(由其自身客户端保持最新)为只读——vct 从不写入它们的凭证文件。
327
328
 
328
- 只有在某个 provider 的凭证存在时,才会显示对应的面板。面板排在一个统一网格上:一行放得下几张就放几张,放不下的自动折到下一行,因此新增一个 provider 只是多一张卡片,不会多一条排版规则。当终端高度不足以留给网格时,它会收成一行摘要,显示放得下的 gauge,并把其余的记成数量;按 `Q` 打开完整的额度浮层,无论终端多大,每张卡片都放得下全部内容,按 `p` 可切换 Provider Usage 侧栏。额度面板仅在交互式 TUI 中显示;`--table`、`--text`、`--json` 不受影响。
329
+ 只有在某个 provider 的凭证存在时,才会显示对应的面板。面板排在一个统一网格上:一行放得下几张就放几张,放不下的自动折到下一行,因此新增一个 provider 只是多一张卡片,不会多一条排版规则。当终端高度不足以留给网格时,它会收成一行摘要,显示放得下的 gauge,并把其余的记成数量;按 `Q` 打开完整的额度浮层,无论终端多大,每张卡片都放得下全部内容,按 `p` 打开 Provider Usage 面板,里面有各 provider 的 token 数与占比。额度面板仅在交互式 TUI 中显示;`--table`、`--text`、`--json` 不受影响。
329
330
 
330
331
  > **平台说明:** 在 macOS 上,Claude Code 会把 OAuth 凭证保存在系统 Keychain 中,而不是 `~/.claude/.credentials.json`,因此在 macOS 上不会显示 Claude 面板。Cursor 的 `~/.config/cursor` 凭证路径偏向 Linux。
331
332
 
package/README.zh-TW.md CHANGED
@@ -216,15 +216,16 @@ vct usage --table --merge-providers
216
216
  ### 預覽:互動式儀表板(`vct usage`)
217
217
 
218
218
  ```
219
- ┌ Models · $79.33 · 49.1M tokens · 3 models ────────────────────────── −2 cols ┐┌ Providers ───────────────────────────┐
220
- │Model Input Output Total Cost (USD) █│Provider Tokens Cost │
221
- │ █│ │
222
- │gemini-3.1-pro-preview 129K 10.3K 207K $0.40█│Claude 48.9M $78.93 │
223
- │claude-haiku-4-5-20251001 5.57K 19.8K 5.28M $1.34█│Gemini 207K $0.40 │
224
- │claude-opus-4-8 25.7K 179K 43.6M $77.59█│ │
225
- │ █│ │
226
- │ █│ │
227
- └──────────────────────────────────────────────────────────────────────────────┘└──────────────────────────────────────┘
219
+ ┌ Models · $79.33 · 49.1M tokens · 3 models ───────────────────────────────────────────────────────────────────────────┐
220
+ │Model Input Output Cache Read Cache Write Total Cost (USD) Share █
221
+ │ █
222
+ │gemini-3.1-pro-preview 129K 10.3K 66.0K 1.70K 207K $0.40 0.4%█
223
+ │claude-haiku-4-5-20251001 5.57K 19.8K 5.20M 55.0K 5.28M $1.34 █ 10.8%█
224
+ │claude-opus-4-8 25.7K 179K 42.9M 496K 43.6M $77.59 █████████ 88.8%█
225
+ │ █
226
+ │ █
227
+ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
228
+ Claude $78.93 · Gemini $0.40
228
229
  ┌ Claude ──────────────┐┌ Codex ───────────────┐┌ Copilot ─────────────┐┌ Cursor ────────LIMIT ┐┌ Grok ────────────────┐
229
230
  │max 20x just now││plus just now││individual just now││free just now││SuperGrok just now│
230
231
  │5h ▰▱▱▱▱ 13% 1h42m││5h ▰▰▱▱▱ 33% 12m ││prem ▰▱▱▱▱ 3% 24d0h││total ▰▰▰▰▰ 94% 16d0h││week ▰▰▱▱▱ 38% 3d4h │
@@ -233,7 +234,7 @@ vct usage --table --merge-providers
233
234
  │bal - · $0.00 used ││reset expires 17d0h ││ ││ ││ │
234
235
  └──────────────────────┘└──────────────────────┘└──────────────────────┘└──────────────────────┘└──────────────────────┘
235
236
  Total Cost: $79.33 | Total Tokens: 49.1M | Models: 3 | Memory: 4.7 MB | CPU: 0.0%
236
- ↑/↓ scroll m merge p hide Q quota r refresh q quit | Star on GitHub
237
+ ↑/↓ scroll m merge p providers Q quota r refresh q quit | Star on GitHub
237
238
  ```
238
239
 
239
240
  兩個互動式儀表板都會在 terminal setup 完成後立即繪製置中的 `Loading sessions...` spinner. Loading 期間仍可處理 `q`, Ctrl+C 與 resize event. 後續掃描由單一 background worker 執行, 並在 `Refreshing...` footer 下保留上一次成功的資料. 重複的 refresh 要求最多只會合併為一個 pending scan. 如果 refresh 失敗, 儀表板會保留 last-known-good view, 並在下次排程或手動刷新時重試.
@@ -291,7 +292,7 @@ Totals (by Provider)
291
292
  此工具會自動掃描以下目錄:
292
293
 
293
294
  - `~/.claude/projects/**/*.jsonl`(Claude Code,遞迴包含 subagent 日誌)
294
- - `~/.codex/sessions/**/*.jsonl`(Codex,遞迴包含每日子目錄)
295
+ - `~/.codex/sessions/**/*.jsonl`(Codex,遞迴包含每日子目錄),以及 `~/.codex/archived_sessions/*.jsonl`——封存工作階段時 Codex 會把日誌移進這個扁平目錄(同時存在於兩處的工作階段只會計入一次)
295
296
  - `~/.copilot/session-state/<sessionId>/events.jsonl`(Copilot CLI)
296
297
  - `~/.gemini/tmp/<project_hash>/chats/*.jsonl`(Gemini CLI)
297
298
  - `~/.local/share/opencode/opencode.db`(OpenCode,SQLite 資料庫;遵循 `$XDG_DATA_HOME`)
@@ -305,7 +306,7 @@ Grok 的 `usage` 是單一當下的本地 context 估算:vct 會把 `signals.j
305
306
 
306
307
  ### 即時額度面板
307
308
 
308
- `vct usage` 會**在儀表板中直接顯示 Claude Code、Codex、GitHub Copilot、Cursor 與 Grok 的即時額度用量——完全零設定。** 不需要 status-line hook,也不需要手動輸入憑證:vct 會讀取各 provider 自己的 OAuth 憑證,在背景執行緒呼叫其用量 API,並在你工作時讓面板保持最新。每個進度條都是**已用**百分比,所以進度條滿格代表該額度週期已用盡,而不是還沒開始用。(想要更清爽的儀表板嗎?在 [`config.toml`](#%E8%A8%AD%E5%AE%9A) 中精簡 `[usage.quota]` 下的 `panels`,或設為 `[]` 隱藏所有額度卡片。Provider Usage 側欄是本機掃描資料而不是額度面板,所以它有自己的 `p` 開關。)
309
+ `vct usage` 會**在儀表板中直接顯示 Claude Code、Codex、GitHub Copilot、Cursor 與 Grok 的即時額度用量——完全零設定。** 不需要 status-line hook,也不需要手動輸入憑證:vct 會讀取各 provider 自己的 OAuth 憑證,在背景執行緒呼叫其用量 API,並在你工作時讓面板保持最新。每個進度條都是**已用**百分比,所以進度條滿格代表該額度週期已用盡,而不是還沒開始用。(想要更清爽的儀表板嗎?在 [`config.toml`](#%E8%A8%AD%E5%AE%9A) 中精簡 `[usage.quota]` 下的 `panels`,或設為 `[]` 隱藏所有額度卡片。表格下方那行各 provider 成本是本機掃描資料而不是額度面板,所以不受這裡的設定影響。)
309
310
 
310
311
  ```
311
312
  ┌ Claude ──────────────┐┌ Codex ───────────────┐┌ Copilot ─────────────┐┌ Cursor ────────LIMIT ┐┌ Grok ────────────────┐
@@ -325,7 +326,7 @@ Grok 的 `usage` 是單一當下的本地 context 估算:vct 會把 `signals.j
325
326
 
326
327
  **自動刷新 token。** 對 Claude、Codex 和 Grok,當 token 接近過期或被拒絕時,vct 會刷新它並把新的 token 寫回該 provider 自己的憑證檔案(採用該 CLI 的原始格式),因此 token 會在多次檢查之間重複使用,而不是每次都重新刷新。Grok 的 token 端點會如同它自己的 CLI 一樣,從登入的 issuer 解析出來,而不是寫死在程式裡;寫入時也會保留該檔案中其他所有的登入資訊。如果刷新失敗,面板會顯示 `run: <provider> auth login` 提示,而不會直接中斷。Copilot(長期有效的 token)和 Cursor(由其自身用戶端保持最新)為唯讀——vct 從不寫入它們的憑證檔案。
327
328
 
328
- 只有在某個 provider 的憑證存在時,才會顯示對應的面板。面板排在一個統一網格上:一列放得下幾張就放幾張,放不下的自動折到下一列,因此新增一個 provider 只是多一張卡片,不會多一條排版規則。當終端高度不足以留給網格時,它會收成一行摘要,顯示放得下的 gauge,並把其餘的記成數量;按 `Q` 開啟完整的額度浮層,無論終端多大,每張卡片都放得下全部內容,按 `p` 可切換 Provider Usage 側欄。額度面板僅在互動式 TUI 中顯示;`--table`、`--text`、`--json` 不受影響。
329
+ 只有在某個 provider 的憑證存在時,才會顯示對應的面板。面板排在一個統一網格上:一列放得下幾張就放幾張,放不下的自動折到下一列,因此新增一個 provider 只是多一張卡片,不會多一條排版規則。當終端高度不足以留給網格時,它會收成一行摘要,顯示放得下的 gauge,並把其餘的記成數量;按 `Q` 開啟完整的額度浮層,無論終端多大,每張卡片都放得下全部內容,按 `p` 開啟 Provider Usage 面板,裡面有各 provider 的 token 數與佔比。額度面板僅在互動式 TUI 中顯示;`--table`、`--text`、`--json` 不受影響。
329
330
 
330
331
  > **平台說明:** 在 macOS 上,Claude Code 會把 OAuth 憑證儲存在系統 Keychain 中,而不是 `~/.claude/.credentials.json`,因此在 macOS 上不會顯示 Claude 面板。Cursor 的 `~/.config/cursor` 憑證路徑偏向 Linux。
331
332
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mai0313/vct",
3
- "version": "2.3.0",
3
+ "version": "2.4.1",
4
4
  "description": "Vibe Coding Tracker - AI coding assistant telemetry/usage parser, aggregate JSONL events into CodeAnalysis results",
5
5
  "author": "Wei Lee <mai@mai0313.com>",
6
6
  "license": "MIT",