vibeusage 0.2.21 → 0.2.22
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 +306 -173
- package/README.old.md +324 -0
- package/README.zh-CN.md +304 -188
- package/package.json +32 -32
- package/src/cli.js +41 -37
- package/src/commands/activate-if-needed.js +41 -0
- package/src/commands/diagnostics.js +8 -9
- package/src/commands/doctor.js +31 -26
- package/src/commands/init.js +285 -218
- package/src/commands/status.js +86 -83
- package/src/commands/sync.js +182 -130
- package/src/commands/uninstall.js +66 -62
- package/src/lib/activation-check.js +290 -0
- package/src/lib/browser-auth.js +52 -54
- package/src/lib/claude-config.js +25 -25
- package/src/lib/cli-ui.js +35 -35
- package/src/lib/codex-config.js +40 -36
- package/src/lib/debug-flags.js +2 -2
- package/src/lib/diagnostics.js +70 -57
- package/src/lib/doctor.js +139 -132
- package/src/lib/fs.js +17 -17
- package/src/lib/gemini-config.js +44 -40
- package/src/lib/init-flow.js +16 -22
- package/src/lib/insforge-client.js +10 -10
- package/src/lib/insforge.js +9 -3
- package/src/lib/openclaw-hook.js +89 -66
- package/src/lib/openclaw-session-plugin.js +116 -92
- package/src/lib/opencode-config.js +31 -32
- package/src/lib/opencode-usage-audit.js +34 -31
- package/src/lib/progress.js +12 -13
- package/src/lib/project-usage-purge.js +23 -17
- package/src/lib/prompt.js +8 -4
- package/src/lib/rollout.js +342 -241
- package/src/lib/runtime-config.js +34 -22
- package/src/lib/subscriptions.js +94 -92
- package/src/lib/tracker-paths.js +6 -6
- package/src/lib/upload-throttle.js +35 -16
- package/src/lib/uploader.js +33 -29
- package/src/lib/vibeusage-api.js +72 -56
- package/src/lib/vibeusage-public-repo.js +41 -24
package/README.zh-CN.md
CHANGED
|
@@ -4,18 +4,19 @@
|
|
|
4
4
|
|
|
5
5
|
# 🟢 VIBEUSAGE
|
|
6
6
|
|
|
7
|
-
**量化你的 AI 产出**
|
|
8
|
-
|
|
7
|
+
**量化你的 AI 产出**
|
|
8
|
+
_追踪所有 AI CLI 工具的 Token 使用量_
|
|
9
9
|
|
|
10
10
|
[**www.vibeusage.cc**](https://www.vibeusage.cc)
|
|
11
11
|
|
|
12
12
|
[](https://opensource.org/licenses/MIT)
|
|
13
|
-
[](https://www.npmjs.com/package/vibeusage)
|
|
14
|
+
[](https://nodejs.org/)
|
|
14
15
|
[](https://www.apple.com/macos/)
|
|
15
16
|
|
|
16
17
|
[**English**](README.md) • [**中文说明**](README.zh-CN.md)
|
|
17
18
|
|
|
18
|
-
[**文档**](docs/) • [**控制台**](
|
|
19
|
+
[**文档**](docs/) • [**控制台**](https://www.vibeusage.cc) • [**后端接口**](BACKEND_API.md)
|
|
19
20
|
|
|
20
21
|
<br/>
|
|
21
22
|
|
|
@@ -25,184 +26,273 @@ _Codex CLI 实时 AI 分析工具_
|
|
|
25
26
|
|
|
26
27
|
---
|
|
27
28
|
|
|
28
|
-
##
|
|
29
|
+
## 🚀 快速开始
|
|
30
|
+
|
|
31
|
+
30 秒即可上手:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx vibeusage init
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
就这样!你的 AI token 使用量将自动同步到[控制台](https://www.vibeusage.cc) 🎉
|
|
29
38
|
|
|
30
|
-
|
|
39
|
+
## ✨ 为什么选择 VibeUsage?
|
|
31
40
|
|
|
32
|
-
|
|
41
|
+
- 📡 **多来源统一追踪** - 支持 Codex CLI、Every Code、Gemini CLI、Claude Code、Opencode、OpenClaw 等多个 AI CLI 工具
|
|
42
|
+
- 🤖 **多模型统计** - 统一追踪 GPT-4、Claude、Gemini、o1 等所有 AI 模型的 token 消耗
|
|
43
|
+
- 📁 **项目 AI 足迹** - 按仓库追踪并公开展示 token 使用量,证明这是 AI 辅助开发的项目
|
|
44
|
+
- 🏆 **全球排行榜** - 周榜/月榜/总榜实时更新,与全球开发者社区一起成长
|
|
45
|
+
- 🌐 **公开档案** - 分享你的 AI 使用旅程,可选公开参与排行榜
|
|
46
|
+
- 🔒 **隐私优先** - 只统计数字,永不上传你的代码和对话
|
|
47
|
+
- ⚡ **零配置自动同步** - 设置一次,终身自动
|
|
48
|
+
- 🎨 **Matrix-A 设计** - 赛博朋克风格的高颜值控制台
|
|
49
|
+
- 📈 **深度分析** - 成本洞察、趋势预测、活动热图
|
|
33
50
|
|
|
34
|
-
##
|
|
51
|
+
## 🧰 支持的 AI CLI
|
|
35
52
|
|
|
36
|
-
|
|
53
|
+
| CLI 工具 | 自动检测 | 状态 |
|
|
54
|
+
|----------|---------|------|
|
|
55
|
+
| **Codex CLI** | ✅ | 完全支持 |
|
|
56
|
+
| **Every Code** | ✅ | 完全支持 |
|
|
57
|
+
| **Gemini CLI** | ✅ | 完全支持 |
|
|
58
|
+
| **Claude Code** | ✅ | 完全支持 |
|
|
59
|
+
| **Opencode** | ✅ | 完全支持 |
|
|
60
|
+
| **OpenClaw** | ✅ | 完全支持 |
|
|
37
61
|
|
|
38
|
-
-
|
|
39
|
-
- 📡 **本地聚合**:所有 Token 消耗分析均在你的机器上完成。我们仅将量化的 30 分钟使用桶(Usage Buckets)中继到云端。
|
|
40
|
-
- 🔐 **身份哈希**:设备令牌在服务端使用 SHA-256 进行哈希处理。你的原始凭据绝不会存在于我们的数据库中。
|
|
41
|
-
- 🔦 **全程透明**:你可以亲自审计 `src/lib/rollout.js` 中的同步逻辑。我们真正采集的只有数字和时间戳。
|
|
62
|
+
无论你使用 GPT-4、Claude 3.5 Sonnet、o1 还是 Gemini,所有 token 消耗都会被统一追踪。
|
|
42
63
|
|
|
43
|
-
##
|
|
64
|
+
## 🌌 项目概述
|
|
65
|
+
|
|
66
|
+
**VibeUsage** 是一个专为 macOS 开发者设计的智能 token 使用追踪系统。通过全新的 **Matrix-A Design System**,它提供高度可视化的赛博朋克风格仪表盘,将你的 **AI 产出** 转化为可量化的指标,并支持通过 **Neural Divergence Map** 实时监控多模型的算力分布。
|
|
67
|
+
|
|
68
|
+
> [!TIP]
|
|
69
|
+
> **核心指数**:我们的标志性指标,通过分析 token 消耗速率与模式,反映你的开发心流状态。
|
|
44
70
|
|
|
45
|
-
|
|
46
|
-
- 🧭 **全能采集 (Universal-Sync)**: 原生支持多种 AI CLI 工具:
|
|
47
|
-
- **Codex CLI** - OpenAI 官方 CLI
|
|
48
|
-
- **Every Code** - 社区版 Codex 替代品
|
|
49
|
-
- **Gemini CLI** - Google AI CLI
|
|
50
|
-
- **Opencode** - AI 编程助手
|
|
51
|
-
- **Claude Code** - Anthropic 官方 CLI
|
|
52
|
-
- 无论是 GPT-4、Claude 3.5 Sonnet 还是 o1/Gemini,所有模型的 Token 消耗均可被统一捕获与统计。
|
|
53
|
-
- 📊 **Matrix Dashboard (矩阵控制台)**: 基于 React + Vite 的高性能仪表盘,采用全新的 **Matrix-A** 设计语言。
|
|
54
|
-
- **Neural Divergence Map (神经发散图谱)**: 可视化多引擎负载均衡状态,直观展示算力分布。
|
|
55
|
-
- **Cost Intelligence (成本智能)**: 实时、多维度的成本分解与预测。
|
|
56
|
-
- **Activity Heatmap (活跃热力图)**: GitHub 风格的贡献图,支持连续天数统计。
|
|
57
|
-
- **Smart Notifications (智能通知)**: 非侵入式的系统级通知,采用金色 (Gold/Amber) 视觉传达高价值信息。
|
|
58
|
-
- ⚡ **AI Analytics (AI 分析)**: 深度分析 Input/Output Token,支持缓存 (Cached) 与推理 (Reasoning) 部分的分离监控。
|
|
59
|
-
- 📈 **排行榜 (Leaderboard)**: 日、周、月、总排行榜,使用隐私安全的显示名称。
|
|
60
|
-
- 🌐 **公开视图 (Public View)**: 分享你的 AI 使用历程,隐私安全的公开档案。
|
|
61
|
-
- 📁 **项目统计 (Project Stats)**: 按项目/仓库追踪 Token 使用,支持全时间范围。
|
|
62
|
-
- 🔒 **Identity Core (身份核心)**: 完备的身份验证与权限管理,保护你的开发数据资产。
|
|
71
|
+
## 📊 控制台功能
|
|
63
72
|
|
|
64
|
-
###
|
|
73
|
+
### 🎨 Matrix-A 设计系统
|
|
74
|
+
使用 React + Vite 构建的高性能控制台,配备赛博朋克风格的设计语言:
|
|
75
|
+
- **Neural Divergence Map**:可视化多引擎负载均衡和算力分布
|
|
76
|
+
- **成本智能**:实时、多维度的成本分解和预测
|
|
77
|
+
- **活动热图**:GitHub 风格的贡献图表,带连击追踪
|
|
78
|
+
- **智能通知**:非侵入式的系统级提醒,采用 Golden 视觉风格
|
|
79
|
+
|
|
80
|
+
### 📈 分析与洞察
|
|
81
|
+
- **AI 分析**:深度分析输入/输出 token,专门追踪缓存和推理组件
|
|
82
|
+
- **模型分解**:按模型统计使用量和成本分析
|
|
83
|
+
- **项目统计**:按 GitHub 仓库追踪 token 使用量
|
|
84
|
+
- **趋势预测**:预测未来使用模式
|
|
85
|
+
|
|
86
|
+
### 🏆 社区功能
|
|
87
|
+
- **全球排行榜**:日榜、周榜、月榜和总榜,隐私安全的显示名称
|
|
88
|
+
- **公开档案**:使用隐私安全的公开档案分享你的 AI 使用旅程
|
|
89
|
+
- **排行榜分类**:参与总体排名或按特定模型(GPT、Claude 等)竞争
|
|
65
90
|
|
|
66
91
|
<img src="docs/screenshots/landing.png" width="900" alt="VibeUsage 落地页预览"/>
|
|
67
92
|
|
|
68
|
-
##
|
|
93
|
+
## 🔒 隐私保证
|
|
94
|
+
|
|
95
|
+
我们相信你的代码和想法属于你自己。VibeUsage 采用严格的隐私保护架构,确保你的数据始终受控。
|
|
69
96
|
|
|
70
|
-
|
|
97
|
+
| 保护措施 | 说明 |
|
|
98
|
+
|---------|------|
|
|
99
|
+
| 🛡️ **不上传内容** | 永不上传 prompt 或响应 - 仅在本地计算 token 数量 |
|
|
100
|
+
| 📡 **本地聚合** | 所有分析在本地完成 - 仅发送 30 分钟使用桶 |
|
|
101
|
+
| 🔐 **哈希身份** | 设备 token 在服务端使用 SHA-256 哈希 - 原始凭据从不存储 |
|
|
102
|
+
| 🔦 **完全透明** | 可以在 `src/lib/rollout.js` 中审计同步逻辑 - 真的只有数字和时间戳 |
|
|
71
103
|
|
|
72
|
-
|
|
104
|
+
## 📦 安装
|
|
105
|
+
|
|
106
|
+
### 标准设置
|
|
107
|
+
|
|
108
|
+
一次初始化环境 - VibeUsage 会在后台自动处理所有同步:
|
|
73
109
|
|
|
74
110
|
```bash
|
|
75
|
-
npx
|
|
111
|
+
npx vibeusage init
|
|
76
112
|
```
|
|
77
113
|
|
|
78
|
-
|
|
114
|
+
### 认证方式
|
|
79
115
|
|
|
80
116
|
1. **浏览器认证**(默认)- 打开浏览器进行安全认证
|
|
81
|
-
2. **链接码** - 使用 `--link-code`
|
|
82
|
-
3. **密码** -
|
|
117
|
+
2. **链接码** - 使用 `--link-code` 通过控制台生成的代码进行认证
|
|
118
|
+
3. **密码** - 直接密码登录(备选)
|
|
83
119
|
4. **访问令牌** - 用于 CI/自动化环境
|
|
84
120
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
121
|
+
### CLI 选项
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
npx vibeusage init [选项]
|
|
125
|
+
|
|
126
|
+
选项:
|
|
127
|
+
--yes 跳过确认提示(非交互环境)
|
|
128
|
+
--dry-run 预览更改但不实际写入文件
|
|
129
|
+
--link-code <code> 使用控制台的链接码进行认证
|
|
130
|
+
--base-url <url> 覆盖默认 API 端点
|
|
131
|
+
--debug 启用调试输出
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 自动配置
|
|
90
135
|
|
|
91
|
-
|
|
136
|
+
`init` 完成后,所有支持的 CLI 工具都会自动配置数据同步:
|
|
92
137
|
|
|
93
|
-
| 工具 | 配置位置 |
|
|
94
|
-
|
|
95
|
-
| Codex CLI | `~/.codex/config.toml` | `notify`
|
|
96
|
-
| Every Code | `~/.code/config.toml`(或 `CODE_HOME`) | `notify`
|
|
97
|
-
| Gemini CLI | `~/.gemini/settings.json`(或 `GEMINI_HOME`) | `SessionEnd`
|
|
98
|
-
| Opencode | 全局插件 |
|
|
99
|
-
| Claude Code | `~/.claude/hooks/` |
|
|
138
|
+
| 工具 | 配置位置 | 方法 |
|
|
139
|
+
|-----|---------|-----|
|
|
140
|
+
| **Codex CLI** | `~/.codex/config.toml` | `notify` 钩子 |
|
|
141
|
+
| **Every Code** | `~/.code/config.toml`(或 `CODE_HOME`) | `notify` 钩子 |
|
|
142
|
+
| **Gemini CLI** | `~/.gemini/settings.json`(或 `GEMINI_HOME`) | `SessionEnd` 钩子 |
|
|
143
|
+
| **Opencode** | 全局插件 | 消息解析器插件 |
|
|
144
|
+
| **Claude Code** | `~/.claude/hooks/` | 钩子配置 |
|
|
145
|
+
| **OpenClaw** | 安装时自动链接 | Gateway 钩子(需要重启) |
|
|
100
146
|
|
|
101
|
-
|
|
147
|
+
无需进一步操作!🎉
|
|
102
148
|
|
|
103
|
-
|
|
149
|
+
## 💡 使用方法
|
|
104
150
|
|
|
105
|
-
|
|
151
|
+
### 手动同步
|
|
152
|
+
|
|
153
|
+
虽然同步是自动进行的,但你可以随时手动触发同步:
|
|
106
154
|
|
|
107
155
|
```bash
|
|
108
|
-
# 手动同步最新的本地会话数据
|
|
109
|
-
npx
|
|
156
|
+
# 手动同步最新的本地会话数据
|
|
157
|
+
npx vibeusage sync
|
|
110
158
|
|
|
111
|
-
#
|
|
112
|
-
npx
|
|
159
|
+
# 检查当前链接状态
|
|
160
|
+
npx vibeusage status
|
|
113
161
|
```
|
|
114
162
|
|
|
115
|
-
###
|
|
163
|
+
### 健康检查
|
|
164
|
+
|
|
165
|
+
运行综合诊断以识别问题:
|
|
116
166
|
|
|
117
167
|
```bash
|
|
118
|
-
#
|
|
119
|
-
npx
|
|
168
|
+
# 基本健康检查
|
|
169
|
+
npx vibeusage doctor
|
|
120
170
|
|
|
121
|
-
#
|
|
122
|
-
npx
|
|
171
|
+
# JSON 输出用于调试
|
|
172
|
+
npx vibeusage doctor --json --out doctor.json
|
|
123
173
|
|
|
124
|
-
#
|
|
125
|
-
npx
|
|
174
|
+
# 针对不同端点进行测试
|
|
175
|
+
npx vibeusage doctor --base-url https://your-instance.insforge.app
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 调试模式
|
|
179
|
+
|
|
180
|
+
启用调试输出以查看详细的请求/响应信息:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
VIBEUSAGE_DEBUG=1 npx vibeusage sync
|
|
184
|
+
# 或
|
|
185
|
+
npx vibeusage sync --debug
|
|
126
186
|
```
|
|
127
187
|
|
|
128
188
|
### 卸载
|
|
129
189
|
|
|
130
190
|
```bash
|
|
131
191
|
# 标准卸载(保留数据)
|
|
132
|
-
npx
|
|
192
|
+
npx vibeusage uninstall
|
|
133
193
|
|
|
134
|
-
#
|
|
135
|
-
npx
|
|
194
|
+
# 完全清除 - 删除所有数据,包括配置和缓存的会话
|
|
195
|
+
npx vibeusage uninstall --purge
|
|
136
196
|
```
|
|
137
197
|
|
|
138
|
-
|
|
198
|
+
## 🏗️ 架构
|
|
199
|
+
|
|
200
|
+
```mermaid
|
|
201
|
+
graph LR
|
|
202
|
+
A[Codex CLI] -->|Rollout 日志| G(Tracker CLI)
|
|
203
|
+
B[Every Code] -->|Rollout 日志| G
|
|
204
|
+
C[Gemini CLI] -->|会话日志| G
|
|
205
|
+
D[Opencode] -->|消息日志| G
|
|
206
|
+
E[Claude Code] -->|钩子输出| G
|
|
207
|
+
F[OpenClaw] -->|Gateway 钩子| G
|
|
208
|
+
G -->|AI Tokens| H{核心中继}
|
|
209
|
+
H --> I[VibeUsage 控制台]
|
|
210
|
+
H --> J[AI 分析引擎]
|
|
211
|
+
H --> K[排行榜服务]
|
|
212
|
+
H --> L[公开视图 API]
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 技术栈
|
|
216
|
+
|
|
217
|
+
- **CLI**:Node.js 20.x、CommonJS
|
|
218
|
+
- **控制台**:React 18 + Vite + TailwindCSS + TypeScript
|
|
219
|
+
- **后端**:InsForge Edge Functions (Deno)
|
|
220
|
+
- **数据库**:InsForge Database (PostgreSQL)
|
|
221
|
+
- **设计**:Matrix-A Design System
|
|
222
|
+
|
|
223
|
+
### 组件
|
|
224
|
+
|
|
225
|
+
- **Tracker CLI**(`src/`):Node.js CLI,解析多个 AI 工具的日志并同步 token 数据
|
|
226
|
+
- **核心中继**(InsForge Edge Functions):无服务器后端,处理摄入、聚合和 API
|
|
227
|
+
- **控制台**(`dashboard/`):React + Vite 前端用于可视化
|
|
228
|
+
- **AI 分析引擎**:成本计算、模型分解和使用预测
|
|
229
|
+
|
|
230
|
+
### 数据流
|
|
231
|
+
|
|
232
|
+
1. AI CLI 工具在使用过程中生成日志
|
|
233
|
+
2. 本地 `notify-handler` 检测更改并触发同步
|
|
234
|
+
3. CLI 增量解析日志,提取 token 计数(仅白名单字段)
|
|
235
|
+
4. 数据在本地聚合到 30 分钟 UTC 桶中
|
|
236
|
+
5. 批量上传到 InsForge,带幂等去重
|
|
237
|
+
6. 控制台查询聚合结果进行可视化
|
|
238
|
+
|
|
239
|
+
### 日志源
|
|
139
240
|
|
|
140
241
|
| 工具 | 日志位置 | 覆盖环境变量 |
|
|
141
|
-
|
|
142
|
-
| Codex CLI | `~/.codex/sessions/**/rollout-*.jsonl` | `CODEX_HOME` |
|
|
143
|
-
| Every Code | `~/.code/sessions/**/rollout-*.jsonl` | `CODE_HOME` |
|
|
144
|
-
| Gemini CLI | `~/.gemini/tmp/**/chats/session-*.json` | `GEMINI_HOME` |
|
|
145
|
-
| Opencode | `~/.opencode/messages/*.json` | - |
|
|
146
|
-
| Claude Code |
|
|
242
|
+
|-----|---------|------------|
|
|
243
|
+
| **Codex CLI** | `~/.codex/sessions/**/rollout-*.jsonl` | `CODEX_HOME` |
|
|
244
|
+
| **Every Code** | `~/.code/sessions/**/rollout-*.jsonl` | `CODE_HOME` |
|
|
245
|
+
| **Gemini CLI** | `~/.gemini/tmp/**/chats/session-*.json` | `GEMINI_HOME` |
|
|
246
|
+
| **Opencode** | `~/.opencode/messages/*.json` | - |
|
|
247
|
+
| **Claude Code** | 从钩子输出解析 | - |
|
|
248
|
+
| **OpenClaw** | Gateway 钩子集成 | - |
|
|
249
|
+
|
|
250
|
+
## ⚙️ 配置
|
|
147
251
|
|
|
148
|
-
|
|
252
|
+
<details>
|
|
253
|
+
<summary><b>环境变量</b></summary>
|
|
149
254
|
|
|
150
255
|
### 核心设置
|
|
151
256
|
|
|
152
257
|
| 变量 | 说明 | 默认值 |
|
|
153
|
-
|
|
154
|
-
| `VIBEUSAGE_HTTP_TIMEOUT_MS` | CLI HTTP
|
|
155
|
-
| `VITE_VIBEUSAGE_HTTP_TIMEOUT_MS` |
|
|
156
|
-
| `VIBEUSAGE_DEBUG` | 启用调试输出(`1` 或 `true`
|
|
157
|
-
| `VIBEUSAGE_DASHBOARD_URL` |
|
|
258
|
+
|-----|------|-------|
|
|
259
|
+
| `VIBEUSAGE_HTTP_TIMEOUT_MS` | CLI HTTP 超时(毫秒)(`0` 禁用,限制 `1000..120000`) | `20000` |
|
|
260
|
+
| `VITE_VIBEUSAGE_HTTP_TIMEOUT_MS` | 控制台请求超时(毫秒)(`0` 禁用,限制 `1000..30000`) | `15000` |
|
|
261
|
+
| `VIBEUSAGE_DEBUG` | 启用调试输出(`1` 或 `true` 启用) | - |
|
|
262
|
+
| `VIBEUSAGE_DASHBOARD_URL` | 自定义控制台 URL | `https://www.vibeusage.cc` |
|
|
158
263
|
| `VIBEUSAGE_INSFORGE_BASE_URL` | 自定义 API 基础 URL | `https://5tmappuk.us-east.insforge.app` |
|
|
159
264
|
| `VIBEUSAGE_DEVICE_TOKEN` | 预配置设备令牌(用于 CI) | - |
|
|
160
265
|
|
|
161
266
|
### CLI 工具覆盖
|
|
162
267
|
|
|
163
268
|
| 变量 | 说明 | 默认值 |
|
|
164
|
-
|
|
269
|
+
|-----|------|-------|
|
|
165
270
|
| `CODEX_HOME` | Codex CLI 目录覆盖 | `~/.codex` |
|
|
166
271
|
| `CODE_HOME` | Every Code 目录覆盖 | `~/.code` |
|
|
167
272
|
| `GEMINI_HOME` | Gemini CLI 目录覆盖 | `~/.gemini` |
|
|
168
273
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
- `VIBEUSAGE_ROLLUP_ENABLED`:当前被忽略;rollup 聚合在代码层禁用,等待 rollup 表部署完成后再恢复。
|
|
172
|
-
|
|
173
|
-
## 🧰 常见问题
|
|
174
|
-
|
|
175
|
-
### 调试模式
|
|
176
|
-
|
|
177
|
-
启用调试输出以查看详细的请求/响应信息:
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
VIBEUSAGE_DEBUG=1 npx --yes vibeusage sync
|
|
181
|
-
# 或
|
|
182
|
-
npx --yes vibeusage sync --debug
|
|
183
|
-
```
|
|
274
|
+
</details>
|
|
184
275
|
|
|
185
|
-
|
|
276
|
+
## 🔧 故障排查
|
|
186
277
|
|
|
187
|
-
|
|
278
|
+
<details>
|
|
279
|
+
<summary><b>数据未出现在控制台中</b></summary>
|
|
188
280
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
281
|
+
1. 检查状态:`npx vibeusage status`
|
|
282
|
+
2. 强制手动同步:`npx vibeusage sync`
|
|
283
|
+
3. 验证 CLI 工具钩子已配置(如需要,重新运行 `init`)
|
|
284
|
+
4. 检查调试输出:`VIBEUSAGE_DEBUG=1 npx vibeusage sync`
|
|
192
285
|
|
|
193
|
-
|
|
194
|
-
npx --yes vibeusage doctor --json --out doctor.json
|
|
286
|
+
</details>
|
|
195
287
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
```
|
|
288
|
+
<details>
|
|
289
|
+
<summary><b>连击显示 0 天,但总数看起来正确</b></summary>
|
|
199
290
|
|
|
200
|
-
|
|
291
|
+
连击定义为连续到今天的天数。如果今天的总数为 0,连击将为 0。
|
|
201
292
|
|
|
202
|
-
|
|
203
|
-
- 如果你确认应该有 streak,请清理本地缓存并重新登录:
|
|
293
|
+
如果你期望非零连击,清除缓存的认证/热图数据并重新登录:
|
|
204
294
|
|
|
205
|
-
```
|
|
295
|
+
```javascript
|
|
206
296
|
localStorage.removeItem("vibeusage.dashboard.auth.v1");
|
|
207
297
|
Object.keys(localStorage)
|
|
208
298
|
.filter((k) => k.startsWith("vibeusage.heatmap."))
|
|
@@ -210,115 +300,141 @@ Object.keys(localStorage)
|
|
|
210
300
|
location.reload();
|
|
211
301
|
```
|
|
212
302
|
|
|
213
|
-
|
|
214
|
-
- 说明:Dashboard 不使用 `insforge-auth-token`,实际存储在 `vibeusage.dashboard.auth.v1`。
|
|
303
|
+
重新加载后完成落地页登录流程。
|
|
215
304
|
|
|
216
|
-
|
|
305
|
+
注意:控制台不使用 `insforge-auth-token`;使用 `vibeusage.dashboard.auth.v1`。
|
|
217
306
|
|
|
218
|
-
|
|
307
|
+
</details>
|
|
219
308
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
3. 验证 CLI 工具 hooks 是否已配置(需要时重新运行 `init`)
|
|
223
|
-
4. 检查调试输出:`VIBEUSAGE_DEBUG=1 npx vibeusage sync`
|
|
224
|
-
|
|
225
|
-
### 超时错误
|
|
309
|
+
<details>
|
|
310
|
+
<summary><b>慢速连接上的超时错误</b></summary>
|
|
226
311
|
|
|
227
312
|
为慢速连接增加 HTTP 超时:
|
|
228
313
|
|
|
229
314
|
```bash
|
|
230
|
-
VIBEUSAGE_HTTP_TIMEOUT_MS=60000 npx
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
## 🏗️ 系统架构
|
|
234
|
-
|
|
235
|
-
```mermaid
|
|
236
|
-
graph TD
|
|
237
|
-
A[Codex CLI] -->|Rollout Logs| F(Tracker CLI)
|
|
238
|
-
B[Every Code] -->|Rollout Logs| F
|
|
239
|
-
C[Gemini CLI] -->|Session Logs| F
|
|
240
|
-
D[Opencode] -->|Message Logs| F
|
|
241
|
-
E[Claude Code] -->|Hook Output| F
|
|
242
|
-
F -->|AI Tokens| G{Core Relay}
|
|
243
|
-
G --> H[VibeUsage Dashboard]
|
|
244
|
-
G --> I[AI Analytics Engine]
|
|
245
|
-
G --> J[Leaderboard Service]
|
|
246
|
-
G --> K[Public View API]
|
|
315
|
+
VIBEUSAGE_HTTP_TIMEOUT_MS=60000 npx vibeusage sync
|
|
247
316
|
```
|
|
248
317
|
|
|
249
|
-
|
|
318
|
+
</details>
|
|
250
319
|
|
|
251
|
-
|
|
252
|
-
- **Core Relay** (InsForge Edge Functions): 无服务器后端,处理摄取、聚合和 API
|
|
253
|
-
- **Dashboard** (`dashboard/`): React + Vite 前端可视化
|
|
254
|
-
- **AI Analytics Engine**: 成本计算、模型分解和使用预测
|
|
320
|
+
## 💻 开发
|
|
255
321
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
如果你想在本地运行或贡献代码:
|
|
259
|
-
|
|
260
|
-
### 仪表盘开发
|
|
322
|
+
### 本地开发
|
|
261
323
|
|
|
262
324
|
```bash
|
|
325
|
+
# 克隆仓库
|
|
326
|
+
git clone https://github.com/your-username/vibeusage.git
|
|
327
|
+
cd vibeusage
|
|
328
|
+
|
|
263
329
|
# 安装依赖
|
|
264
|
-
cd dashboard
|
|
265
330
|
npm install
|
|
266
331
|
|
|
267
|
-
#
|
|
332
|
+
# 启动控制台开发服务器
|
|
333
|
+
cd dashboard
|
|
334
|
+
npm install
|
|
268
335
|
npm run dev
|
|
269
336
|
```
|
|
270
337
|
|
|
271
|
-
###
|
|
272
|
-
|
|
273
|
-
当请求包含 `debug=1` 时,usage 接口会在响应体中附带 `debug` 对象,方便前端定位慢查询而不依赖响应头。
|
|
274
|
-
|
|
275
|
-
```ts
|
|
276
|
-
const res = await fetch(
|
|
277
|
-
`${baseUrl}/functions/vibeusage-usage-summary?from=2025-12-30&to=2025-12-30&debug=1`,
|
|
278
|
-
{
|
|
279
|
-
headers: { Authorization: `Bearer ${userJwt}` }
|
|
280
|
-
}
|
|
281
|
-
);
|
|
282
|
-
const data = await res.json();
|
|
283
|
-
|
|
284
|
-
if (data.debug) {
|
|
285
|
-
console.debug('usage debug', {
|
|
286
|
-
requestId: data.debug.request_id,
|
|
287
|
-
status: data.debug.status,
|
|
288
|
-
queryMs: data.debug.query_ms,
|
|
289
|
-
slowThresholdMs: data.debug.slow_threshold_ms,
|
|
290
|
-
slowQuery: data.debug.slow_query
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
### 整体架构验证
|
|
338
|
+
### 开发命令
|
|
296
339
|
|
|
297
340
|
```bash
|
|
298
|
-
#
|
|
341
|
+
# 运行测试
|
|
342
|
+
npm test
|
|
343
|
+
|
|
344
|
+
# 运行本地 CI 检查
|
|
345
|
+
npm run ci:local
|
|
346
|
+
|
|
347
|
+
# 验证文案注册表
|
|
299
348
|
npm run validate:copy
|
|
300
349
|
|
|
301
|
-
#
|
|
350
|
+
# 验证 UI 硬编码文本
|
|
351
|
+
npm run validate:ui-hardcode
|
|
352
|
+
|
|
353
|
+
# 验证架构防护栏
|
|
354
|
+
npm run validate:guardrails
|
|
355
|
+
|
|
356
|
+
# 构建后端函数
|
|
357
|
+
npm run build:insforge
|
|
358
|
+
|
|
359
|
+
# 检查后端构建(不写入)
|
|
360
|
+
npm run build:insforge:check
|
|
361
|
+
|
|
362
|
+
# 运行冒烟测试
|
|
302
363
|
npm run smoke
|
|
303
364
|
```
|
|
304
365
|
|
|
305
|
-
###
|
|
366
|
+
### OpenSpec 工作流
|
|
367
|
+
|
|
368
|
+
本项目使用 **OpenSpec** 进行规格驱动开发。在进行重大更改之前:
|
|
369
|
+
|
|
370
|
+
1. 阅读 [`openspec/project.md`](openspec/project.md) 了解项目约定
|
|
371
|
+
2. 查看 [`openspec/AGENTS.md`](openspec/AGENTS.md) 了解完整的 OpenSpec 工作流
|
|
372
|
+
3. 运行 `openspec list` 查看活跃的更改
|
|
373
|
+
4. 运行 `openspec list --specs` 查看现有规格
|
|
374
|
+
|
|
375
|
+
详见 [CLAUDE.md](CLAUDE.md) 了解详细指南。
|
|
376
|
+
|
|
377
|
+
### 架构验证
|
|
306
378
|
|
|
307
379
|
```bash
|
|
308
|
-
#
|
|
309
|
-
|
|
380
|
+
# 验证文案注册表
|
|
381
|
+
npm run validate:copy
|
|
382
|
+
|
|
383
|
+
# 生成架构画布
|
|
384
|
+
npm run architecture:canvas
|
|
310
385
|
|
|
311
|
-
#
|
|
312
|
-
|
|
386
|
+
# 为模块生成聚焦画布
|
|
387
|
+
npm run architecture:canvas:focus -- src
|
|
313
388
|
```
|
|
314
389
|
|
|
315
|
-
##
|
|
390
|
+
## 🗺️ 路线图
|
|
391
|
+
|
|
392
|
+
- [ ] Windows 支持
|
|
393
|
+
- [ ] Linux 支持
|
|
394
|
+
- [ ] 增强的项目级统计
|
|
395
|
+
- [ ] 团队协作功能
|
|
396
|
+
- [ ] 自定义报告导出
|
|
397
|
+
- [ ] 更多 AI CLI 支持
|
|
316
398
|
|
|
317
|
-
|
|
399
|
+
查看 [Issues](https://github.com/your-username/vibeusage/issues) 了解详细计划。
|
|
400
|
+
|
|
401
|
+
## 🤝 贡献
|
|
402
|
+
|
|
403
|
+
我们欢迎所有形式的贡献!
|
|
404
|
+
|
|
405
|
+
1. Fork 仓库
|
|
406
|
+
2. 创建功能分支(`git checkout -b feature/amazing-feature`)
|
|
407
|
+
3. 提交你的更改(`git commit -m 'Add amazing feature'`)
|
|
408
|
+
4. 推送到分支(`git push origin feature/amazing-feature`)
|
|
409
|
+
5. 创建 Pull Request
|
|
410
|
+
|
|
411
|
+
### 开发指南
|
|
412
|
+
|
|
413
|
+
- 所有用户界面文本必须在 `dashboard/src/content/copy.csv` 中注册
|
|
414
|
+
- 对于重大更改,遵循 OpenSpec 提案流程
|
|
415
|
+
- 代码必须通过所有测试和验证
|
|
416
|
+
- 详见 [CLAUDE.md](CLAUDE.md) 了解详细约定
|
|
417
|
+
|
|
418
|
+
## 📜 许可证
|
|
419
|
+
|
|
420
|
+
本项目采用 [MIT 许可证](LICENSE)。
|
|
421
|
+
|
|
422
|
+
## 🙏 致谢
|
|
423
|
+
|
|
424
|
+
- [InsForge](https://insforge.app) - 后端基础设施
|
|
425
|
+
- [Matrix-A Design System](docs/dashboard/matrix-a.md) - UI 框架
|
|
426
|
+
- 所有出色的贡献者
|
|
318
427
|
|
|
319
428
|
---
|
|
320
429
|
|
|
321
430
|
<div align="center">
|
|
322
|
-
<b>System_Ready // 2024 VibeUsage
|
|
323
|
-
<i>"
|
|
431
|
+
<b>System_Ready // 2024-2026 VibeUsage</b><br/>
|
|
432
|
+
<i>"量化你的 AI 产出。拥有你的数据。"</i><br/><br/>
|
|
433
|
+
|
|
434
|
+
由开发者制作,为开发者服务 💚
|
|
435
|
+
|
|
436
|
+
[网站](https://www.vibeusage.cc) •
|
|
437
|
+
[控制台](https://www.vibeusage.cc) •
|
|
438
|
+
[文档](docs/) •
|
|
439
|
+
[API](BACKEND_API.md)
|
|
324
440
|
</div>
|