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/LICENSE +21 -0
- package/README.en.md +770 -0
- package/README.ja.md +770 -0
- package/README.ko.md +770 -0
- package/README.md +797 -0
- package/README.zh-CN.md +770 -0
- package/npm/cli.cjs +30 -0
- package/npm/install.cjs +232 -0
- package/npm/prepublish-check.cjs +133 -0
- package/package.json +47 -0
package/README.zh-CN.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. 一行启动或安装看板
|
|
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 时,执行一行安装命令并打开看板即可。**
|
|
59
|
+
|
|
60
|
+
### Windows 原生使用
|
|
61
|
+
|
|
62
|
+
Windows 的一行安装会创建 `%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 处理。SQLite 数据库仍建议放在本地磁盘,以避免网络共享的 locking 语义差异。
|
|
81
|
+
|
|
82
|
+
* * *
|
|
83
|
+
|
|
84
|
+
## 支持功能
|
|
85
|
+
|
|
86
|
+
### 数据分析
|
|
87
|
+
|
|
88
|
+
- 每日、月度、年度 Token 统计
|
|
89
|
+
- 输入、输出、缓存读取、缓存写入、推理 Token 拆分
|
|
90
|
+
- 根据 `pricing.csv` 进行本地费用估算
|
|
91
|
+
- Session 数量、请求次数与 API 耗时统计
|
|
92
|
+
- 模型使用量排名
|
|
93
|
+
- Cursor 可由本地 `state.vscdb` 的 `agentKv` 记录归因到具体模型;无法唯一匹配时保留为 `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
|
+
- Codex subagent 相关字段,例如 parent session、agent nickname、agent role
|
|
104
|
+
- Markdown 回复渲染与内容清理
|
|
105
|
+
|
|
106
|
+
### 界面操作
|
|
107
|
+
|
|
108
|
+
- 五种 CLI 徽章切换
|
|
109
|
+
- 每日、月度、年度视图
|
|
110
|
+
- 日期、月份、年份快速切换
|
|
111
|
+
- 5 秒、10 秒、30 秒实时自动刷新
|
|
112
|
+
- 手动同步本地日志到 SQLite
|
|
113
|
+
- 深色与浅色主题
|
|
114
|
+
- 繁体中文与英文界面切换
|
|
115
|
+
- 模型费用表查看
|
|
116
|
+
|
|
117
|
+
* * *
|
|
118
|
+
|
|
119
|
+
## 网址参数(深层链接)
|
|
120
|
+
|
|
121
|
+
看板支持通过网址查询参数(Query String)直接打开指定状态的画面,方便加入书签、分享链接,或从其他工具跳转过来。在看板上切换 Agent、视图、日期、工作目录或图表类型时,网址也会自动更新为当前的状态。
|
|
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` | 指定以日(每日)、月(月度)或年(年度)视图显示 |
|
|
127
|
+
| `date` | 全部 | `daily`:`YYYY-MM-DD`;`monthly`:`YYYY-MM`;`yearly`:`YYYY` | 指定要显示的日期、月份或年份,格式会依 `tab` 自动对应 |
|
|
128
|
+
| `dir` | `daily` | 完整路径、`~` 开头的家目录路径,或唯一的路径后缀(如 `TokenUsageInsights`) | 指定每日视图的工作目录筛选。Windows 路径不区分大小写;找不到匹配目录时会显示全部 |
|
|
129
|
+
| `chart` | `daily` | `kline`、`trend` | 指定每日视图的图表类型:K 线图或趋势图 |
|
|
130
|
+
|
|
131
|
+
示例(`http://localhost:3003` 为默认网址,请依实际 `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
|
+
完成一行安装后,执行:
|
|
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,状态栏会输出类似格式:
|
|
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
|
+
完成一行安装后,执行:
|
|
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,状态栏会开始输出并累积 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,创建至少一个聊天 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 创建至少一个 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 创建至少一个项目 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`,也不需要在
|
|
356
|
+
`~/.Grok/build/settings.json` 设置 `statusLine`。
|
|
357
|
+
|
|
358
|
+
使用方式:
|
|
359
|
+
|
|
360
|
+
1. 先正常使用 Grok Build 创建至少一个 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 创建至少一个 Session。
|
|
382
|
+
2. 启动或刷新本项目看板。
|
|
383
|
+
3. 在左侧选择 Pi Coding Agent。
|
|
384
|
+
4. 按右上角同步按钮,或等待后台同步。
|
|
385
|
+
|
|
386
|
+
Pi Coding Agent 的成本始终直接读取自 Session 每个 turn 自行报告的 `usage.cost` 与相关 usage 数据,不会像 Grok Build 那样回退到 context snapshot 估算;因为 Pi 原生就会提供权威的 token 与成本信息。
|
|
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 创建至少一个 Session。
|
|
403
|
+
2. 启动或刷新本项目看板。
|
|
404
|
+
3. 在左侧选择 OMP。
|
|
405
|
+
4. 按右上角同步按钮,或等待后台同步。
|
|
406
|
+
|
|
407
|
+
OMP 的成本始终直接读取自 Session 每个 turn 自行报告的 `usage.cost` 与相关 usage 数据,不会像 Grok Build 那样回退到 context snapshot 估算;因为 OMP 原生就会提供权威的 token 与成本信息。
|
|
408
|
+
|
|
409
|
+
* * *
|
|
410
|
+
|
|
411
|
+
## 本地数据同步方式
|
|
412
|
+
|
|
413
|
+
启动服务时,后端会初始化本地 SQLite 并立即同步一次数据。服务启动后,也会每 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
|
+
先构建一次:
|
|
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:一行安装并启用 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
|
+
### 一行安装的可选参数
|
|
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 user service:
|
|
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 | 指定要安装的 Release tag,例如 `v0.6.2`。默认 `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 user service:
|
|
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 脚本依赖 `jq` 解析 CLI 传入的 JSON。
|
|
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
|
+
如果改用其他端口,请打开对应网址,例如:
|
|
729
|
+
|
|
730
|
+
```text
|
|
731
|
+
http://localhost:3010
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
* * *
|
|
735
|
+
|
|
736
|
+
## 开发命令
|
|
737
|
+
|
|
738
|
+
本节仅供需要修改或从源代码构建项目的开发者使用;一般使用请采用前述一行安装命令。
|
|
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
|
+

|
|
767
|
+
|
|
768
|
+

|
|
769
|
+
|
|
770
|
+

|