metrik
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
本地优先的 AI Agent 用量统计桌面应用:官方配额、本地 Token、估算成本三类事实分开呈现,读不到就说不可用
Metrik
Metrik 是一个本地优先的 AI Agent 用量统计桌面应用。它读取本机 Agent 留下的日志,把官方配额、本地解析的 Token、按公开价目估算的成本三类事实分开呈现——估算永远不冒充账单,读不到就显示"不可用",绝不用零值或演示数字顶替。
默认形态是 320 × 320 的桌面小组件,一键展开为完整统计视图。
Windows 安装包:下载最新版(未签名,首次运行可能提示"未知发布者")

截图为浏览器演示数据,不是真实用量。
支持的 Agent
| Agent | Token 来源 | 官方配额 |
|---|---|---|
| ChatGPT / Codex | ~/.codex/sessions 的会话日志 |
✅ 本机 codex app-server |
| Claude | ~/.claude/projects 的会话日志 |
✅ statusLine 钩子(零凭据)或 OAuth 直连(需显式开启) |
| ZCode / 智谱 GLM | ~/.zcode/cli/db/db.sqlite 的 model_usage 表 |
— |
| OpenCode | ~/.local/share/opencode/storage |
— |
| Kimi | ~/.kimi-code 与 ~/.kimi 的 wire.jsonl |
— |
Gemini CLI 明确不在支持范围。Cursor 与 Antigravity 见路线。
主要功能
- 桌面小组件:深色 HUD 玻璃(浓度可调),显示总用量与你选定的 Agent;固定后锁在原位,位置跨重启记忆;拖到屏幕上缘可挂靠自动收起。
- 配额三行元语:窗口名 → 进度条 → 已用百分比 + 重置倒计时,外加消耗节奏预测(按当前速度能否撑到重置)。数据陈旧或窗口已重置时显式标注,不显示过期数字。
- 报告:26 周热力图 / 周趋势折线 / Agent 构成环形,可切换。
- 用量:按天分组的会话明细流,支持 Agent 与模型筛选、CSV 导出、一键复制会话 ID(方便 resume)。
- 成本估算:静态价目表按 Token 分量计价。没有价目的模型如实归入"未计价",不猜。
- 多设备同步:指向一个共享文件夹(坚果云 / OneDrive / Syncthing 均可),各设备导出近 30 天的统计事件并自动合并。
- 更新检查:设置页手动触发,不后台轮询——这是本应用唯一会主动发出的网络请求。更新包经 minisign 签名校验,签名不符直接拒绝安装。
- 托盘常驻、可选开机启动、单实例运行。



数据口径
首页的数字是处理量:未缓存输入 + 缓存读取 + 缓存写入 + 输出。推理 token 是输出的子项,不重复叠加。它不是账单金额。
三类事实永远分开:
| 类型 | 含义 |
|---|---|
| 官方配额 | Agent 官方推送的窗口用量百分比与重置时间 |
| 本地 Token | 从本机日志逐事件解析、去重后的处理量 |
| 估算成本 | 按公开 API 价目对本地 Token 的折算,不是你的账单 |
解析中遇到坏行或读取异常,对应来源会降级为"部分覆盖",而不是继续伪装成精确结果。
不做什么
- 不猜数字。 读不到就显示"不可用";模型没有价目就归入"未计价";配额窗口已重置而新数据未到,显示
--而不是旧百分比。 - 不存对话内容。 数据库只保存时间、Agent、模型、会话标识和源文件定位。不存 Prompt、回复正文、工具输出、凭据或原始文件内容。
- 不上传。 本地优先。多设备同步只经由你自己指定的文件夹,导出内容仅含统计字段。
- 不默认碰凭据。 Claude 官方额度的默认来源是零凭据的 statusLine 钩子。OAuth 直连是可选项,默认关闭,开启前会告知条款风险(见下)。
Claude 额度的两种来源
statusLine 钩子(推荐,默认):Claude Code 本身会把官方额度推给状态栏脚本,钩子只提取额度数字落地成本地文件。零网络请求、零凭据。已有自定义 statusLine 时会自动串联——你原来的状态栏照常显示,额度追加在行尾,卸载时原样恢复。
局限:只有在终端里渲染出状态栏的交互式会话才会刷新。你若主要在 IDE 或网页里用 Claude,额度会停更。OAuth 直连(可选,默认关闭):读取 Claude Code 已保存的登录凭据,直接查询官方额度接口,覆盖网页版消耗。
⚠️ 条款风险:Anthropic 2026 年 2 月更新的消费者条款禁止在第三方工具中使用 Claude 订阅的 OAuth 凭据。目前公开的封禁集中在借订阅做推理的工具,未见只读用量查询被封号的案例,但按条款字面本功能同样属于违规范围。不愿承担风险请保持关闭。
本地运行
要求 Node.js 22+、Rust 1.88+。
npm install
npm run desktop:dev # 桌面开发模式(读取真实本机日志)
npm run dev # 仅浏览器预览(演示数据,显式标注)
npm run desktop:build # 构建安装包
验证
npm run build
cd src-tauri
cargo test # 96 项通过,2 项真实环境烟测默认忽略
cargo clippy -- -D warnings
cargo fmt --check
读取当前机器真实日志的烟测需手动运行:
cargo test live_snapshot_smoke_test -- --ignored --nocapture
当前验收边界
- 仅在 Windows 10/11 x64 实机构建与验收。macOS、Linux 共用同一套 Tauri/Rust 代码,但没有对应产物和实机结论。
- Kimi 适配尚未实机验收:格式依据官方 wire 协议文档与既有工具核实、并有测试夹具覆盖,但作者本机未安装 Kimi。装了 Kimi 的用户请核对数字,发现偏差欢迎提 issue。
- 安装包没有微软代码签名证书,Windows 首次运行会弹 SmartScreen 提示。这是未签名开源软件的正常表现——点「更多信息」→「仍要运行」即可,Release 页面附有 SHA256 校验值可核对文件完整性。(应用内更新用的 minisign 签名是另一回事,它保证更新包没被掉包,但不影响 SmartScreen。)
- 目标机未安装 WebView2 时,默认安装器需要联网获取运行时。
- v0.1.0 无法自动更新到后续版本:更新器是 v0.2.0 才加的,装了 v0.1.0 的用户需要手动下载一次新版;之后的版本之间才能自动更新。
- Token 统计来自本地日志而非官方账单。来源页显示"部分覆盖"时,总量只包含成功解析的记录。
- 持续增长的大型日志目前仍需整文件重扫;首次索引期间可能出现明显 CPU 与磁盘占用。
路线
- 真正的追加游标(避免大日志整文件重扫)
- macOS / Linux 构建与实机验收
- 端到端加密的中继同步(当前为共享文件夹方案)
- Antigravity:token 数据只存在于本机 language server 的私有 RPC 后面(需 IDE 常驻),模型名是随版本变化的占位符别名,且现有参考实现均不支持 Windows。在拿到真机上的确切响应之前不接入——照文档猜着写只会产出看起来对、实际错的数字。
- Cursor:依赖云端 API + 本地凭据提取,需要先设计显式的凭据授权机制。
架构与去重逻辑见 docs/ARCHITECTURE.md,视觉对照见 design-qa.md,Windows 验收证据见 ACCEPTANCE.md。
License
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found