token-usage-insights 0.9.0

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.ja.md ADDED
@@ -0,0 +1,770 @@
1
+ # Token 戦情室
2
+
3
+ **Token 戦情室は、ローカル優先の AI Coding Agent の Token 使用量とセッション復元ダッシュボードです。** Google Antigravity CLI、GitHub Copilot CLI、GitHub Copilot Chat(VS Code)、Codex Desktop、Codex CLI、Claude Code、Grok Build、Pi Coding Agent、OMP のローカル記録を読み取り、日別・月別・年別の Token 消費量、キャッシュ使用量、推論 Token、推定コスト、モデル分布、プロジェクトディレクトリ分布、完全な Session タイムラインをまとめて表示します。
4
+
5
+ このプロジェクトが AI プロバイダー API を代わりに呼び出してデータを取得することはありません。主なデータソースはローカルログ、Status Line コレクターファイル、ローカル SQLite です。
6
+
7
+ > システム環境:Windows 10/11 のネイティブ PowerShell、macOS、Linux、WSL に対応しています。
8
+
9
+ 言語: [繁體中文](README.md) · [简体中文](README.zh-CN.md) · [English](README.en.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
10
+
11
+ * * *
12
+
13
+ ## 最短で始める方法
14
+
15
+ ### 1. 1 行でダッシュボードを起動またはインストール
16
+
17
+ Node.js 18.18 以降がインストールされている場合、グローバル npm コマンドを作成せずに直接実行できます:
18
+
19
+ ```bash
20
+ npx --yes token-usage-insights
21
+ ```
22
+
23
+ 常設のシステムコマンドとしてインストールする場合は、各プラットフォームのインストーラーを使用します。
24
+
25
+ Linux / macOS:
26
+
27
+ ```bash
28
+ curl -fsSL https://raw.githubusercontent.com/doggy8088/TokenUsageInsights/main/scripts/get.sh | bash && "$HOME/.local/bin/token-usage-insights"
29
+ ```
30
+
31
+ Windows PowerShell:
32
+
33
+ ```powershell
34
+ irm https://raw.githubusercontent.com/doggy8088/TokenUsageInsights/main/scripts/get.ps1 | iex; & "$HOME\bin\token-usage-insights.cmd"
35
+ ```
36
+
37
+ `npx` とインストーラーはいずれも現在のプラットフォーム用コンパイル済みバージョンをダウンロードします。Rust、Cargo、WSL、手動展開は必要ありません。コマンドの起動後、ダッシュボードはローカルで実行されます。
38
+
39
+ 開く:
40
+
41
+ ```text
42
+ http://localhost:3003
43
+ ```
44
+
45
+ ### 2. 使用するツールに応じて追加設定の有無を確認
46
+
47
+ | ツール | 追加設定 | デフォルトのデータソース | 説明 |
48
+ | --- | --- | --- | --- |
49
+ | Google Antigravity CLI | 必要 | `~/.gemini/antigravity-cli/usage/usage-YYYY-MM-DD.jsonl` | `statusline-token.sh` または Windows の `statusline-token.ps1` で Token データを収集 |
50
+ | GitHub Copilot CLI | 必要 | `~/.copilot/usage/usage-YYYY-MM-DD.jsonl` | `statusline-token.sh` または Windows の `statusline-token.ps1` で Token データを収集 |
51
+ | GitHub Copilot Chat(VS Code) | 不要 | VS Code `workspaceStorage/chatSessions` | VS Code Stable と Insiders のローカルチャット Session を直接スキャン |
52
+ | Codex Desktop / CLI | 不要 | `~/.codex/sessions`、`~/.codex/archived_sessions` | Codex のアクティブおよびアーカイブ済みローカル Session を直接スキャン |
53
+ | Claude Code | 不要 | `~/.claude/projects` | Claude Code のローカルプロジェクト Session を直接スキャン |
54
+ | Grok Build | 不要 | `~/.grok/sessions` | Grok Build が自動保存する `updates.jsonl` Session stream を直接スキャン |
55
+ | Pi Coding Agent | 不要 | `~/.pi/agent/sessions` | Pi Coding Agent が自動保存するローカル Session JSONL ファイルを直接スキャン |
56
+ | OMP | 不要 | `~/.omp/agent/sessions` | OMP が自動保存するローカル Session JSONL ファイルを直接スキャン |
57
+
58
+ **VS Code Copilot、Codex Desktop、Codex CLI、Claude Code、Grok Build、Pi Coding Agent、OMP だけを使用する場合は、1 行のインストールコマンドを実行してダッシュボードを開くだけで利用できます。**
59
+
60
+ ### Windows ネイティブでの利用
61
+
62
+ Windows の 1 行インストーラーは `%USERPROFILE%\bin\token-usage-insights.cmd` を作成します。Rust MSVC toolchain、Visual Studio Build Tools、WSL、Git Bash、`jq` は必要ありません。
63
+
64
+ Windows ではデフォルトで次のネイティブパスを使用します:
65
+
66
+ | 用途 | Windows のデフォルトパス |
67
+ | --- | --- |
68
+ | SQLite | `%LOCALAPPDATA%\TokenUsageInsights\token_usage_insights.db` |
69
+ | Antigravity | `%USERPROFILE%\.gemini\antigravity-cli` |
70
+ | Copilot | `%USERPROFILE%\.copilot` |
71
+ | Codex | `%USERPROFILE%\.codex` |
72
+ | Claude Code | `%USERPROFILE%\.claude` |
73
+ | Cursor | `%USERPROFILE%\.cursor` |
74
+ | Grok Build | `%USERPROFILE%\.grok` |
75
+ | Pi Coding Agent | `%USERPROFILE%\.pi` |
76
+ | OMP | `%USERPROFILE%\.omp` |
77
+
78
+ ダッシュボードの設定ガイドは Windows で PowerShell のコピー、設定、診断コマンドを表示します。PowerShell collector は .NET JSON とファイル API を使用し、Bash、`jq`、`sed`、`awk` に依存しません。
79
+
80
+ ドライブ文字、空白や非 ASCII 文字を含むパス、UNC パスはすべてネイティブのパス API で処理されます。ネットワーク共有の locking セマンティクスの違いを避けるため、SQLite データベースはローカルディスクに置くことを推奨します。
81
+
82
+ * * *
83
+
84
+ ## 主な機能
85
+
86
+ ### データ分析
87
+
88
+ - 日別・月別・年別の Token 統計
89
+ - 入力、出力、キャッシュ読み取り、キャッシュ書き込み、推論 Token の内訳
90
+ - `pricing.csv` に基づくローカルコスト推定
91
+ - Session 数、リクエスト数、API 所要時間の統計
92
+ - モデル使用量ランキング
93
+ - ローカル `state.vscdb` の `agentKv` 記録から Cursor を具体的なモデルに帰属。 一意に照合できない場合は `Unknown Model` のまま表示
94
+ - プロジェクト作業ディレクトリの統計
95
+ - 並べ替え可能な Session 一覧
96
+ - GitHub Copilot App(デスクトップアプリ)の `~/.copilot/data.db` と `session-store.db` を自動読み込み
97
+
98
+ ### Session の復元
99
+
100
+ - 右側のドロワーに表示する Session タイムライン
101
+ - ユーザープロンプト、アシスタントの返信、推論内容、ツール呼び出し手順
102
+ - ツール呼び出しの引数、終了コード、stdout、stderr
103
+ - parent session、agent nickname、agent role などの Codex subagent フィールド
104
+ - Markdown 返信のレンダリングと内容のサニタイズ
105
+
106
+ ### インターフェース
107
+
108
+ - 5 種類の CLI バッジを切り替え
109
+ - 日別・月別・年別ビュー
110
+ - 日付、月、年のクイック切り替え
111
+ - 5 秒、10 秒、30 秒間隔の自動ライブ更新
112
+ - ローカルログを SQLite に手動同期
113
+ - ダークテーマとライトテーマ
114
+ - 繁体字中国語と英語のインターフェース切り替え
115
+ - モデル料金表の表示
116
+
117
+ * * *
118
+
119
+ ## URL パラメータ(ディープリンク)
120
+
121
+ ダッシュボードは URL クエリパラメータで特定の状態を直接開くことができ、ブックマークへの追加、リンクの共有、他のツールからの遷移に便利です。ダッシュボード上で Agent、ビュー、日付、作業ディレクトリ、グラフの種類を切り替えると、URL も現在の状態に自動的に更新されます。
122
+
123
+ | パラメータ | 対象ビュー | 指定できる値 | 説明 |
124
+ | --- | --- | --- | --- |
125
+ | `agent` | すべて | `antigravity`、`copilot`、`codex`、`claude`、`cursor`、`grok`、`pi`、`omp` | 表示する Coding Agent を指定します。`claude-code`、`grok-build`、`pi-coding-agent` などのエイリアスも利用可能です |
126
+ | `tab` | すべて | `daily`、`monthly`、`yearly` | 日別(daily)、月別(monthly)、年別(yearly)ビューを指定します |
127
+ | `date` | すべて | `daily`: `YYYY-MM-DD`、`monthly`: `YYYY-MM`、`yearly`: `YYYY` | 表示する日付・月・年を指定します。形式は `tab` に応じて自動的に対応します |
128
+ | `dir` | `daily` | フルパス、`~` で始まるホームディレクトリのパス、または一意のパス末尾(例:`TokenUsageInsights`) | 日別ビューの作業ディレクトリフィルターを指定します。Windows パスは大文字小文字を区別しません。一致するディレクトリがない場合はすべて表示されます |
129
+ | `chart` | `daily` | `kline`、`trend` | 日別ビューのグラフの種類(ローソク足チャートまたはトレンドチャート)を指定します |
130
+
131
+ 例(`http://localhost:3003` はデフォルトの URL です。実際の `HOST`/`PORT` に合わせて調整してください):
132
+
133
+ ```text
134
+ http://localhost:3003/?agent=copilot&tab=monthly&date=2026-08
135
+ http://localhost:3003/?agent=codex&tab=yearly&date=2026
136
+ http://localhost:3003/?agent=claude&tab=daily&date=2026-08-09&chart=trend
137
+ http://localhost:3003/?agent=copilot&tab=daily&date=2026-08-09&dir=~/projects/TokenUsageInsights
138
+ ```
139
+
140
+ > パスに `~`、スペース、非 ASCII 文字が含まれる場合は URL エンコードしてください(`~` は `%7E` にエンコード可能)。指定されなかったパラメータは前回の閲覧状態(Cookie / localStorage)が引き継がれます。
141
+
142
+ * * *
143
+
144
+ ## Google Antigravity CLI の設定
145
+
146
+ Antigravity CLI では、このプロジェクトの Status Line スクリプトを `settings.json` に接続する必要があります。スクリプトは各会話後の累計 Token と増分を次へ書き込みます:
147
+
148
+ ```text
149
+ ~/.gemini/antigravity-cli/usage/usage-YYYY-MM-DD.jsonl
150
+ ```
151
+
152
+ ### 1. コレクタースクリプトをインストール
153
+
154
+ 1 行インストールの後、次を実行します:
155
+
156
+ ```bash
157
+ mkdir -p ~/.gemini/antigravity-cli && cp ~/.local/share/token-usage-insights/shell/antigravity/statusline-token.sh ~/.gemini/antigravity-cli/statusline-token.sh && chmod +x ~/.gemini/antigravity-cli/statusline-token.sh
158
+ ```
159
+
160
+ カスタムインストール先を使用する場合は、コマンド中の `~/.local/share/token-usage-insights` を `TOKEN_USAGE_INSIGHTS_INSTALL_DIR` で指定した場所に置き換えてください。
161
+
162
+ ### 2. `~/.gemini/antigravity-cli/settings.json` を設定
163
+
164
+ ファイルが存在しない場合は、次の内容で作成できます。既存の場合は `statusLine` ブロックだけを統合し、既存の設定を上書きしないでください。
165
+
166
+ ```json
167
+ {
168
+ "statusLine": {
169
+ "type": "command",
170
+ "command": "/ABSOLUTE/HOME/.gemini/antigravity-cli/statusline-token.sh",
171
+ "padding": 1
172
+ }
173
+ }
174
+ ```
175
+
176
+ `/ABSOLUTE/HOME` を `echo $HOME` で表示される実際のホームディレクトリ(例:`/Users/will` または `/home/will`)に置き換えてください。
177
+
178
+ ### 3. 検証
179
+
180
+ ```bash
181
+ echo '{}' | ~/.gemini/antigravity-cli/statusline-token.sh
182
+ jq . ~/.gemini/antigravity-cli/settings.json
183
+ ```
184
+
185
+ その後 Antigravity CLI Session に入り直すと、Status Line に次のような形式が表示されます:
186
+
187
+ ```text
188
+ model-name • #3 • input 12.3k • cache 4.5k/0 • output 1.2k • reasoning 500 • total 18.5k
189
+ ```
190
+
191
+ * * *
192
+
193
+ ## GitHub Copilot CLI の設定
194
+
195
+ Copilot CLI も Antigravity CLI と同様に、このプロジェクトの Status Line スクリプトを `settings.json` に接続する必要があります。スクリプトは Token データを次へ書き込みます:
196
+
197
+ ```text
198
+ ~/.copilot/usage/usage-YYYY-MM-DD.jsonl
199
+ ```
200
+
201
+ ### 1. コレクタースクリプトをインストール
202
+
203
+ 1 行インストールの後、次を実行します:
204
+
205
+ ```bash
206
+ mkdir -p ~/.copilot && cp ~/.local/share/token-usage-insights/shell/copilot/statusline-token.sh ~/.copilot/statusline-token.sh && chmod +x ~/.copilot/statusline-token.sh
207
+ ```
208
+
209
+ カスタムインストール先を使用する場合は、コマンド中の `~/.local/share/token-usage-insights` を `TOKEN_USAGE_INSIGHTS_INSTALL_DIR` で指定した場所に置き換えてください。
210
+
211
+ ### 2. `~/.copilot/settings.json` を設定
212
+
213
+ ファイルが存在しない場合は、次の内容で作成できます。既存の場合は `statusLine` ブロックだけを統合し、既存の設定を上書きしないでください。
214
+
215
+ ```json
216
+ {
217
+ "statusLine": {
218
+ "type": "command",
219
+ "command": "/ABSOLUTE/HOME/.copilot/statusline-token.sh",
220
+ "padding": 1
221
+ }
222
+ }
223
+ ```
224
+
225
+ `/ABSOLUTE/HOME` を `echo $HOME` で表示される実際のホームディレクトリに置き換えてください。
226
+
227
+ ### 3. 検証
228
+
229
+ ```bash
230
+ echo '{}' | ~/.copilot/statusline-token.sh
231
+ jq . ~/.copilot/settings.json
232
+ ```
233
+
234
+ その後 Copilot CLI Session に入り直すと、Status Line が Token データの出力と蓄積を開始します。
235
+
236
+ * * *
237
+
238
+ ## GitHub Copilot App(デスクトップアプリ)
239
+
240
+ **Copilot App(Tauri デスクトップアプリ)に設定は不要です。** ダッシュボードはローカルの `~/.copilot/data.db` と `~/.copilot/session-store.db` を自動的に読み込み、App Session の Token 使用量を CLI / VS Code と Copilot ページで統合表示します。Session 一覧ではソースを `App` と表示し、`CLI`、`VS Code` と区別します。
241
+
242
+ - バックグラウンド同期(5 秒ごと)のたびに両方の SQLite を確認し、複合カーソル `(created_at, id)` で増分同期します。同じタイムスタンプの複数 event の重複 upsert を防ぎ、同じ `(session_id, turn_index)` は二重に書き込みません。
243
+ - App の `assistant_usage_events` は per-API-call 粒度です。ダッシュボードは Session、Turn、Agent、モデル単位で集計し、同一ターン内の複数モデルへの帰属を保持して、タイムラインには per-turn 統計を使用します。
244
+ - Session タイトルは `data.db.sessions.title` から取得します。
245
+
246
+ App と CLI が別ディレクトリにある場合、またはデフォルト以外のディレクトリを使う場合は環境変数を指定できます:
247
+
248
+ ```bash
249
+ COPILOT_APP_DIR="/path/to/copilot-app-data" token-usage-insights
250
+ ```
251
+
252
+ `COPILOT_APP_DIR` は `COPILOT_DIR` より優先され、未設定時は `~/.copilot` にフォールバックします。
253
+
254
+ * * *
255
+
256
+ ## GitHub Copilot Chat(VS Code)の設定
257
+
258
+ **VS Code Copilot Chat に Status Line、Hook、追加の収集スクリプトをインストールする必要はありません。** ダッシュボードはローカルの `workspaceStorage` にあるチャット Session を直接読み込み、Copilot CLI と統合表示します。Session 一覧ではソースを `VS Code` または `CLI` と表示します。
259
+
260
+ VS Code Stable と Insiders に対応しています:
261
+
262
+ | プラットフォーム | Stable | Insiders |
263
+ | --- | --- | --- |
264
+ | Windows | `%APPDATA%\Code\User\workspaceStorage` | `%APPDATA%\Code - Insiders\User\workspaceStorage` |
265
+ | macOS | `~/Library/Application Support/Code/User/workspaceStorage` | `~/Library/Application Support/Code - Insiders/User/workspaceStorage` |
266
+ | Linux | `~/.config/Code/User/workspaceStorage` | `~/.config/Code - Insiders/User/workspaceStorage` |
267
+
268
+ 使用方法:
269
+
270
+ 1. VS Code で GitHub Copilot Chat を使い、少なくとも 1 つのチャット Session を作成します。
271
+ 2. ダッシュボードを起動するか、右上の同期ボタンをクリックします。
272
+ 3. Copilot ページで統合後の統計と Session タイムラインを確認します。
273
+
274
+ 既存の `chatSessions` ファイルは完全に取り込み、ファイルサイズまたは更新日時が変わると再同期します。Token フィールドのないチャット Session も表示されますが、Token 数は 0 です。読み取るのはローカルのチャットファイルだけで、クラウド Session、Remote SSH ホスト、`state.vscdb` は含まれません。
275
+
276
+ VS Code で `--user-data-dir` または Portable Mode を使う場合は、ダッシュボードのカスタムデータルートを指定できます:
277
+
278
+ macOS / Linux:
279
+
280
+ ```bash
281
+ VSCODE_USER_DATA_DIR="/path/to/vscode-user-data" token-usage-insights
282
+ ```
283
+
284
+ Windows PowerShell:
285
+
286
+ ```powershell
287
+ $env:VSCODE_USER_DATA_DIR = "C:\path\to\vscode-user-data"; & "$HOME\bin\token-usage-insights.cmd"
288
+ ```
289
+
290
+ `VSCODE_USER_DATA_DIR` は `User/workspaceStorage` を含む VS Code ユーザーデータディレクトリを指す必要があります。Portable Mode で環境変数が `data` ディレクトリを指す場合は `VSCODE_PORTABLE_DATA_DIR` を使用してください。ダッシュボードは `data/user-data/User/workspaceStorage` と `data/User/workspaceStorage` の両方を確認します。
291
+
292
+ * * *
293
+
294
+ ## Codex の設定
295
+
296
+ **Codex Desktop と Codex CLI のどちらにも Hook、Status Line、追加の収集スクリプトは必要ありません。**
297
+
298
+ ダッシュボードは次のディレクトリを直接スキャンします:
299
+
300
+ ```text
301
+ ~/.codex/sessions
302
+ ~/.codex/archived_sessions
303
+ ```
304
+
305
+ 使用方法:
306
+
307
+ 1. Codex Desktop または Codex CLI を通常どおり使い、少なくとも 1 つの Session を作成します。
308
+ 2. このプロジェクトを起動します。
309
+ 3. 左側で Codex を選択します。
310
+ 4. 右上の同期ボタンをクリックするか、バックグラウンド同期を待ちます。
311
+
312
+ 注意事項:
313
+
314
+ - Codex の認証情報は引き続き Codex 自身が管理します。
315
+ - ダッシュボードはローカル Session 記録だけを読み取って分析します。
316
+ - 各 Session は transcript の `originator` に基づき `Desktop` または `CLI` のソースラベルを表示します。判定できない古い形式は未分類のままです。
317
+ - API クォータ情報が表示される場合、そのソースは最新のローカル Session ログであり、リアルタイムのオンライン照会ではありません。
318
+
319
+ * * *
320
+
321
+ ## Claude Code の設定
322
+
323
+ **Claude Code に Hook、Status Line、追加の収集スクリプトは必要ありません。**
324
+
325
+ ダッシュボードは次のディレクトリを直接スキャンします:
326
+
327
+ ```text
328
+ ~/.claude/projects
329
+ ```
330
+
331
+ 使用方法:
332
+
333
+ 1. Claude Code を通常どおり使い、少なくとも 1 つのプロジェクト Session を作成します。
334
+ 2. このプロジェクトを起動します。
335
+ 3. 左側で Claude Code を選択します。
336
+ 4. 右上の同期ボタンをクリックするか、バックグラウンド同期を待ちます。
337
+
338
+ 注意事項:
339
+
340
+ - Claude Code の認証情報は引き続き Claude Code 自身が管理します。
341
+ - ダッシュボードはローカルプロジェクト Session 記録だけを読み取って分析します。
342
+ - `~/.claude/projects` が存在しない場合、Claude Code ページにはデータがないと表示されます。
343
+
344
+ * * *
345
+
346
+ ## Grok Build の設定
347
+
348
+ **Grok Build に Hook、Status Line、追加の収集スクリプトは必要ありません。** ダッシュボードは次のディレクトリを直接スキャンします:
349
+
350
+ ```text
351
+ ~/.grok/sessions
352
+ ```
353
+
354
+ Grok Build が内部保存する Session stream を使用します。旧形式の
355
+ `~/.Grok/build/usage/usage-YYYY-MM-DD.jsonl` は読み取らず、`~/.Grok/build/settings.json` に
356
+ `statusLine` を設定する必要もありません。
357
+
358
+ 使用方法:
359
+
360
+ 1. Grok Build を通常どおり使い、少なくとも 1 つの Session を作成します。
361
+ 2. このプロジェクトを起動します。
362
+ 3. 左側で Grok Build を選択します。
363
+ 4. 右上の同期ボタンをクリックするか、バックグラウンド同期を待ちます。
364
+
365
+ Grok Build Session は context token snapshot だけを提供する場合も、provider usage とコストを含む場合もあります。ダッシュボードは provider usage/cost を優先します。context snapshot だけの場合は、`pricing.csv` の xAI API 価格でコストを推定し、Session 一覧に `Context` と表示します。これは SuperGrok や他のサブスクリプションプランの週間クォータを意味しません。
366
+
367
+ * * *
368
+
369
+ ## Pi Coding Agent の設定
370
+
371
+ **Pi Coding Agent に Hook、Status Line、追加の収集スクリプトは必要ありません。** ダッシュボードは次のディレクトリを直接スキャンします:
372
+
373
+ ```text
374
+ ~/.pi/agent/sessions
375
+ ```
376
+
377
+ Pi Coding Agent はツリー構造のディレクトリ配下に Session をローカル JSONL ファイルとして自動保存し、ダッシュボードはそれらの Session 記録を直接読み取ります。
378
+
379
+ 使用方法:
380
+
381
+ 1. Pi Coding Agent を通常どおり使い、少なくとも 1 つの Session を作成します。
382
+ 2. ダッシュボードを起動または再読み込みします。
383
+ 3. 左側で Pi Coding Agent を選択します。
384
+ 4. 右上の同期ボタンをクリックするか、バックグラウンド同期を待ちます。
385
+
386
+ Pi Coding Agent のコストは、各 Session が各 turn ごとに報告する `usage.cost` と関連 usage データから常に直接読み取られます。Pi は turn ごとの権威ある token / cost 情報をネイティブに提供するため、Grok Build のような context snapshot 推定へのフォールバックはありません。
387
+
388
+ * * *
389
+
390
+ ## OMP の設定
391
+
392
+ **OMP に Hook、Status Line、追加の収集スクリプトは必要ありません。** ダッシュボードは次のディレクトリを直接スキャンします:
393
+
394
+ ```text
395
+ ~/.omp/agent/sessions
396
+ ```
397
+
398
+ OMP は Pi Coding Agent のオープンソースフォーク(<https://github.com/can1357/oh-my-pi>)で、まったく同じ JSONL 形式で Session を永続化します。ダッシュボードはそれらのローカル Session 記録を直接読み取ります。
399
+
400
+ 使用方法:
401
+
402
+ 1. OMP を通常どおり使い、少なくとも 1 つの Session を作成します。
403
+ 2. ダッシュボードを起動または再読み込みします。
404
+ 3. 左側で OMP を選択します。
405
+ 4. 右上の同期ボタンをクリックするか、バックグラウンド同期を待ちます。
406
+
407
+ OMP のコストは、各 Session が各 turn ごとに報告する `usage.cost` と関連 usage データから常に直接読み取られます。OMP は turn ごとの権威ある token / cost 情報をネイティブに提供するため、Grok Build のような context snapshot 推定へのフォールバックはありません。
408
+
409
+ * * *
410
+
411
+ ## ローカルデータの同期方法
412
+
413
+ サービス起動時にバックエンドがローカル SQLite を初期化し、直ちに 1 回同期します。起動後は 5 秒ごとにバックグラウンド同期も行います。
414
+
415
+ SQLite のデフォルト位置:
416
+
417
+ ```text
418
+ ~/.token-usage-insights/token_usage_insights.db
419
+ ```
420
+
421
+ フロントエンド右上の同期ボタンは次を呼び出します:
422
+
423
+ ```text
424
+ GET /api/:assistant/sync
425
+ ```
426
+
427
+ これによりローカルログの完全な増分同期が実行されます。
428
+
429
+ ## インポート / エクスポート(マシン間集約)
430
+
431
+ **通常はダッシュボード右上のエクスポートとインポートボタンを使用してください。** インストール版はブラウザーだけでマシン間のデータを集約でき、最大 200 MB のインポートファイルに対応します。
432
+
433
+ ダッシュボードと CLI は `token-usage-insights` に統合されました。引数なしでダッシュボードを起動し、`export`、`export-all`、`import` でデータを操作できます。各コマンドは `--help` と `-h` に対応します。次のリリースから提供されるため、旧版では更新またはソースからのビルドが必要です。
434
+
435
+ `--agent` はアシスタント(`antigravity` / `copilot` / `codex` / `claude` / `cursor` / `grok` / `pi` / `omp`)を指定します。
436
+
437
+ ### ソースから CLI を使用
438
+
439
+ 最初に 1 回ビルドします:
440
+
441
+ ```bash
442
+ cargo build --release --bin token-usage-insights
443
+ ```
444
+
445
+ ```bash
446
+ # 匯出日、月或年資料(輸出 JSON,含匯入唯一 id)
447
+ ./target/release/token-usage-insights export --agent codex --date 2026-07 --out monthly-codex-2026-07.json
448
+ ```
449
+
450
+ ```bash
451
+ # 匯入檔案中的所有資料;每筆資料依 timestamp 決定日期
452
+ ./target/release/token-usage-insights import --agent codex --file monthly-codex-2026-07.json
453
+ ```
454
+
455
+ ```bash
456
+ # 取得 CLI usage 說明
457
+ ./target/release/token-usage-insights --help
458
+ ./target/release/token-usage-insights export --help
459
+ ./target/release/token-usage-insights import --help
460
+ ```
461
+
462
+ データ形式はフロントエンドと同じで、次のフィールドを含みます:
463
+
464
+ - `version`
465
+ - `assistant`
466
+ - `date`
467
+ - `exported_at`
468
+ - `records`(各レコードに `import_source_id` が含まれます)
469
+
470
+ `import_source_id` は `assistant_type` と組み合わせて一意キーになります。同じレコードを再インポートすると重複として検出され自動的にスキップされるため、データベースに二重登録されません。
471
+
472
+ * * *
473
+
474
+ ## 環境変数
475
+
476
+ 環境変数で指定したパスが正式な設定となり、事前に作成する必要はありません。`INSIGHTS_DIR` は起動時に自動作成されます。ネイティブの絶対パス・相対パス、および `~`、`$HOME`、`%USERPROFILE%`、`%LOCALAPPDATA%`、`%APPDATA%` で始まる一般的な形式に対応します。
477
+
478
+ | 変数 | デフォルト値 | 用途 |
479
+ | --- | --- | --- |
480
+ | `HOST` | `0.0.0.0` | ダッシュボードサービスがバインドする IPv4 または IPv6 アドレス |
481
+ | `PORT` | `3003` | ダッシュボードサービスのポート番号 |
482
+ | `INSIGHTS_DIR` | Windows: `%LOCALAPPDATA%\TokenUsageInsights`; その他のプラットフォーム: `~/.token-usage-insights` | SQLite データベースディレクトリ |
483
+ | `ANTIGRAVITY_DIR` | `~/.gemini/antigravity-cli` | Antigravity CLI データディレクトリ |
484
+ | `COPILOT_DIR` | `~/.copilot` | Copilot CLI データディレクトリ |
485
+ | `COPILOT_APP_DIR` | `COPILOT_DIR` と同じ | Copilot App(デスクトップアプリ)のデータディレクトリ。`data.db` と `session-store.db` を含む必要があります |
486
+ | `VSCODE_USER_DATA_DIR` | プラットフォームにより自動検出 | VS Code ユーザーデータディレクトリ。`User/workspaceStorage` を含む必要があります |
487
+ | `VSCODE_PORTABLE_DATA_DIR` | 未設定 | VS Code Portable Mode の `data` ディレクトリ |
488
+ | `CODEX_DIR` | `~/.codex` | Codex Desktop と Codex CLI が共有するデータディレクトリ |
489
+ | `CLAUDE_DIR` | `~/.claude` | Claude Code データディレクトリ |
490
+ | `CURSOR_DIR` | `~/.cursor` | Cursor データディレクトリ |
491
+ | `CURSOR_STATE_DB` | プラットフォームにより自動検出 | Cursor `User/globalStorage/state.vscdb` のパス。読み取り専用で `agentKv` モデル情報を取得するために使用 |
492
+ | `GROK_DIR` | `~/.grok` | Grok Build データディレクトリ |
493
+ | `PI_DIR` | `~/.pi` | Pi Coding Agent データディレクトリ |
494
+ | `OMP_DIR` | `~/.omp` | OMP データディレクトリ |
495
+ | `CORS_ALLOWED_ORIGINS` | `http://localhost:<PORT>,http://127.0.0.1:<PORT>` | カンマ区切りの許可 CORS オリジン |
496
+
497
+ > **デフォルトのバインド先は `0.0.0.0` で、同じローカルネットワーク上の他のデバイスからダッシュボードに接続できる可能性があります。ローカルだけで閲覧する場合は `HOST` を `127.0.0.1` に設定してください。**
498
+
499
+ 例:
500
+
501
+ ```bash
502
+ HOST="127.0.0.1" INSIGHTS_DIR="/tmp/token-usage-insights" PORT="3010" "$HOME/.local/bin/token-usage-insights"
503
+ ```
504
+
505
+ Windows PowerShell の例:
506
+
507
+ ```powershell
508
+ $env:HOST = '127.0.0.1'; $env:INSIGHTS_DIR = 'D:\Token Usage Insights\資料庫'; $env:CODEX_DIR = "$env:USERPROFILE\.codex"; $env:PORT = '3010'; & "$HOME\bin\token-usage-insights.cmd"
509
+ ```
510
+
511
+ * * *
512
+
513
+ ## 常駐サービス
514
+
515
+ ### Linux:1 行で systemd ユーザーサービスをインストールして有効化
516
+
517
+ ```bash
518
+ curl -fsSL https://raw.githubusercontent.com/doggy8088/TokenUsageInsights/main/scripts/get.sh | bash -s -- --service
519
+ ```
520
+
521
+ これはインストール版をダウンロードして `token-usage-insights.service` を直ちに有効化します。systemd ファイルを自分でビルドまたは編集する必要はありません。
522
+
523
+ ### サービスを管理
524
+
525
+ ```bash
526
+ systemctl --user status token-usage-insights.service
527
+ journalctl --user -u token-usage-insights.service -n 50 -f
528
+ systemctl --user restart token-usage-insights.service
529
+ systemctl --user stop token-usage-insights.service
530
+ ```
531
+
532
+ * * *
533
+
534
+ ## インストールオプションと手動インストール
535
+
536
+ GitHub Release では Linux、macOS、Windows 用のコンパイル済み実行ファイルを提供しています。インストールと実行に Rust や Cargo は必要ありません。
537
+
538
+ ### 1 行インストーラーのオプション引数
539
+
540
+ `scripts/get.sh`(Linux / macOS)と `scripts/get.ps1`(Windows)は、プラットフォームと CPU アーキテクチャを自動判定し、最新(または指定した)Release から対応するアーカイブをダウンロードして展開し、パッケージ内の `install.sh` / `install.ps1` を呼び出します。手動のダウンロードや展開は不要です:
541
+
542
+ Linux / macOS:
543
+
544
+ ```bash
545
+ curl -fsSL https://raw.githubusercontent.com/doggy8088/TokenUsageInsights/main/scripts/get.sh | bash
546
+ ```
547
+
548
+ Linux で systemd ユーザーサービスも同時にインストールして有効化する場合:
549
+
550
+ ```bash
551
+ curl -fsSL https://raw.githubusercontent.com/doggy8088/TokenUsageInsights/main/scripts/get.sh | bash -s -- --service
552
+ ```
553
+
554
+ Windows PowerShell:
555
+
556
+ ```powershell
557
+ irm https://raw.githubusercontent.com/doggy8088/TokenUsageInsights/main/scripts/get.ps1 | iex
558
+ ```
559
+
560
+ インストール後に実行します(Linux/macOS では `bin_dir` が `PATH` に含まれることを確認してください。Windows では `.cmd` shim が作成されます):
561
+
562
+ ```bash
563
+ token-usage-insights
564
+ ```
565
+
566
+ 環境変数でバージョンとインストール先を指定できます(すべて任意):
567
+
568
+ | 変数 | 対応プラットフォーム | 説明 |
569
+ | --- | --- | --- |
570
+ | `TOKEN_USAGE_INSIGHTS_VERSION` | Linux / macOS / Windows | `v0.6.2` のようなインストール対象の Release tag。デフォルトは `latest` |
571
+ | `TOKEN_USAGE_INSIGHTS_INSTALL_DIR` | Linux / macOS | `install.sh` に渡すインストールディレクトリ |
572
+ | `TOKEN_USAGE_INSIGHTS_BIN_DIR` | Linux / macOS | `install.sh` に渡す実行ファイルリンクディレクトリ |
573
+
574
+ Windows でインストール先、bin ディレクトリ、ポートをカスタマイズする場合は、先にスクリプトをダウンロードして引数付きで実行してください(`iex` パイプラインは引数に対応しません):
575
+
576
+ ```powershell
577
+ Invoke-WebRequest -Uri https://raw.githubusercontent.com/doggy8088/TokenUsageInsights/main/scripts/get.ps1 -OutFile get.ps1
578
+ .\get.ps1 -InstallDir 'D:\Apps\Token Usage Insights' -Port 3010
579
+ ```
580
+
581
+ ### 手動ダウンロードとインストール
582
+
583
+ リモートスクリプトを直接実行したくない場合は、対応プラットフォームのアーカイブを手動でダウンロードし、パッケージ内のインストールスクリプトを実行できます。各 Release アーカイブには次が含まれます:
584
+
585
+ - 単一プラットフォーム用の実行ファイル
586
+ - `static/` のフロントエンドアセット
587
+ - モデル料金表 `pricing.csv`
588
+ - `shell/` の Status Line およびサービススクリプト
589
+ - `scripts/` ディレクトリ(`install.sh`、`install.ps1`、`get.sh`、`get.ps1` を含む)
590
+ - README、LICENSE、VERSION
591
+
592
+ Linux または macOS:
593
+
594
+ ```bash
595
+ tar -xzf token-usage-insights-<tag>-<target>.tar.gz
596
+ cd token-usage-insights-<tag>-<target>
597
+ ./install.sh
598
+ ```
599
+
600
+ Linux で systemd ユーザーサービスをインストールして有効化する場合:
601
+
602
+ ```bash
603
+ ./install.sh --service
604
+ ```
605
+
606
+ Windows:
607
+
608
+ ```powershell
609
+ Expand-Archive token-usage-insights-<tag>-x86_64-pc-windows-msvc.zip
610
+ cd token-usage-insights-<tag>-x86_64-pc-windows-msvc
611
+ powershell -ExecutionPolicy Bypass -File .\install.ps1
612
+ ```
613
+
614
+ Windows のインストール先とポートをカスタマイズ:
615
+
616
+ ```powershell
617
+ .\install.ps1 -InstallDir 'D:\Apps\Token Usage Insights' -BinDir "$HOME\bin" -Port 3010
618
+ ```
619
+
620
+ ### CI 検証
621
+
622
+ `Release` workflow は各ビルドで Linux、macOS、Windows 上の対応するインストールスクリプト(`install.sh` / `install.ps1`)を実行し、インストール後に実行ファイルを起動して次を確認します:
623
+
624
+ - 指定したポートでサービスが `/api/<assistant>/pricing` に応答する
625
+ - 応答内容がパッケージ内の `pricing.csv` を実際に読み込んでいる
626
+ - 新しい `INSIGHTS_DIR` が作成され、SQLite データベースが生成される
627
+
628
+ `get.sh` と `get.ps1` も各ビルド前に構文チェック(`bash -n` と PowerShell AST 解析)を受け、Release に公開されるバージョンが正常に実行できることを保証します。
629
+
630
+ ### メンテナーによるリリース
631
+
632
+ Git tag をプッシュすると、GitHub Actions が対応する Release を自動作成します:
633
+
634
+ ```bash
635
+ git tag vX.Y.Z
636
+ git push origin vX.Y.Z
637
+ ```
638
+
639
+ * * *
640
+
641
+ ## 旧データの移行
642
+
643
+ 以前に次のスタンドアロンプロジェクトを使用していた場合、本プロジェクトの起動時に古い SQLite データの移行を自動的に試みます:
644
+
645
+ - `~/.gemini/antigravity-cli/antigravity_cli_token_insights.db`
646
+ - `~/.copilot/copilot_cli_token_insights.db`
647
+ - `~/.codex/codex_cli_token_insights.db`
648
+
649
+ 移行に成功すると、古いデータベースは `.bak` にリネームされます。
650
+
651
+ データ移行が完了したことを確認したら、旧サービスを停止できます:
652
+
653
+ ```bash
654
+ systemctl --user stop copilot-cli-token-insights.service
655
+ systemctl --user disable copilot-cli-token-insights.service
656
+ systemctl --user stop antigravity-cli-token-insights.service
657
+ systemctl --user disable antigravity-cli-token-insights.service
658
+ systemctl --user stop codex-cli-token-insights.service
659
+ systemctl --user disable codex-cli-token-insights.service
660
+
661
+ rm -f ~/.config/systemd/user/copilot-cli-token-insights.service
662
+ rm -f ~/.config/systemd/user/antigravity-cli-token-insights.service
663
+ rm -f ~/.config/systemd/user/codex-cli-token-insights.service
664
+
665
+ systemctl --user daemon-reload
666
+ systemctl --user reset-failed
667
+ ```
668
+
669
+ * * *
670
+
671
+ ## トラブルシューティング
672
+
673
+ ### ダッシュボードにデータがない
674
+
675
+ ツールごとにデータソースが存在するか確認します:
676
+
677
+ ```bash
678
+ ls ~/.gemini/antigravity-cli/usage
679
+ ls ~/.copilot/usage
680
+ ls ~/.codex/sessions
681
+ ls ~/.codex/archived_sessions
682
+ ls ~/.claude/projects
683
+ ```
684
+
685
+ Antigravity CLI と Copilot CLI では、`settings.json` に `statusLine` が設定され、スクリプトに実行権限があることも確認してください。
686
+
687
+ Windows PowerShell ではネイティブデータディレクトリを直接確認できます:
688
+
689
+ ```powershell
690
+ Get-ChildItem "$env:USERPROFILE\.gemini\antigravity-cli\usage"
691
+ Get-ChildItem "$env:USERPROFILE\.copilot\usage"
692
+ Get-ChildItem "$env:USERPROFILE\.codex\sessions"
693
+ Get-ChildItem "$env:USERPROFILE\.codex\archived_sessions"
694
+ Get-ChildItem "$env:USERPROFILE\.claude\projects"
695
+ ```
696
+
697
+ ### Status Line スクリプトを実行できない
698
+
699
+ ```bash
700
+ command -v jq
701
+ chmod +x ~/.gemini/antigravity-cli/statusline-token.sh
702
+ chmod +x ~/.copilot/statusline-token.sh
703
+ ```
704
+
705
+ Status Line スクリプトは CLI から渡される JSON の解析に `jq` を使用します。
706
+
707
+ 上記の `jq` 要件は `.sh` collector のみに適用されます。Windows の `.ps1` collector は次のコマンドでテストできます。バックスラッシュや空白を含むパスもネイティブに処理します:
708
+
709
+ ```powershell
710
+ Write-Output '{}' | powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE\.gemini\antigravity-cli\statusline-token.ps1" -Assistant antigravity
711
+ ```
712
+
713
+ ### 設定ファイルの JSON 形式が不正
714
+
715
+ ```bash
716
+ jq . ~/.gemini/antigravity-cli/settings.json
717
+ jq . ~/.copilot/settings.json
718
+ ```
719
+
720
+ 他の設定がある場合は、ファイル全体を配列や単なる文字列に置き換えず、`statusLine` オブジェクトを統合してください。
721
+
722
+ ### `localhost:3003` に接続できない
723
+
724
+ ```bash
725
+ PORT=3010 "$HOME/.local/bin/token-usage-insights"
726
+ ```
727
+
728
+ 別のポートを使用する場合は、対応する URL を開きます。例:
729
+
730
+ ```text
731
+ http://localhost:3010
732
+ ```
733
+
734
+ * * *
735
+
736
+ ## 開発コマンド
737
+
738
+ このセクションはソースコードを変更またはビルドする開発者向けです。通常の利用では前述の 1 行インストールコマンドを使用してください。
739
+
740
+ ```bash
741
+ git clone https://github.com/doggy8088/TokenUsageInsights.git
742
+ cd TokenUsageInsights
743
+ cargo fmt
744
+ cargo test
745
+ cargo clippy --all-targets --all-features
746
+ cargo build --release
747
+ ./target/release/token-usage-insights
748
+ ```
749
+
750
+ * * *
751
+
752
+ ## プロジェクトファイル
753
+
754
+ ```text
755
+ src/ Rust 後端、API、SQLite 同步、價格與時間軸解析
756
+ static/ 前端 HTML、JavaScript、CSS 與圖片資產
757
+ shell/ Bash/PowerShell Status Line collector 與 systemd 服務範本
758
+ scripts/ Linux/macOS、Windows 安裝與 Windows smoke test
759
+ pricing.csv 模型價格表,本地估算費用依此檔案載入
760
+ ```
761
+
762
+ * * *
763
+
764
+ ## スクリーンショット
765
+
766
+ ![Token 戦情室の日次ダッシュボード](screenshots/codex-daily-2026-07-07-desktop-chrome.png)
767
+
768
+ ![Token 戦情室の月次ダッシュボード](screenshots/codex-daily-2026-07-07.png)
769
+
770
+ ![Token 戦情室の Session タイムライン](screenshots/codex-daily-2026-07-07-desktop-chrome.png)