{"id":"3e49b4ce-8b93-46f6-ae24-e5fc5462d398","entityType":"agent","slug":"clawhub-clancy-feng-workbuddy-usage-status","name":"workbuddy-usage-status","canonicalUrl":"https://www.xpersona.co/agent/clawhub-clancy-feng-workbuddy-usage-status","canonicalPath":"/agent/clawhub-clancy-feng-workbuddy-usage-status","generatedAt":"2026-10-10T21:46:31.699Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:10:16.560Z","emptyReason":null},"description":"离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为逐次实测精确值，涵盖思考效率、模型分布、成本与费率、单次提问成本、缓存命中率、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板，并同步导出全量 CSV 与 xlsx。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、全程零网络、可搬运；可选 --credit-xlsx 作参考补充，只在本地缺少逐次明细的日期上补入。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit measured per call, covering thinking efficiency, model distribution, model cost & rates, costliest single prompts, cache hit rate, date-range filtering, error monitoring, usage-spike inspection; a full CSV and xlsx export is written on every run. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local and zero-network; the optional --credit-xlsx serves as a reference supplement only, filling days that lack local per-call detail.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s1701bz85anhvvp7bdb7ppmy4d8b16z6:workbuddy-usage-status","sourceUrl":"https://clawhub.ai/clancy-feng/workbuddy-usage-status","homepage":"https://clawhub.ai/clancy-feng/skills/workbuddy-usage-status","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/clancy-feng/workbuddy-usage-status","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/clancy-feng/skills/workbuddy-usage-status","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"workbuddy-usage-status technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:10:16.560Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:10:16.560Z","emptyReason":null},"stars":null,"forks":null,"downloads":1325,"packageName":null,"latestVersion":"1.5.1","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:10:16.398Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T17:10:16.560Z","lastCrawledAt":"2026-10-10T17:10:16.398Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T17:10:16.398Z","lastVerifiedAt":null,"highlights":[{"version":"1.5.1","createdAt":"2026-10-01T13:52:29.830Z","changelog":"v1.5.1:Security enhancement, check changelog.md for details","fileCount":13,"zipByteSize":1560012},{"version":"1.5.0","createdAt":"2026-09-30T15:38:18.651Z","changelog":"v1.5.0:Revised credit by per-call, other bug-fixes and enhancements.","fileCount":14,"zipByteSize":2551323},{"version":"1.4.1","createdAt":"2026-09-17T13:55:25.655Z","changelog":"v1.4.1:Enhancement for security audit.","fileCount":15,"zipByteSize":2542934},{"version":"1.4.0","createdAt":"2026-09-17T02:11:12.480Z","changelog":"v1.4.0:Feature enhancements and bug fix, details in Changelog.md","fileCount":15,"zipByteSize":2541389},{"version":"1.3.3","createdAt":"2026-09-10T13:21:43.524Z","changelog":"v1.3.3:Bug fix","fileCount":13,"zipByteSize":1332486},{"version":"1.3.2","createdAt":"2026-09-06T12:59:57.564Z","changelog":"v1.3.2:Bug fix and security enhancement","fileCount":13,"zipByteSize":1332385},{"version":"1.3.1","createdAt":"2026-09-06T12:16:56.631Z","changelog":"v1.3.1:Bug fix and Document update","fileCount":13,"zipByteSize":1332611},{"version":"1.3.0","createdAt":"2026-09-04T14:26:18.420Z","changelog":"v1.3.0: Feature enhancement and bug fixes, detail in changelog.md","fileCount":13,"zipByteSize":1335356}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1701bz85anhvvp7bdb7ppmy4d8b16z6:workbuddy-usage-status","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s1701bz85anhvvp7bdb7ppmy4d8b16z6:workbuddy-usage-status` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/clancy-feng/workbuddy-usage-status before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clancy-feng-workbuddy-usage-status/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clancy-feng-workbuddy-usage-status/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clancy-feng-workbuddy-usage-status/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-clancy-feng-workbuddy-usage-status/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-clancy-feng-workbuddy-usage-status/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-clancy-feng-workbuddy-usage-status/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T21:46:31.694Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clancy-feng-workbuddy-usage-status/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clancy-feng-workbuddy-usage-status/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clancy-feng-workbuddy-usage-status/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clancy-feng-workbuddy-usage-status/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:10:16.560Z","emptyReason":null},"readme":"Skill: workbuddy-usage-status\n\nOwner: clancy-feng\n\nSummary: 离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为逐次实测精确值，涵盖思考效率、模型分布、成本与费率、单次提问成本、缓存命中率、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板，并同步导出全量 CSV 与 xlsx。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、全程零网络、可搬运；可选 --credit-xlsx 作参考补充，只在本地缺少逐次明细的日期上补入。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit measured per call, covering thinking efficiency, model distribution, model cost & rates, costliest single prompts, cache hit rate, date-range filtering, error monitoring, usage-spike inspection; a full CSV and xlsx export is written on every run. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local and zero-network; the optional --credit-xlsx serves as a reference supplement only, filling days that lack local per-call detail.\n\nTags: latest:1.5.1\n\nVersion history:\n\nv1.5.1 | 2026-10-01T13:52:29.830Z | user\n\nv1.5.1:Security enhancement, check changelog.md for details\n\nv1.5.0 | 2026-09-30T15:38:18.651Z | user\n\nv1.5.0:Revised credit by per-call, other bug-fixes and enhancements.\n\nv1.4.1 | 2026-09-17T13:55:25.655Z | user\n\nv1.4.1:Enhancement for security audit.\n\nv1.4.0 | 2026-09-17T02:11:12.480Z | user\n\nv1.4.0:Feature enhancements and bug fix, details in Changelog.md\n\nv1.3.3 | 2026-09-10T13:21:43.524Z | user\n\nv1.3.3:Bug fix\n\nv1.3.2 | 2026-09-06T12:59:57.564Z | user\n\nv1.3.2:Bug fix and security enhancement\n\nv1.3.1 | 2026-09-06T12:16:56.631Z | user\n\nv1.3.1:Bug fix and Document update\n\nv1.3.0 | 2026-09-04T14:26:18.420Z | user\n\nv1.3.0: Feature enhancement and bug fixes, detail in changelog.md\n\nv1.2.6 | 2026-08-26T05:22:27.136Z | user\n\nv1.2.6:Layout update & Bug fix, check CHANGELOG.MD for details.\n\nv1.2.5 | 2026-08-26T05:02:32.003Z | user\n\nv1.2.5:Layout update & Bug fix, check CHANGELOG.MD for details.\n\nv1.2.2 | 2026-08-19T05:31:37.230Z | user\n\nv1.2.2: 日期筛选器操作逻辑调整；交付文件加时间日期供存档\n\nv1.2.1 | 2026-08-12T14:03:50.173Z | user\n\nv1.2.1: 安全加固\n\nv1.2.0 | 2026-08-10T14:34:16.467Z | user\n\nv1.2.0: token 主指标+credit 归首日+效率阈值+xlsx 可选与日期自适应；时间轴自适应粒度(日/周/月)；散点图布局优化；SKILL 重构为 AI 指令、文档加粗清理、引用大小写统一\n\nv1.1.0 | 2026-08-09T15:18:29.924Z | user\n\nv1.1.0：新增日期区间筛选、模型性价比排行、用量高峰探查、中英双语切换、模型占比 Top10 聚合；修复归因口径；Dashboard 默认语言跟随浏览器自动判断；description 改为自然语言描述（中英文），触发靠语义识别而非关键词；README 与 SKILL.md 口径同步。\n\nv1.0.0 | 2026-08-05T12:22:15.132Z | user\n\nInitial release: 离线可视化 WorkBuddy 本地使用数据\n\nArchive index:\n\nArchive v1.5.1: 13 files, 1560012 bytes\n\nFiles: CHANGELOG.md (15440b), dashboard-preview-1.png (661215b), dashboard-preview-2.png (605875b), DATA-GUIDE.md (22853b), LICENSE (1084b), README.md (21169b), scripts/chart.umd.min.js (205399b), scripts/dashboard_template.html (66780b), scripts/usage_extractor.py (85085b), skill-card.md (1894b), SKILL.md (14059b), workbuddy-usage-status.zip (204993b), _meta.json (141b)\n\nFile v1.5.1:SKILL.md\n\n---\r\nname: \"workbuddy-usage-status\"\r\nslug: workbuddy-usage-status\r\ndisplayName: \"WorkBuddy 使用状态看板\"\r\nversion: 1.5.1\r\ndescription: \"离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为逐次实测精确值，涵盖思考效率、模型分布、成本与费率、单次提问成本、缓存命中率、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板，并同步导出全量 CSV 与 xlsx。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、全程零网络、可搬运；可选 --credit-xlsx 作参考补充，只在本地缺少逐次明细的日期上补入。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit measured per call, covering thinking efficiency, model distribution, model cost & rates, costliest single prompts, cache hit rate, date-range filtering, error monitoring, usage-spike inspection; a full CSV and xlsx export is written on every run. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local and zero-network; the optional --credit-xlsx serves as a reference supplement only, filling days that lack local per-call detail.\"\r\nagent_created: true\r\nlicense: MIT\r\nsummary: \"离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为逐次实测精确值，涵盖思考效率、模型分布、成本与费率、单次提问成本、缓存命中率、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板，并同步导出全量 CSV 与 xlsx。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、全程零网络、可搬运；可选 --credit-xlsx 作参考补充，只在本地缺少逐次明细的日期上补入。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit measured per call, covering thinking efficiency, model distribution, model cost & rates, costliest single prompts, cache hit rate, date-range filtering, error monitoring, usage-spike inspection; a full CSV and xlsx export is written on every run. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local and zero-network; the optional --credit-xlsx serves as a reference supplement only, filling days that lack local per-call detail.\"\r\ntrigger:\r\n  - 查看 WorkBuddy 使用状态\r\n  - 生成 WorkBuddy 用量看板\r\n  - 导出 WorkBuddy 用量数据\r\n  - WorkBuddy token 消耗统计\r\n  - WorkBuddy 积分消耗 / 对账\r\n  - WorkBuddy 模型分布与性价比\r\n  - WorkBuddy 用量高峰 / 错误监控\r\nallowed-tools: python3, read_file, write_file\r\nmetadata:\r\n  clawdbot:\r\n    emoji: \"📊\"\r\n    requires:\r\n      bins:\r\n        - python3\r\n\r\n---\r\n\r\n# \r\n\r\n## 💖 支持这个项目\r\n\r\n> 📊 已被 **4000+** WorkBuddy 用户下载使用，覆盖 SkillHub & ClawHub 双平台。\r\n\r\n如果这个工具帮到了你，欢迎：\r\n\r\n- ⭐ 去 GitHub 点个 Star\r\n- 🐛 遇到问题提 Issue\r\n- 📢 分享给你的 WorkBuddy 用户朋友\r\n\r\n**GitHub**：<https://github.com/clancy-feng/workbuddy-usage-status>\r\n\r\n## 界面预览\r\n\r\n![preview](https://raw.githubusercontent.com/clancy-feng/workbuddy-usage-status/refs/heads/main/assets/dashboard-preview-1.png)\r\n\r\n## 技能简介\r\n\r\n把 WorkBuddy 自己的本地使用数据，变成一份离线可查的 Dashboard。\r\n\r\n可以看到：token 消耗、思考用时、思考效率、模型分布、错误数、积分消耗、模型费率、单次提问成本。\r\n\r\n## ✨ 核心功能特性\r\n\r\n- Token/Credit 全链路可视化：按模型、按日期、按会话统计，一眼定位\"烧钱大户\"\r\n- 用量高峰探查：按 token 列出最高的几天，单行显示 token、credit、请求数、会话数、错误率，点「明细」展开当天会话表与模型 Top5\r\n- 模型成本与费率：同一张表并排两类信息。一类是实际用量与花费，含调用数 / token / 积分 / 每百万 token 积分，按每次调用真实的模型名归属；另一类是从本地逐次明细反推的单价，含非缓存输入 / 缓存输入 / 输出三档单价与低谷折扣。只列出 token 达到最大模型 1/100 以上的模型，其中调用数不足 30 或费率有波动的模型不标注费率并写明原因，多个费率阶段的模型可展开看历史\r\n- 单次提问成本榜：一次提问会触发多次模型调用，按积分列出最贵的 20 次，并给出集中度，即最贵的 1% 与 10% 提问各贡献多少积分，用于定位真正费钱的那几次\r\n- 思考效率量化：输出 token ÷ 思考秒数，即 tok/s，横向对比模型思考效率\r\n- 错误集中监控：快速定位报错频繁的会话/模型，降低调试成本，可导出错误详情。\r\n- 离线运行：Chart.js 随包附带，零外网依赖\r\n- 缓存命中率面板：整体与按模型命中率趋势，看清\"谁在帮你省钱\"；口径为 cached/input，实测 cached>input 时自动切换并标注\r\n- 三级下钻：从 Top10 会话点「查看」，轮次表含时间 / 模型 / 状态 / Token / 输入 / 缓存命中 / 调用数 / 工具数 / 思考时长 / 错误；提问列默认隐藏，勾选「显示提问」展开，展示时脱敏；每轮再点「明细」看事件摘要，含生成段数与总时长、工具调用清单及耗时、错误类型与摘要\r\n- 全量数据双格式同步生成：每次运行自动产出 `usage-full-<时间戳>.csv` 与 `usage-full-<时间戳>.xlsx`，两者同源、同为 14 个分区。CSV 把 14 个分区写在同一个文件里；xlsx 把每个分区放进独立工作表并冻结首行。表头与分区名语言自动跟随操作系统语言切换\r\n- 自动归档合并：每次运行自动把逐笔数据并入本地归档（traceId 去重），WorkBuddy 30 天清理 trace 也不再丢历史——对用户完全透明，`--no-archive` 可关。归档内容是逐请求事实、会话汇总与每日总量，不含提问原文与 credit 明细。\r\n- 只读无侵入：以只读模式访问 WorkBuddy 数据，不影响正在运行的程序\r\n- 跨平台兼容：支持 Windows/macOS/Linux，Python 3.10+ 即可运行\r\n\r\n## WorkBuddy Usage Status —— Agent 执行指令\r\n\r\n本文件是给 AI 的执行说明书，用户视角的安装、读图、故障排查见 `README.md`；指标算法口径见 `DATA-GUIDE.md`。\r\n\r\n## 触发条件\r\n\r\n当用户**明确指向 WorkBuddy 自身**、表达以下意图时调用本技能。description 已含触发词，此处强化判断与收紧边界：\r\n\r\n- 想查看 / 生成 / 导出**自己的 WorkBuddy** 使用统计、工作量、成本看板；\r\n- 关心 token 消耗、模型分布与性价比、思考效率、错误监控、用量高峰日等任一维度在 WorkBuddy 本机 trace 中的数据；\r\n- 想对账某段时间 WorkBuddy 用了多少积分。\r\n\r\n典型触发说法：「看看我的 WorkBuddy 用了多少 token」「生成 WorkBuddy 用量看板」「WorkBuddy 积分消耗对账」「哪个模型最划算」「哪天用量最高」。命中任一具体说法即触发；只有泛指「做个统计图表」且未指向 WorkBuddy 本机用量时不易触发。\r\n\r\n**反向触发词**：用户意图指向以下任一情况时，本技能不适用，应直接告知用户：\r\n\r\n- 想查看 / 统计**其他产品**，如 Cursor、VS Code、Trae、Claude 等第三方系统的用量、数据、分析；\r\n- 仅泛指\"导出我的数据 / 做个统计图表 / 生成看板\"，未明确指向 WorkBuddy 本机用量；\r\n- 想为任意数据集生成通用可视化 / 报表；本技能只读取 `~/.workbuddy` 下的数据文件，不具备通用图表能力。\r\n\r\n遇到上述情况，回复要点：本技能只读取并可视化 WorkBuddy 本机（`~/.workbuddy`）的使用数据，不涉及其他产品或通用数据；请确认是否要分析 WorkBuddy 自身用量，或改用对应产品的工具。\r\n\r\n## 执行步骤\r\n\r\n抽取器仅依赖 Python 标准库，运行前无需 pip 安装任何包。在技能目录下运行：\r\n\r\n```\r\npython3 scripts/usage_extractor.py [--out <输出目录>] [--home <数据根>] [--credit-xlsx <路径>] [--seed <旧快照>] [--no-archive]\r\n```\r\n\r\n- `--out <dir>`：输出目录，默认当前工作目录。\r\n\r\n- `--home <dir>`：指定数据根目录，默认 `~/.workbuddy`；日常使用不要加，仅迁移或测试时用。\r\n\r\n- `--credit-xlsx <path>`：可选。传入从 `workbuddy.cn` 用量页导出的 xlsx，作为**参考补充**：只补入本地没有逐次明细的日期。仅当用户明确要求与官方账单对账时再加。\r\n\r\n- `--seed <path>`：旧快照种子（`usage-status.json` 或历史 dashboard HTML）。一次性导入其每日总量进入持久覆盖层，恢复已被 WorkBuddy 30 天清理的日期，逐笔明细不可追溯。导入后持久生效，无需重复传入。**只取其中的 token 等总量字段；旧快照的 credit 是按会话首现日挂出来的旧口径，不再采用。**\r\n\r\n- `--no-archive`：禁用自动归档合并，默认开启。\r\n\r\n执行后在该目录生成 6 个文件：\r\n\r\n- `workbuddy-usage-status-dashboard-<时间戳>.html` —— 数据内联、Chart.js 外链，双击/预览即可看，零外网依赖；文件名带生成时间戳，每次生成独立文件；\r\n- `usage-status.json` —— 原始聚合数据，供二次处理；\r\n- `usage-status.js` —— `window.USAGE_STATUS = {...}`，供 HTML 通过 `<script>` 直接引入，以此避开 `file://` 的 fetch 跨域限制。\r\n- `chart.umd.min.js` —— 图表引擎，由抽取器从 skill 包复制到输出目录，需与 HTML 同目录存放。\r\n- `usage-full-<时间戳>.csv` —— 全量数据 CSV，分区清单见 `DATA-GUIDE.md` §4.11，与看板同源；14 个分区写在同一个文件里。\r\n- `usage-full-<时间戳>.xlsx` —— 全量数据 xlsx，与 CSV 同源，14 个分区对应 14 个工作表、首行冻结。\r\n\r\n> ⚠ **产物敏感性提醒**：`usage-status.json` / `usage-status.js` / dashboard HTML / 全量 CSV 与 xlsx 中均含**会话标题与用户提问原文摘要**（提问最长 300 字；看板内展示默认脱敏，数据文件内为原文截断），分享或提交到仓库前请先检查敏感性。\r\n\r\n> ⚠ **30 天缓存期（重要）**：WorkBuddy 现对本机 traces 只保留 **30 天**，本 skill 每次运行会自动把数据归档到 `~/.workbuddy/usage-archive/`，之后无论 trace 是否被清理，看板始终是全量视图——**但归档只在运行时发生**，所以需至少每 30 天运行一次，建议设置自动任务，断档超 30 天期间的 trace 无法追溯；首次运行只能看到最近 30 天。可用 `--seed <旧快照>` 导入历史快照恢复更早的每日总量。\r\n\r\n## 交付方式\r\n\r\n生成完成后，在输出目录找到最新生成的 `workbuddy-usage-status-dashboard-*.html`，按文件名时间戳取最大者，用 `present_files` 打开预览交回给用户。\r\n\r\n**只把看板 HTML 作为预览项交付，不要放入其他产物。** 全量 CSV 一旦放进预览项，用户打开时看到的是报错而不是数据：该文件由 14 张列数各异的表拼接而成，首行不是表头，WorkBuddy 的内置预览会把它交给在线表格引擎，该引擎按首行字段数判定列数，往下读到 10 列、15 列的行即解析失败。CSV 与 `usage-full-<时间戳>.xlsx`、`usage-status.json` 一律以文件路径形式在回复里说明。\r\n\r\n## 约束与口径\r\n\r\n- 读写与网络边界：① **读**——仅以只读模式读 `~/.workbuddy` 下的 `workbuddy.db`、`traces/`、`projects/*/*.jsonl`，从中提取 `<user_query>` 提问摘要供下钻显示，以及每次模型调用的 `providerData.rawUsage.credit` 与模型名用于逐日 credit；不修改 WorkBuddy 自身数据、不上传任何数据、不读取任何 API key/密码；② **写**——仅在输出目录生成 6 个产物文件，并在 `~/.workbuddy/usage-archive/` 维护本地归档以对抗 30 天 trace 清理（`--no-archive` 可关闭）；③ **网络**——全程零网络请求，不发起任何出站连接。xlsx 由脚本用标准库 `zipfile` 与 XML 自行拼装，不引入任何第三方依赖。\r\n- 指标口径：token 为权威主指标，本地 trace 带精确时间戳，按请求本地时区归日，精确；credit 取自本地会话文件里每一次模型调用的精确积分，按调用时间归日，同样精确，并可再按模型与时段拆分。各指标的具体算法、聚合口径与已知限制见 `DATA-GUIDE.md`，不要凭空编造数字。\r\n- 数据完整性：抽取器顶部警告条已列出被跳过/解析失败的 trace 与会话，报告可能不完整属正常现象，如实告知用户即可。\r\n- 产物确定：每次运行仅生成上述 6 个固定文件（dashboard HTML / `usage-status.json` / `usage-status.js` / `chart.umd.min.js` / `usage-full-<时间戳>.csv` / `usage-full-<时间戳>.xlsx`），规模由本地 `~/.workbuddy` 数据量天然限定，不存在无界输出。\r\n\r\n## 相关文档\r\n\r\n- `README.md`：用户视角的安装、使用场景、读图指南、故障排查。\r\n- `DATA-GUIDE.md`：指标计算的唯一真相源，含算法、聚合口径、图表参数、归因方法、已知限制。\r\n- `CHANGELOG.md`：版本变更记录与安全等级评估。\n\nFile v1.5.1:README.md\n\n> **Skill Overview**\r\n> \r\n> WorkBuddy Usage Status turns WorkBuddy's own local usage data into an offline dashboard — token spend, thinking time, thinking efficiency, model distribution, error count, and credit consumption. It ranks model cost-performance and shows per-model rates so you can pick the cheapest model, and supports a date-range filter so you can zoom into any period. All model-share charts are limited to the top 10 models with the rest grouped as \"Other\". All data stays on your machine under `~/.workbuddy/`; **default zero network, no external APIs**. The generated dashboard is one HTML file plus a local Chart.js copy written into the same folder, so it renders offline with zero dependencies.\r\n> \r\n> **What it does**: Offline dashboard for WorkBuddy's local usage data — token / credit consumption, thinking efficiency, model distribution & cost-performance, date-range filtering, error monitoring, and usage-spike analysis.\r\n> \r\n> **Recent updates**:\r\n> \r\n> - **Per-call credit** — credit now comes from every model call logged in local session files, attributed to the day the call happened. No more \"all credit on the session's first day\".\r\n> - **Model cost & rates** — one table, two groups of columns: cost reality shows calls, tokens, credit, and credit per million tokens; rate structure shows non-cached input, cached input, and output unit prices, plus off-peak discount. Both are back-calculated from local per-call detail.\r\n> - **Costliest single prompts** — the 20 priciest prompts by credit, with concentration stats, so you can find the few calls that actually cost money.\r\n> - **Cache hit-rate panel** — overall hit rate, a daily trend line, and a per-model ranking.\r\n> - **Full-dataset CSV and xlsx on every run** — timestamped `usage-full-<timestamp>.csv` and `usage-full-<timestamp>.xlsx` are written next to the dashboard. The CSV carries all 14 sections in a single file; the xlsx puts each section in its own worksheet. Headers and section names follow your OS language.\r\n> - **Auto-archiving against WorkBuddy's 30-day trace cleanup** — every run merges live traces with a local archive, so history keeps accumulating; a dashboard banner reminds you to run at least once every 30 days. An optional `--seed <old snapshot>` imports an older snapshot's daily totals.\r\n> - **Drill-down** — top-10 sessions expand into per-turn tables with an optional masked prompt column; usage-peak cards expand into that day's session table and model Top 5.\r\n> \r\n> **How to install**\r\n> \r\n> ```\r\n> clawhub install workbuddy-usage-status\r\n> ```\r\n> \r\n> **How to use**\r\n> \r\n> - **Chat trigger:** Describe what you want in plain English or Chinese. This skill applies when you ask to view, generate, or export **your own** WorkBuddy usage status / stats / activity dashboard. Examples:\r\n>   \r\n>   \"generate a WorkBuddy usage dashboard\" · \"view my recent WorkBuddy usage status\" · \"show token / credit consumption and model distribution\" · \"which model is the most cost-effective\" · \"filter usage by date range\" · \"which day had the highest usage\"\r\n>   \r\n>   Scope is limited to WorkBuddy's own local usage data.\r\n>   \r\n>   **Not triggered:** This skill does **not** apply when you want usage/stats of *other products* such as Cursor, VS Code, Trae, or Claude; when you only say \"export my data / make me a chart / build a dashboard\" without specifying *WorkBuddy's local usage*; or when you want a generic visualization/report from arbitrary datasets.\r\n> \r\n> - **CLI:**\r\n>   \r\n>   ```\r\n>   python3 scripts/usage_extractor.py\r\n>   ```\r\n>   \r\n>   Options: `--out ./report`, `--home /other/.workbuddy`, `--credit-xlsx <file>`, `--seed <old snapshot>`, `--no-archive`. Python 3.10+, standard library only. Windows users please replace `python3` with `python`.\r\n> \r\n> ⭐ If this dashboard helped you see your WorkBuddy usage clearly, please give it a Star to support independent development: [github.com/clancy-feng/workbuddy-usage-status](https://github.com/clancy-feng/workbuddy-usage-status)\r\n> \r\n> The full Chinese documentation is preserved below.\r\n\r\n---\r\n\r\n> **语言说明**：本文档英文概览在上，中文正文在下，二者是同一份说明的双语呈现；技能的触发描述另见 `SKILL.md` 的 `description`。\r\n\r\n把 WorkBuddy 自己的本地使用数据，变成一份离线可查的 Dashboard。\r\n\r\n可以看到：token 消耗、思考用时、思考效率、模型分布、错误数、积分消耗、模型费率、单次提问成本。\r\n\r\n## ✨ 核心功能特性\r\n\r\n- Token/Credit 全链路可视化：按模型、按日期、按会话统计，一眼定位\"烧钱大户\"\r\n- 用量高峰探查：按 token 列出最高的几天，单行显示 token、credit、请求数、会话数、错误率，点「明细」展开当天会话表与模型 Top5。\r\n- 模型成本与费率：同一张表并排两类信息。一类是实际发生的用量与花费，含调用数、token、积分、每百万 token 积分，按每次调用的真实模型名归属；另一类是从本地逐次明细反推出来的单价，含非缓存输入、缓存输入、输出三档单价与低谷折扣。只列出用量达到最高模型百分之一以上的模型；其中调用数不足 30 或费率有波动的模型不标注费率，并在行内写明原因。\r\n- 单次提问成本榜：按积分列出最贵的 20 次提问，并给出集中度统计。\r\n- 思考效率量化：输出 token ÷ 思考秒数，即 tok/s，横向对比模型效率。\r\n- 错误集中监控：快速定位报错频繁的会话/模型，降低调试成本。\r\n- 离线运行：Chart.js 随 Skill 安装附带。\r\n- 缓存命中率面板：整体与按模型命中率趋势，看清\"谁在帮你省钱\"。\r\n- 三级细节显示：从 Top10 会话点「查看」，轮次表含时间 / 模型 / 状态 / Token / 输入 / 缓存命中 / 调用数 / 工具数 / 思考时长 / 错误；提问列默认隐藏，勾选「显示提问」展开；每轮再点「明细」显示事件摘要。\r\n- 全量数据双格式同步生成：每次运行自动产出 `usage-full-<时间戳>.csv` 与 `usage-full-<时间戳>.xlsx`，含逐笔调用明细与提问原文，属敏感内容，分享前请先检查。CSV 把 14 个分区写在同一个文件里，xlsx 把每个分区放进独立工作表。表头与分区名语言随操作系统语言。\r\n- 自动归档合并：每次运行自动把历史运行数据并入本地归档 `~/.workbuddy/usage-archive/`，可用`--no-archive` 关闭。归档含三个文件：逐请求事实（时间、token 拆分、模型、错误文本，不含提问原文与 credit）、会话汇总（会话标题与 credit）、每日总量（纯数字）。\r\n- 只读无侵入：以只读模式访问 WorkBuddy 数据，不影响正在运行的程序。\r\n- 跨平台兼容：支持 Windows/macOS/Linux，Python 3.10+ 即可运行。\r\n\r\n---\r\n\r\n## 1. 能看到什么\r\n\r\n- 从开始用 WorkBuddy 到现在一共花了多少 token / credit？思考了多久？\r\n- 哪个会话、哪个模型消耗最大？模型效率怎么样？\r\n- 哪天用量飙升？错误集中在哪些会话/模型？\r\n- 用作\"使用监督 / 用量控制\"的量化依据。\r\n\r\n---\r\n\r\n## 2. 如何安装\r\n\r\n> 💡 安装引导：国内用户优先选 SkillHub 一键安装，全球用户/OpenClaw 生态用户优先选 ClawHub 安装。\r\n\r\n### 方式一：通过 WorkBuddy 安装（国内推荐）\r\n\r\n在 WorkBuddy 技能市场中搜索 `workbuddy-usage-status / workbuddy 使用状态看板`，点击「安装」即可。\r\n\r\n### 方式二：通过 ClawHub 安装\r\n\r\n```\r\nclawhub install workbuddy-usage-status\r\n```\r\n\r\n---\r\n\r\n## 3. 用法\r\n\r\n装好 skill 并重启 WorkBuddy 后，有两种用法。\r\n\r\n### 入口 A：对话触发\r\n\r\n在 WorkBuddy 对话里用自然语言描述你的需求即可。本 skill 适用于查看、生成或导出**你自己的** WorkBuddy 本机使用状态与用量看板。例如：\r\n\r\n- \"生成一个 WorkBuddy 使用信息看板\"\r\n- \"查看一下最近 WorkBuddy 的使用状态\"\r\n- \"我想看看 WorkBuddy 的工作信息看板，包括 token 消耗和模型分布\"\r\n- \"看一下 WorkBuddy 的使用数据\"\r\n\r\n### 入口 B：命令行直接跑\r\n\r\n在任意目录执行。需要 Python 3.10+，仅标准库：\r\n\r\n```\r\n# 生成到当前目录（默认）\r\npython3 scripts/usage_extractor.py\r\n\r\n# 生成到指定目录\r\npython3 scripts/usage_extractor.py --out ./report\r\n\r\n# 指定数据根，一般不用，默认 ~/.workbuddy\r\npython3 scripts/usage_extractor.py --home /other/.workbuddy\r\n\r\n# 可选：用用量导出 xlsx 作参考补充，只在本地缺少逐次明细的日期上补入\r\n# xlsx 来自 workbuddy.cn 用量页 → 选日期范围 → 导出，最多 1 个月\r\npython3 scripts/usage_extractor.py --credit-xlsx ~/Downloads/request-usage-2026-08-10.xlsx\r\n\r\n# 可选：用旧快照恢复已被 30 天清理的日期的每日总量\r\n# 旧快照可以是 usage-status.json 或历史 dashboard HTML\r\n# 导入一次即持久生效，存入本地归档 ~/.workbuddy/usage-archive/，无需重复传入\r\npython3 scripts/usage_extractor.py --seed ~/old/workbuddy-usage-status-dashboard-20260909-224125.html\r\n```\r\n\r\nWindows 用户请将上述命令中的 `python3` 替换为 `python`。\r\n\r\n### 看结果\r\n\r\n> ⚠ **重要提示：30 天缓存期**WorkBuddy 对本机 traces 只保留 **30 天**。本 skill 每次运行自动归档累积历史（`~/.workbuddy/usage-archive/`），看板始终是全量视图——**但归档只在运行时发生**：请至少每 30 天运行一次（建议配置每日定时自动化）；断档超 30 天期间的 trace 无法追溯，首次运行只能看到最近 30 天。\r\n\r\n脚本在「输出目录」，即你运行命令时所在目录或 `--out` 指定的目录，生成 6 个文件：\r\n\r\n| 文件                                            | 说明                                        |\r\n| --------------------------------------------- | ----------------------------------------- |\r\n| `workbuddy-usage-status-dashboard-<时间戳>.html` | 生成的报告文件，文件名带生成时间戳，每次生成独立文件，可保留多份对比        |\r\n| `usage-status.json`                           | 聚合后的原始数据，可二次处理                            |\r\n| `usage-status.js`                             | `window.USAGE_STATUS = {...}`，备用          |\r\n| `chart.umd.min.js`                            | 图表引擎文件，由脚本自动复制到输出目录，需与 HTML 同目录存放         |\r\n| `usage-full-<时间戳>.csv`                        | 全量数据 CSV，14 个分区写在同一个文件里，含模型费率全部阶段、单次提问集中度 |\r\n| `usage-full-<时间戳>.xlsx`                       | 全量数据 xlsx，与 CSV 同源，14 个分区对应 14 个工作表，首行冻结  |\r\n\r\n> ⚠ **产物敏感性提醒**：`usage-status.json` / `usage-status.js` / dashboard HTML / 全量 CSV 与 xlsx 中均含**会话标题与用户提问原文摘要**，提问最长 300 字，看板内展示默认脱敏，数据文件内为原文截断。分享或提交到仓库前请先检查敏感性。\r\n\r\n打开最新生成的 `workbuddy-usage-status-dashboard-*.html` 即可看到：KPI 卡 + 积分消耗图 + 思考用时图 + 各模型 Token 占比 + 模型效率 + 效率散点 + Top 10 Token消耗会话表 + 每日错误 + 模型成本与费率表 + 单次提问成本榜。四张时序图的横轴会按所选日期范围的跨度自动在「日 / 周 / 月」之间切换，≤120 天按日，120–730 天按周，>730 天按月。日期选择在修改起止日期后看板立即刷新。\r\n\r\n### credit 的来源与可选补充\r\n\r\n**现默认就已精确到每一次调用。** 每天、每个模型的 credit 来自本地会话文件里每一次模型调用的精确积分，按该次调用真正发生的时间归集到当日，不再用之前那种「把一个会话的 credit 整体挂到它首次出现的那天」的做法。\r\n\r\n> ⚠ **1.5.0 之前生成的旧快照和旧归档，其 credit 不可再用。** 旧快照里的 credit 是按会话首现日挂出来的旧口径，与现在的逐日实测值不在同一个口径上。本 skill 在应用历史快照时只取其中的 token 等总量字段，不再采用其 credit。\r\n\r\n#### 可选补充：用量导出 xlsx\r\n\r\n1. 打开 `https://www.workbuddy.cn/profile/plans-usage`，即用量明细表。\r\n2. 选日期范围，最多 1 个月，点导出，得到 xlsx。\r\n3. 运行：`python usage_extractor.py --credit-xlsx 路径/xxx.xlsx`\r\n\r\n**补充逻辑**\r\n\r\n- 只补入**本地没有逐次明细**的日期。\r\n- xlsx 最多含 1 个月；长期趋势以本地逐次明细为准。\r\n\r\n#### 无法归入每日趋势的部分\r\n\r\n- **本地无对话文件的历史会话**：账本里记有 credit，但本地既无逐次明细也无请求记录，无法归到任何一天。看板会以提示条报出这类会话的数量与合计。\r\n- **有 credit 但无 token 明细的日期**：这些天的积分已按实际发生日计入趋势，数值正确；但它们的 token 明细已被 30 天清理机制删除，所以这些天只有积分、没有 token。看 token 曲线时，这几天的数值偏低甚至为 0 属于正常，不是数据出错。看板提示条会列出具体是哪几天。\r\n\r\n## 4. 报告刷新\r\n\r\n数据是静态快照，想更新就再跑一次脚本，重新打开 HTML：\r\n\r\n```\r\npython3 scripts/usage_extractor.py --out ./report\r\n```\r\n\r\n如想每天自动刷新，可用 WorkBuddy 的\"自动化/定时任务\"每天跑这条命令。\r\n\r\n---\r\n\r\n## 5. 指标来源及算法\r\n\r\n每个指标的具体算法见 DATA-GUIDE.md。\r\n\r\n| 指标        | 算法                                                                                                                     | 数据来源                                   |\r\n| --------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |\r\n| 思考用时      | 每条 trace 里 `type=generation` 的 span 时长之和                                                                               | `traces/*/trace_*.json`                |\r\n| 思考效率      | 输出 token ÷ 思考秒数，即 tok/s                                                                                                | `traces/*/trace_*.json`                |\r\n| token 消耗  | `totalTokens`（输入+输出+缓存）按会话/模型/天聚合                                                                                      | `traces/*/trace_*.json`                |\r\n| 缓存命中率     | `totalCachedTokens ÷ totalInputTokens`，若实测 cached>input 自动切换为 `cached/(in+cached)`；按天/模型聚合；模型排行仅收录调用数 ≥ 10             | `traces/*/trace_*.json`                |\r\n| credit 消耗 | 逐次实测：每次模型调用的 `providerData.rawUsage.credit` 按调用时间归日，可再按模型拆分；本地无明细的会话回退账本并单独提示                                          | `projects/*/*.jsonl`，回退 `workbuddy.db` |\r\n| 模型成本与费率   | 成本实况＝该模型积分 ÷ 该模型 token × 100 万；费率结构＝按模型与月份做无截距三元最小二乘，月内再识别低谷时段。表内只列 token ≥ 最大模型的 1/100 的模型；费率进主表需调用数 ≥ 30 且 R² ≥ 0.95 | `projects/*/*.jsonl`                   |\r\n| 单次提问成本    | 按 `conversationRequestId` 汇总该次提问触发的全部模型调用积分，另给集中度统计                                                                    | `projects/*/*.jsonl`                   |\r\n| Top 会话    | 按 token 消耗降序取前 10 个会话，列出标题/token/思考时长/credit/错误数                                                                       | `traces/*` + `workbuddy.db`            |\r\n\r\n---\r\n\r\n## 6. 已知限制\r\n\r\n1. 首跑耗时：首次全量解析 traces 需 10–30 秒。\r\n\r\n2. **全程零网络请求**：脚本不发起任何出站请求。\r\n\r\n3. **WorkBuddy 现只保留最近 30 天的 traces**：超期的逐笔明细会被删除。本 skill 每次运行会自动归档到 `~/.workbuddy/usage-archive/`，之后被清理也不影响看板——但归档只在运行时发生：**请至少每 30 天运行一次**，建议配置每日定时自动化。断档超 30 天期间的逐笔明细无法追溯，首次运行只能看到最近 30 天。被清理日期的每日总量可用 `--seed <旧快照>` 恢复。\r\n\r\n---\r\n\r\n## 7. 故障排查\r\n\r\n| 现象                | 原因 / 处理                                                             |\r\n| ----------------- | ------------------------------------------------------------------- |\r\n| 打开 HTML 显示\"数据未加载\" | 脚本报错中断。重跑 `usage_extractor.py` 看 stderr                             |\r\n| 图表空白但数字在          | 若报错\"缺少 chart.umd.min.js\"，确认该文件与 usage_extractor.py 同在 scripts/ 下后重跑 |\r\n| 数据明显偏少            | 这台机器 traces 少或刚装；或 `--home` 指错了目录                                   |\r\n\r\n---\r\n\r\n## ❓ 常见问题\r\n\r\n**Q：看板里的数字和 WorkBuddy 自己显示的对不上？**\r\n\r\nA：本看板只读取 `~/.workbuddy` 下的本地数据文件，与 WorkBuddy 自身统计口径可能不同——本工具只统计「有 token 消耗的请求」，排除零用量的工作流记账噪声。以本看板口径为准，详见 DATA-GUIDE.md。\r\n\r\n**Q：为什么某天的积分特别高？为什么某天有积分却没有 token？**\r\n\r\nA：积分按每一次模型调用真正发生的时间归日，所以某天高就是那天确实扣了这么多。若某天有积分数值却没有 token，是因为积分明细存在本地会话文件里，而请求级 token 明细放在 traces 目录、已被 WorkBuddy 的 30 天清理机制删除。这类日期会在看板提示条里明确列出，属于正常现象，不是数据出错。详见 `DATA-GUIDE.md` §4.1。\r\n\r\n**Q：跑完脚本数字很少，怀疑报告不完整？**\r\n\r\nA：脚本对损坏或无法解析的 trace 文件会跳过，并在结尾打印「⚠ 数据完整性提示」，看板顶部也会显示黄色提示条，列出被跳过的文件名。提示存在即说明这些 trace 已损坏、相关时段数据会缺失；可去 `~/.workbuddy/traces` 下核对对应文件。\r\n\r\n**Q：为什么不能实时刷新、一直挂着看？**\r\n\r\nA：看板是按需生成的静态 HTML，配套 chart.umd.min.js 需同目录存放，设计上零外网、不常驻进程。要定期更新，可用 WorkBuddy 的「自动化 / 定时任务」每天跑一次抽取命令，见第 4 节。\r\n\r\n**Q：第一次跑很慢？**\r\n\r\nA：全量解析 traces 可能涉及上千文件，只需一次，约 10–30 秒，之后每次都很快。见已知限制第 2 条。\r\n\r\n**Q：为什么看板只覆盖最近 30 天？更早的数据去哪了？**\r\n\r\nA：WorkBuddy 会自动清理 30 天前的本地 traces，已清理日期的对话本身不受影响，只是逐次调用的明细没了。本 skill 每次运行会先把数据归档到 `~/.workbuddy/usage-archive/`，之后被清理也不影响看板；但**归档只在运行时发生**——超过 30 天没运行，断档期间的明细无法追溯。补救：用清理前生成的历史快照执行 `--seed <快照>`，可恢复更早日期的每日总量；并建议配置每日定时自动化，避免再断档。\r\n\r\n**Q：对话里怎么说才能触发这个 skill？**\r\n\r\nA：用自然语言描述「查看 / 生成 WorkBuddy 使用状态」即可，无需记关键词。\r\n\r\n---\r\n\r\n## 8. 适用使用场景\r\n\r\n- AI 工具成本管控：监控 WorkBuddy 的 token/credit 消耗，避免预算超支\r\n- 模型性价比对比：通过模型费率与思考效率横向对比不同模型的实际表现\r\n- 项目用量统计：统计单个项目或会话的 AI 资源消耗，核算项目成本\r\n- Agent 工作效率评估：量化 WorkBuddy 的思考时长、错误率，优化 Agent 配置\r\n- 本地数据可视化：数据不出本机，适合对数据外发有要求的场景\r\n\r\n---\r\n\r\n## 📝 更新日志\r\n\r\n详细版本变更记录请查看 CHANGELOG.md。\r\n\r\n当前最新版本：v1.5.1（2026-10-01）\r\n---\r\n\r\n## 👤 关于作者\r\n\r\n本技能由 WorkBuddy 深度用户开发，专注 AI 工具用量可视化方向。\r\n\r\n- 小红书：@AI监工老冯 - 分享 WorkBuddy 使用技巧与技能更新动态\r\n- GitHub：clancy-feng\r\n- SkillHub：workbuddy-usage-status\r\n- ClawHub：workbuddy-usage-status\r\n\r\n---\r\n\r\n## 💖 支持这个项目\r\n\r\n> 📊 已被 **4000+** WorkBuddy 用户下载使用，覆盖 SkillHub & ClawHub 双平台。\r\n\r\n如果这个工具帮到了你，欢迎：\r\n\r\n- ⭐ 去 GitHub 点个 Star\r\n- 🐛 遇到问题提 Issue\r\n- 📢 分享给你的 WorkBuddy 用户朋友\r\n\r\n**GitHub**：<https://github.com/clancy-feng/workbuddy-usage-status>\r\n\r\n---\r\n\r\n🏆 SkillHub TRACE 评分 4.8/5.0 · ClawHub 搜索 \"WorkBuddy\" 排名第一\n\nFile v1.5.1:_meta.json\n\n{\n  \"ownerId\": \"kn71k620de8zkrxmqxjtdyjmg58b00fm\",\n  \"slug\": \"workbuddy-usage-status\",\n  \"version\": \"1.5.1\",\n  \"publishedAt\": 1790862749830\n}\n\nFile v1.5.1:CHANGELOG.md\n\n# Changelog / 版本历史\n\n### 📊 当前状态\n\n- Skillhub & Clawhub 双平台下载突破 4000\n- SkillHub TRACE 评分 4.8（优秀）\n- ClawHub 搜 WorkBuddy 排第一\n\n### ⭐ 支持\n\n如果这个看板帮你看清了 WorkBuddy 的用量，欢迎去 GitHub 点个 Star 支持独立开发 🙏\n\n👉 [GitHub - clancy-feng/workbuddy-usage-status: Offline WorkBuddy usage analytics dashboard — token/credit consumption, model cost-performance, spike inspection. Zero network dependency. · GitHub](https://github.com/clancy-feng/workbuddy-usage-status)\n\n## [1.5.1] - 2026-10-01\n\n### 修复 · 安全性增强\n\n- 去掉了多余的权限声明和文件用途说明。\n- 补充了更多的生成物敏感信息提示。\n\n## [1.5.0] - 2026-09-30\n\n### 新功能 · 重大突破——Credit 精确到逐次调用\n\n- 此前只能取到会话级 credit 并整体挂到会话首次出现的日期，现在找到了新的线索，终于可以把积分消耗精确到每次会话调用中了。\n- 会话文件不受 WorkBuddy 的 30 天 trace 清理影响，历史 credit 的覆盖面因此比 token 更完整。\n- 看板新增 credit 来源徽标：来自本地逐次明细时显示「逐次实测」，叠加了官方导出补充时显示「逐次实测 + xlsx 补充」。\n- 新增提示条，列出「有 credit 但 token 明细已被清理」的日期，说明这些天积分准确、token 偏低属正常现象。\n- 随之移除上传用量xlsx和token去官方API取数据的功能，`--credit-xlsx` 定位收窄为参考补充：只补入本地没有逐次明细的日期，不再覆盖实测值。\n\n### 新功能 · 模型成本与费率\n\n- 新增「模型成本与费率」卡片，替代原「模型性价比排行」。一张表两组列：成本实况列出调用数、token、credit、每百万 token 积分；费率结构列出非缓存输入、缓存输入、输出三档单价与低谷折扣。\n- 费率由本地逐次明细反推。按模型与月份分组，月内再分标准与低谷两个时段。\n- 进表门槛为 token 达到最大模型的百分之一。标注费率另需调用数不少于 30 次且拟合优度 R² 不低于 0.95，不达标的模型保留在表内显示成本。\n- 有多个费率阶段的模型，行首可展开查看各历史阶段的单价与样本数。\n- 增加优化建议：在任务量可比的模型中比出最省与最贵两条，差异达到 5% 时给出提示。\n\n### 新功能 · 单次提问成本榜\n\n- 新增「单次提问成本榜」卡片，聚合一次提问触发的全部模型调用，列出积分最高的 20 次，字段含日期、时刻、会话、涉及模型、调用次数、积分、占总积分比例。\n- 同时给出集中度：最贵的 1% 与 10% 提问各贡献多少比例的积分。实测样本中，最贵的 10% 提问贡献约 59% 的积分。\n\n### 新功能 · 随报告生成 xlsx\n\n- 每次运行在输出目录同时生成 `usage-full-<时间戳>.xlsx`，与全量 CSV 同源，14 个分区各占一个工作表，首行冻结、列宽按内容自适应。\n- CSV 继续生成，与 xlsx 内容同源。\n\n### 移除 · 看板内联上传 xlsx\n\n- 看板顶部筛选栏的「上传用量导出 xlsx」按钮已移除，功能收归命令行 `--credit-xlsx`。该按钮原为替代命令行操作而设，但 credit 现已逐次精确，它只在本地缺少明细的日期上起作用，留在看板上容易被误读为必需步骤。\n\n## [1.4.1] - 2026-09-17\n\n### 修复 · 安全审计增强\n\n- 修正文档与实现不一致：读写边界、数据源数量、抽取器模块说明按实际行为更新。\n- 补充用户警告：产物含会话标题与提问原文摘要的敏感性提醒；token 参数只传本地路径、凭证不会进入命令行参数。\n- 收紧触发边界：新增触发词表与典型触发说明。\n\n## [1.4.0] - 2026-09-16\n\n### 新功能 · 随报告生成全量CSV\n\n- 每次运行时，会同步在工作区目录生成包含全量数据的CSV文件，适配系统语种。\n- 之前错误明细独立导出文件功能移除，合并至全量CSV中。\n\n### 新功能 · 缓存命中率面板\n\n- 新增缓存命中率卡片：整体命中率 + 每日趋势 + 按模型排行。\n\n### 新功能 · 产物自动存档复用\n\n- 现Workbuddy只会自动保存最近30天的Trace记录，Skill机制相应修改为会自动归档数据文件，且首次运行后，每次生成会调用之前文件补全数据，界面中加入“安装后每三十天内需运行一次“提醒。\n\n### 改进 · 数据明细按钮显示\n\n- Top10会话和用量高峰显示添加明细按钮，展开可查看更多细节。\n- 提问列默认隐藏，由顶部「显示提问」开关控制。\n\n### 修复 · 文案界面调整\n\n- 优化部分界面布局和文档内容。\n\n## [1.3.3] - 2026-09-09\n\n### 修复 · Bug fix\n\n- 修复 Workbuddy新版导致的生成物在Workbuddy内置浏览器中无法正确渲染内联Chart.js问题，并调整相应文案说明。\n\n### 修复 · 文案调整\n\n- 优化部分文案显示和文档内容。\n\n## [1.3.2] - 2026-09-06\n\n### 修复 · Bug fix\n\n- 修复 `--billing-token-file` 调用官方用量 API 时误引用尚未构建的 `summary` 导致运行时报错。\n\n### 修复 · 文案调整\n\n- 优化部分文案显示和文档内容。\n\n## [1.3.0] - 2026-09-04\n\n### 修复 · 日期范围校验\n\n- 起始日期晚于结束日期时，看板**报错提示**（「起始日期不能晚于结束日期，请修正」）。\n\n### 新功能 · 精确积分统计入口更新\n\n- 新增 `--billing-token-file <路径>`：用户从浏览器 DevTools 手动复制用量 API 的鉴权头（如 `Cookie: ...` 整行，或 `Authorization: Bearer ...`）后，skill 以该 凭证调用官方用量 API 精确 credit，效果与 `--credit-xlsx` 一致。\n- 顶部筛选栏新增「上传用量导出 xlsx」按钮：在浏览器里直接选文件即可覆盖每日 credit，**效果与 `--credit-xlsx` 完全一致**，无需跑命令。\n\n### 新功能 · 错误明细 CSV 导出\n\n- 错误明细卡片新增「导出 CSV」按钮：将 6 类分类统计（高频错误信息 / 按类型 / 按工具 / 按模型 / 按会话 / 近期错误样本）合并导出为单个 CSV，带分节标题与全量错误总数注释。\n- 无错误数据时按钮自动禁用，点击不会导出空文件。\n\n### 新功能 主题与配色切换 🎨\n\n- 新增明暗主题切换（Light/Dark Mode/跟随系统）\n- 新增多套图标配色显示方案\n\n### 修复 · 文案调整\n\n- 优化部分文案显示和文档内容。\n\n## [1.2.6] - 2026-08-26\n\n### 修复 · 指标文案与口径说明\n\n- **思考效率散点图提示语**：优化修正散点图效率描述提示语。\n- **表格数字列**：由右对齐改为左对齐，数字与列标题左缘对齐，优化排版。\n- **模型性价比表口径说明**：credit 与 token 均按会话主模型归因，会话内跨模型使用时数值存在归因偏差；\n\n### 修复 · 性价比表单位与精度\n\n- **credit/1k 单位放大为 credit / 10万 token**：数值放大 100 倍并保留 2 位小数，结果呈现为 0.24、0.35、6.07 等可读量级，不再出现整列 0。\n- **0 值行不展示**：credit/10万token 为 0 的模型无性价比比较意义，整行从排行表中过滤。\n\n### 修复 · 用量高峰探查显示逻辑\n\n- 排序依据改为 token，**会话列表**、模型显示、credit信息优化。\n\n## [1.2.2] - 2026-08-19\n\n### 修复 · 日期选择交互逻辑\n\n- **移除「更新」按钮**：日期选择器修改后看板本就实时刷新，原按钮却执行\"重置回默认范围\"逻辑，点它反而把筛选弹回初始窗口，语义误导。已移除按钮，筛选改为纯实时生效。\n\n### 改进 · 产出物命名\n\n- **产出物 HTML 文件名带时间戳**：自包含看板命名改为 `workbuddy-usage-status-dashboard-<YYYYMMDD-HHMMSS>.html`，每次生成独立文件，不再覆盖旧报告，便于保留多份并对比。\n\n## [1.2.1] - 2026-08-12\n\n### 修复 · 安全审计发现\n\n- **本地 XSS 注入（Intent-Code Divergence）**：`renderWarnings()` 曾将 `T.warnings[].detail` 直接拼入 `innerHTML`，而该字段包含被跳过的 trace 文件名（磁盘文件名可被构造注入 HTML）；会话表的 `x.status`（来自 trace 元数据）同样未转义。两处均改为经 `esc()` HTML 转义，杜绝打开看板时执行注入脚本。\n- **触发词收紧**：原自然语言触发过宽，存在误触发 / 触发劫持风险。将触发范围明确收束到「仅 WorkBuddy 自身本机用量」，并在 SKILL.md / README 增加显式负面清单。\n\n## [1.2.0] - 2026-08-10\n\n### 改进 · Token 与 Credit 的权重和分析思路\n\n- **token 确立为权威主指标**：本地 trace 自带精确时间戳与 token 拆分，按请求 `startedAt` 的本地时区归日，当日统计，看板首张卡片改为「每日 Token 消耗」。\n- **credit 降为次要估算并明确标注**：看板「每日积分消耗」卡片与 KPI 的 credit 均带「本地估算 ≈」标识。\n- **跨天 credit 归因回退为「归首日」**：整个会话 credit 归因到它首次出现的那天——绑在会话起点、**绝不污染后续免费/无消费日**，精确每日 credit 分析由下述 `--credit-xlsx` 实现。\n\n### 改进 · 数据完整性可见性\n\n- 抽取器新增跳过记录计数器：损坏/无法解析的 trace 文件、credit_json 解析失败的会话，不再静默吞掉。\n- 结尾打印「⚠ 数据完整性提示」并列出被跳过的文件名；生成的自包含 HTML 顶部新增黄色提示条（读取 `USAGE_STATUS.warnings`）同步展示，用户一眼可知报告是否完整。\n\n### 新增 · 可选参数 `--credit-xlsx`\n\n- 传入从 `workbuddy.cn` 用量页导出的 xlsx，看板用服务端精确 credit 覆盖对应日期窗口内的每日 credit；未覆盖日期仍为本地估算（归首日）。\n- 传入 `--credit-xlsx` 后，抽取器把 xlsx 实际覆盖的日期窗口（`credit_xlsx_date_min/max`）写入 `summary`；看板默认选中范围自动收敛到该窗口（聚焦 credit 精确的区间）。\n- xlsx 读取为标准库实现（zipfile + XML 解析），不依赖 openpyxl，不破坏零依赖特性。\n- 用途定位：仅用于\"查清某月精确花费 / 对账\"（xlsx 最多含 1 个月，且无法归因到会话）；长期趋势仍以 token 为准。不加该参数时技能零额外操作、全本地运行。\n\n### 增强 · 时间轴自适应粒度\n\n- 时间轴自适应粒度：四张时序图（每日 Token / credit / 思考用时 / 错误数）的横轴按**当前筛选范围跨度**自动切桶——≤120 天按日、120–730 天按周（周一为周起始）、>730 天按月，避免数据累积两三年后横坐标过密、标签重叠；聚合方式为周期求和，卡片标题（\"每日/每周/每月 …\"）与副标题（\"聚合粒度：按日/按周/按月\"）同步更新，缩放日期筛选时实时重算。\n\n### 增强 · 常见问题解答\n\n- Readme中加入FAQ（常见问题解答）段落，回答了数据质量、触发方式等常见问题。\n\n### 已知限制\n\n- credit 本地估算：本地 `credit_json` 与服务端有偏差，且本地无逐日时间戳、只能「归首日」近似。精确值需 `--credit-xlsx`。\n- token 始终精确，是看板的核心价值来源。\n- 同 1.1.0：credit 仅到会话级；快照式（手动/定时刷新）；首跑全量解析约 10–30 秒。\n\n---\n\n## [1.1.0] - 2026-08-09\n\n### 新增 · 日期区间筛选（Date Range Filter）\n\n- 看板顶部新增「起始日期 / 结束日期」选择器 + 重置按钮。\n- 筛选后联动更新：KPI 数字、每日 credit/思考用时/错误数折线图、模型 Token 占比、模型思考效率、Top 会话表、模型性价比排行及优化建议。\n\n### 新增 · 模型性价比排行（Model Cost Ranking）\n\n- 看板新增「模型性价比排行」表格，按 `credit_per_1k_tokens` 升序（越靠前越省）；展示会话数 / 总 token / 总 credit / 每千 token credit。\n- 自动产出优化建议（如「在可比任务量下切换至 deepseek-v4-flash 相比 hy3 预计节省约 67% credit」），自动排除 `preview`/`agent` 变体与 `auto`，仅比较样本量 ≥1000 万 token 的模型。\n- 自动标记 `credit=0` 且 token 不少的模型为「限免/促销」，优化建议排除零 credit 模型并单独提示可能处于促销期。\n\n### 新增 · 用量高峰探查（替代原「异常警报」）\n\n- 新增 `spike_days`：按每日 credit 自动选出明显高用量日（高于所有日中位数的 2 倍且 ≥50，最多 6 天；满足条件的高用量日不足 3 天时，兜底取 credit 最高的 3 天）。\n- 对每一天逐日拆解：主导会话（标题/模型/当日 credit/token，按会话首次出现日归因，与每日 credit 口径一致）、模型 token 构成 Top5、错误率、平均 calls/请求、最大单次请求 token——精确到天，回答\"哪一天花了多少、由什么任务造成\"。\n- 主导会话采用 50 倍比例规则过滤：仅显示在当日峰值会话 credit 的 1/50 及以上的会话（峰值与最小显示值差距 ≤50 倍），自动隐藏个位数等小额噪音；零积分会话与不足峰值 1/50 的小额会话合并一行说明（不丢失信息）。\n\n### 改进 · 图表与呈现\n\n- 「各模型 Token 占比」改为 Top 10 + 其他，避免图例爆炸。\n- 「各模型思考效率」不再合并「其他」，避免聚合后效率虚高、排名失真。\n- 「Top 会话」固定为 Top 10 会话（按 token 消耗）。\n- 卡片顺序调整：「用量高峰探查」置于「Top 10 会话」之下，阅读顺序 总览 → 明细 → 高峰日拆解。\n- 「模型 token 构成（Top5）」渲染时过滤 token=0 的条目（如 `unknown 0`），不再展示无意义零值。\n\n### 新增 · 中英双语 + 语言切换\n\n- 右上角语言切换按钮（中/EN），基于 localStorage 记忆；卡片标题、提示、KPI、表头、用量高峰拆解、优化建议、底部说明均已双语化，默认中文。\n- Dashboard 标题改为「Workbuddy使用数据看板」（英文 WorkBuddy Usage Data Dashboard）。\n\n### 修复 · 口径与单位\n\n- 「每日思考用时」卡片标题补回（小时）单位。\n- KPI 区新增「总 Credit」一项，6 项填满栅格。\n- 页面说明类文字精简；数据口径 / 计算方法 / 参数含义统一迁移至独立的 `DATA-GUIDE.md`，页面底部改为指针「报告数据说明见 DATA-GUIDE.md」。\n\n### 已知限制\n\n- 用量统计仅计入有 token 消耗的有效 trace，零 token 工作流记账（噪声）排除；有效 trace 的 `sessionId` 与 `sessions` 表 100% 对应，会话级归因完整，无「覆盖率稀释」问题。宏观总量/每日趋势/模型占比来自有效 trace 与 `session_usage` 表，完整准确。\n- `credit_json` 仍只能到会话级，无法精确拆分到单次 generation span。\n\n---\n\n## [1.0.0] - 2026-07-22\n\n### 初始发布\n\n- 离线可视化 WorkBuddy 本地使用数据：总览 KPI（请求数 / 会话数 / 总 token / 思考用时 / 总 credit / 错误数）、每日 token 与 credit 趋势图、按模型分布、Top 10 会话（按 token）、每日错误数。\n- 抽取器 `usage_extractor.py` 仅用 Python 标准库；生成的 HTML 单文件、Chart.js 内联、零外网依赖。\n- 可搬运到其他 WorkBuddy 机器使用。\n\nFile v1.5.1:DATA-GUIDE.md\n\n# 数据与方法说明\r\n\r\n本文档解释 `workbuddy-usage-status` 看板里每一个数字是怎么算出来的、数据从哪来、各个阈值和参数的含义。\r\n\r\n> **English note:** This document is written in Chinese. An English overview of the skill is at the top of `README.md`. The dashboard itself supports both Chinese and English, and CSV headers follow the operating system UI language.\r\n\r\n---\r\n\r\n## 1. 数据来源\r\n\r\n看板只读本地文件，有三个数据源：\r\n\r\n| 数据源  | 路径（默认 `~/.workbuddy/`）                           | 提供什么                                                                                     |\r\n| ---- | ------------------------------------------------ | ---------------------------------------------------------------------------------------- |\r\n| 会话库  | `workbuddy.db`（`sessions` 表 + `session_usage` 表） | 会话标题/状态/模型；会话级 credit 账本，用于本地无明细时的回退                                                     |\r\n| 调用轨迹 | `traces/*/trace_*.json`，每个文件对应一次请求               | 每次请求的时长、token 拆分、思考用时、模型、工具调用数、错误数                                                       |\r\n| 会话文件 | `projects/<工作区>/<sessionId>.jsonl`               | 用户提问摘要 `<user_query>`，截 300 字，展示默认脱敏；每次模型调用的模型名与精确 credit `providerData.rawUsage.credit` |\r\n\r\n三个口径的相互关系：\r\n\r\n- Token / 思考用时 / 错误 / 工具调用：来自 `traces/`，按\"一次请求\"逐条统计。\r\n- Credit（积分）：来自 `projects/*/*.jsonl` 里**每一次模型调用**的 `providerData.rawUsage.credit`，带该次调用的时间戳，按调用时间归日。`workbuddy.db` 的 `session_usage.credit_json` 只作为本地无明细会话的兜底来源。\r\n\r\n因此\"某个会话 token 很多但 credit=0\"是正常现象，它是限免模型，见第 6 节。\r\n\r\n---\r\n\r\n## 2. 基础指标口径\r\n\r\n### 2.1 一次请求记录了什么\r\n\r\n每条 trace 对应一次请求。\r\n\r\n- Token 总量 `tokens` = trace 顶层 `totalTokens`。\r\n- 输入 / 输出 / 缓存 token = `modelInfo.totalInputTokens` / `totalOutputTokens` / `totalCachedTokens`。\r\n- 思考用时 `thinking_sec` = 该 trace 里所有 `type=generation`（模型推理）的 span 时长之和，毫秒转秒；工具调用（tool/mcp/function）时长不计入，它是\"模型推理/思考\"的代理指标。\r\n- 工具调用次数 `calls` = `modelInfo.callCount`。\r\n- 错误数 `errors` = trace 里 `status=error` 或带 `error` 字段的 span 数量，按 span 级统计，一次请求可能多个 span 报错。\r\n- 模型名 `model` = `modelInfo.models` 拼接；无则记 `unknown`。\r\n- 会话归属 `session_id` = trace 的 `sessionId`。统计仅计入有实际 token 消耗的 trace；无 token 的工作流记账记录不进入用量基数。在有效 trace 上，`sessionId` 与 `workbuddy.db` 的 `sessions` 表 100% 对应，所有真实用量都能精确归到某个会话。\r\n\r\n### 2.2 聚合口径\r\n\r\n- 按天：以请求 `startedAt` 转本地时区的日期（`%Y-%m-%d`）分组。\r\n- 按模型：以 trace 的 `model` 字段聚合。\r\n- 按会话：以 `session_id` 聚合；会话标题/状态/模型取自 `sessions` 表（`custom_title` 优先于 `title`）。会话集合包含三类：本次扫描到的 trace 所属会话、从归档恢复的已清理 trace 所属会话、只有逐次明细而没有 trace 的会话。后两类补齐后，看板顶部按会话累加的用量合计才与总量字段一致；其中第三类只有 credit，请求数与 token 均为 0。\r\n- Credit **按调用归日**：每一次模型调用的 `providerData.rawUsage.credit` 带该次调用的时间戳，归入当日；`by_day[d].pc` 为真表示该日 credit 来自逐次实测。本地没有对话文件可解析的历史会话，其 credit 无法归日，单列提示。\r\n\r\n---\r\n\r\n## 3. 顶部 KPI\r\n\r\n| KPI       | 计算方式                          |\r\n| --------- | ----------------------------- |\r\n| 总请求数      | `traces` 文件总数                 |\r\n| 总 Token   | 所有请求 `tokens` 之和              |\r\n| 思考用时      | 所有请求 `thinking_sec` 之和，换算成小时  |\r\n| 平均效率      | `总输出 token / 总思考秒数`，单位 tok/s  |\r\n| Credit 消耗 | 每日 credit 之和，每日值来自逐次实测，见 §4.1 |\r\n| 错误数       | 所有请求 `errors` 之和              |\r\n\r\n---\r\n\r\n## 4. 各图表 / 卡片的计算方法与参数\r\n\r\n### 4.1 每日积分消耗\r\n\r\n- **这是精确值**：积分来自本地逐次明细，不是估算，也不再做\"归首日\"处理。\r\n- 可再按模型拆分，每次调用带 `providerData.model`。\r\n- 补入规则：只在本地没有逐次明细的日期上，才用 `--credit-xlsx` 提供的用量导出值补入。命令行加此参数时看板徽标显示「逐次实测 + xlsx 补充」，不加时显示「逐次实测」。\r\n- 两种特殊情况会以提示条报出：① 本地无对话文件的历史会话，其 credit 无法归日；② 只有积分、没有 token 的日期，这些天积分正确、但 token 缺失。\r\n- 1.5.0 之前生成的旧快照与旧归档，其 credit 是按会话首现日挂出来的旧口径，**不再采用**。\r\n\r\n### 4.2 每日思考用时\r\n\r\n- 每日 = 当天所有请求的 `thinking_sec` 之和（小时为单位展示）。\r\n\r\n### 4.3 各模型 Token 占比\r\n\r\n- 按 `model` 聚合 `tokens`，降序。\r\n- Top10 之外合并为「其他」：只展示 token 最多的前 10 个模型标签，其余归入一个\"其他\"扇区。\r\n\r\n### 4.4 主要模型思考效率\r\n\r\n- 公式：效率 = 输出 token / 思考秒数（`output / thinking_sec`），单位 tok/s，越高越\"省时\"。\r\n- 仅列 Top10：效率最高 / token 突出的前 10 个具体模型标签。\r\n- 最小样本门槛 `MIN_EFF_SAMPLES = 10`：一个模型**思考次数 < 10** 时不计入效率排名。\r\n\r\n### 4.5 思考效率散点图\r\n\r\n- 每个点 = 一次请求，横轴=思考用时，纵轴=输出 token。取 token 最大的前 300 次请求以控制体积。\r\n- 读图：右下方 = 高产出 + 低耗时 = 高效率。\r\n\r\n### 4.6 Top 10 会话\r\n\r\n- 按 token 总量降序取前 10 个会话。\r\n- 列：标题 / 模型 / 请求数 / Token / 思考时长 / Credit / 错误 / 状态。\r\n- 下钻：点「查看」按钮展开该会话的**轮次表**。轮次 = 一次 AI 响应，粒度同 trace；本地 trace 无 conversationRequestId 字段。列：时间 / 模型 / 状态 / Token / 输入 / 缓存命中 / 调用数 / 工具数 / 思考时长 / 错误；提问列默认隐藏，勾选「显示提问」展开。\r\n- 提问原文：来自 `~/.workbuddy/projects/<工作区>/<sessionId>.jsonl`，按 sessionId 匹配、取该轮开始前最近一条含 `<user_query>` 的用户消息，截 300 字。展示默认脱敏，邮箱 / 手机号 / 绝对路径 / ≥24 位疑似密钥打码，再截 60 字。\r\n- 每轮「明细」：事件摘要，含生成段数与总时长、工具调用清单及耗时、错误类型与摘要。credit 已精确到每次模型调用，但轮次表不重复列出 credit。\r\n\r\n### 4.7 每日错误数\r\n\r\n- 每日 = 当天所有请求的 `errors`（span 级）之和。\r\n\r\n### 4.8 时间轴自适应粒度\r\n\r\n看板顶部四张时序图，即每日 Token / 每日 credit / 每日思考用时 / 每日错误数，横轴会**根据当前筛选范围的跨度自动切换桶粒度**，避免数据累积到两三年后横坐标过密、标签重叠：\r\n\r\n- 跨度 ≤ 120 天 → **按日**，每日本地时区归日的精确值\r\n- 120 天 < 跨度 ≤ 730 天 → **按周**，以周一为周起始，ISO 周聚合\r\n- 跨度 > 730 天 → **按月**，按 YYYY-MM 聚合\r\n\r\n聚合方式：先按请求 `startedAt` 本地时区归日，再按所选粒度把该周期内的 token / credit / 思考秒 / 错误数**求和**得到周期总量。卡片标题与副标题会同步更新，明确当前展示的是每日值还是周期总量。缩放日期筛选范围时粒度会实时重算。\r\n\r\n### 4.9 错误分类统计\r\n\r\n错误数据的**分类统计**基于**全量** trace 数据，不受日期筛选影响。v1.4.0 起「错误明细」独立卡片已移除：错误趋势看「每日错误数」图，6 类分类统计集中在每次运行生成的全量 CSV 与 xlsx 的错误分区中。\r\n\r\n早期版本只把错误记成「错误数」一个总数，丢弃了每条 span 的具体错误信息。现在的实现把这些信息**还原为可下钻的分类统计**：\r\n\r\n- **高频错误内容**：按错误文本聚合，列出出现次数最多的几条，如 `Error running tool (non-fatal)`，并标注各自出现次数；用于快速定位\"哪个错误最普遍\"。\r\n- **按类型分布**：错误按类别拆分计数，类别包括 tool / generation / mcp / function 等。\r\n- **按工具分布**：触发错误的工具 / MCP / 函数名分布。\r\n- **按模型分布**：出错请求涉及的模型分布。\r\n- **按会话分布**：错误集中在哪些会话。\r\n- **近期错误样本**：列出最近若干条原始错误文本，便于点开具体会话排查。\r\n\r\n这些分类共同回答\"错误主要是什么、由什么工具或模型或会话引发、最近是否还在发生\"，是错误监控的主入口。全量 CSV 的错误分区带 UTF-8 BOM，以避免中文乱码。\r\n\r\n### 4.11 全量数据的两种格式与分区清单\r\n\r\n每次运行同时产出 `usage-full-<时间戳>.csv` 与 `usage-full-<时间戳>.xlsx`，两者内容同源，分区顺序固定如下：\r\n\r\n- **CSV**：14 个分区依次写在一个文件里。\r\n- **xlsx**：同样的 14 个分区各自成为一个工作表，首行冻结并预设列宽。xlsx 由脚本用标准库 `zipfile` 与 XML 自行拼装，不依赖任何第三方库。\r\n\r\nCSV 把 14 个结构不同的分区写进一个文件，且文件首行不是表头。部分在线表格工具先按首行判定列数再渲染，遇到这种结构会解析失败；xlsx 没有这个问题。\r\n\r\n| 分区                                   | 内容                                                                              | 对应看板位置             |\r\n| ------------------------------------ | ------------------------------------------------------------------------------- | ------------------ |\r\n| 每日汇总                                 | 日期 / 请求数 / Token / 输入 / 输出 / 缓存命中 / 思考秒 / credit / 错误 / 会话数                     | 时序图与 KPI           |\r\n| 按模型                                  | 模型 / 请求数 / Token / 输入 / 输出 / 调用数 / 思考秒 / 错误 / 效率                                | 模型占比与效率图           |\r\n| 模型成本与费率（当前生效）                        | 模型 / 调用数 / Token / credit / 每百万token积分 / 三档单价 / 低谷折扣 / R² / 生效期间 / 占总积分         | 模型成本与费率表           |\r\n| 模型费率全部阶段                             | 模型 / 生效期间 / 样本数 / 三档单价 / 低谷折扣 / 低谷时段 / R² / 是否可作费率 / 不可用原因                      | 成本表的展开区            |\r\n| 会话清单（前500）                           | 会话 / 标题 / 模型 / 请求数 / Token / 思考分 / credit / 错误 / 状态 / 首现日期                      | Top 会话表（看板只展示前 10） |\r\n| 单次提问成本榜（前20）                         | 日期 / 时间 / 会话 / 标题 / 模型 / 模型调用数 / Token / 提问积分 / 占总积分 / 工作区                      | 单次提问成本榜            |\r\n| 单次提问集中度                              | 提问总数 / credit / 积分中位与最大 / 调用数中位与最大 / 最贵 1% 与 10% 的次数与占比                         | 单次提问成本榜的说明句        |\r\n| 调用明细                                 | 逐笔 trace 的日期 / 时间 / 会话 / 模型 / 状态 / 各口径 token / 调用数 / 工具数 / 思考秒 / 时长 / 错误 / 提问原文 | 下钻轮次表              |\r\n| 错误-高频 / 按类型 / 按工具 / 按模型 / 按会话 / 近期样本 | 六个错误分类分区                                                                        | 无独立卡片，见 §4.9       |\r\n\r\n费率相关的两张表口径不同：**当前生效**那张每行一个模型，取其正在生效的费率阶段；**全部阶段**那张每行一个模型月，含历史阶段与未达标条目，用于追溯费率变化。拟合优度 R² 是判定费率是否可用的依据，CSV 两张表都保留该列；看板主表不显示它，因为能进表的都已达到门槛，未达门槛的已在行内写明原因。\r\n\r\n### 4.10 缓存命中率\r\n\r\n- 口径：缓存命中 token ÷ 输入 token，即 `cached/in`；若实测出现 cached>input 自动切换为 `cached/(in+cached)`，实际口径标注在缓存卡片上。\r\n- 每日趋势：按当前筛选粒度分桶，各桶 `cached` 之和 ÷ `input` 之和。\r\n- 模型排行：仅收录调用数 ≥ 10 的模型，小样本命中率噪声大。\r\n- 含义：命中率越高，同等任务的实际计费输入越少。\r\n\r\n---\r\n\r\n## 5. 用量高峰探查\r\n\r\n### 5.1 选哪几天\r\n\r\n1. 先算每日 token 总量的中位数 `median_tok`，请求级精确到天。\r\n2. 阈值 `thr = max(median_tok × 2, 500 万)`：token 高于中位数 2 倍且至少 500 万的日子，才算\"明显高\"。\r\n3. 满足的日子按 token 倒序，最多取 6 天。\r\n4. 兜底：若满足条件的不足 3 天，则直接取 token 最高的 3 天。\r\n\r\n排序依据从 credit 改为 token。两者都能精确到天，token 按请求 `startedAt` 归日，更贴近「用量高峰」的直觉，所以作为主排序键。\r\n\r\n### 5.2 每天的拆解字段\r\n\r\n对每个入选日，逐日给出：\r\n\r\n- 当天会话：当天有请求的全部会话，不再限\"首次出现日\"；按当天 token 降序，模型列显示当天实际请求的全部模型，按 token 降序、逗号分隔，会话内跨模型时与右侧构成对齐。\r\n- 模型 token 构成 Top5：当天所有请求按 `model` 聚合 token，取前 5，token=0 的不显示。\r\n- 错误率 = 当天 `errors / 请求数 × 100%`。\r\n- 均 calls/请求 = 当天总 `calls / 请求数`，高则可能反复调用。\r\n- 最大单请求 = 当天单次请求的最大 `tokens`。\r\n\r\n会话表与「模型 token 构成」都统计当天全部请求，左右 token 总额相等，可对账。\r\n\r\n### 5.3 会话显示上限\r\n\r\n- 当天会话按 token 倒序，最多显示 8 个；超过 8 个时，其余在表下标注「另有 N 个会话，合计 X token，未列入」。\r\n\r\n---\r\n\r\n## 6. 模型成本与费率\r\n\r\n这张卡片把「用量」与「价格」并排放在同一张表里，表头分成「成本实况」与「费率结构」两个分组。分开的理由是两者的可运算性不同：用量是可以加总的事实，费率是不可加总的价格，跨模型把费率相加没有意义。\r\n\r\n### 6.1 成本实况\r\n\r\n- 数据取自本地会话文件里每一次模型调用的 `providerData.rawUsage`，即 `prompt_tokens`、`prompt_cache_hit_tokens`、`completion_tokens`、`credit`。\r\n- **模型归属按每次调用自带的模型名**，不再使用会话级模型标签。\r\n- 公式：`每百万 token 积分 = 该模型积分合计 ÷ 该模型 token 合计 × 1e6`，越低越省。\r\n- 这一列是**实际发生的平均值**，受任务形态影响：缓存命中占比高的模型均值天然低，输出占比高的模型均值天然高。它不是模型单价。\r\n- 过滤：`unknown` 模型与 token 为 0 的行不进入；积分恒为 0 的免费模型排在最后。\r\n\r\n### 6.2 费率结构\r\n\r\n- 按模型与月份分组做无截距三元最小二乘：`积分 = a × 非缓存输入 + b × 缓存输入 + c × 输出`，系数单位是积分每百万 token。\r\n- 月内再识别时段：逐小时比较实际费率与该月整体基准，明显偏低的小时判为低谷，输出低谷折扣与低谷时段。\r\n- **只用扣过费的调用拟合**。限免期的零积分调用会把斜率拉平，剔除后拟合优度显著回升。\r\n- 费率是价格，不参与任何聚合。\r\n\r\n### 6.3 两道门槛\r\n\r\n先卡展示范围，再卡费率可用性。\r\n\r\n**第一道：进表门槛。** 只列出 token 达到最大模型百分之一以上的模型。用意是滤掉只试过几次、不构成成本讨论的长尾模型，它们会撑长表格却不影响任何结论。同一门槛也用于 §6.5 的优化建议，因此「表里出现的模型」与「参与建议的模型」始终是同一批。\r\n\r\n**第二道：费率可用门槛。** 进表之后，须同时满足**调用数 ≥ 30** 且**标准档拟合优度 R² ≥ 0.95**，才标注费率。\r\n\r\n- 识别低谷折扣另需：标准档与低谷档各自 R² ≥ 0.90，且低谷价 ÷ 标准价 ≤ 0.70。\r\n- 不达标的模型仍留在表内显示成本，费率列写「费率不可用」，并在同一格内写明原因：样本不足 / 费率有波动 / 路由模型 / 限时免费。\r\n- 拟合优度在小样本下会虚高，三个参数配四个点几乎必然完美拟合，所以门槛必须同时卡样本数。\r\n- R² 的数值本身不在看板上显示，判定依据保留在 CSV 的两张费率表里。\r\n- 费率阶段不能用日期切分来收敛：费率既随月份变也随小时变，日级数据混合两档且比例逐日不同，实测按日期递归切分到 13 段仍有 9 段不达标。判据作用在「月 × 时段」这一层。\r\n\r\n### 6.4 历史费率\r\n\r\n- 有多个费率阶段的模型，行首有折叠标记，展开后显示各历史阶段的费率与样本数，并标明该行是整段时期的汇总值、不按月拆分。\r\n- 默认只显示当前生效的那一期。限免模型没有费率阶段，不显示折叠标记。\r\n\r\n### 6.5 优化建议\r\n\r\n- 在可比任务量的通用模型中排除 `auto`、`unknown`、`preview`、`agent` 以及积分为 0 的模型，取每百万 token 积分最便宜与最贵的两条。任务量门槛沿用 §6.3 的进表门槛，不另设数值。\r\n- 预计节省 = (最贵 − 最便宜) ÷ 最贵 × 100%，达到 5% 才给出建议。\r\n- 文案明确写出这是实际平均值、受任务形态影响、不是模型单价。\r\n\r\n---\r\n\r\n## 6A. 单次提问成本榜\r\n\r\n- 聚合单位是 `providerData.conversationRequestId`，也就是一次提问。一次提问会触发多次模型调用，积分是这些调用的合计。\r\n- 输出最贵的 20 次，字段为日期、时刻、会话、涉及模型、调用次数、积分、占总量比例。\r\n- 同时给出集中度：最贵的 1% 与 10% 提问各贡献了多少比例的积分。\r\n- 用途是定位真正费钱的那几次提问，不必笼统地减少使用。中位与最大值之间通常差几个数量级。\r\n- 会话标题取自 `sessions` 表；工作区取自调用行自带的 `cwd`。\r\n\r\n---\r\n\r\n## 7. 参数 / 阈值速查表\r\n\r\n| 参数 / 阈值                           | 含义 / 当前值                    |\r\n| --------------------------------- | --------------------------- |\r\n| `median_tok × 2` 与 `500 万`        | 高用量日门槛：取两者较大值               |\r\n| `top 6` / 兜底 `top 3`              | 入选高用量日上限 / 兜底数量             |\r\n| `会话 top 8`                        | 每天拆解的会话显示上限，超出在表下标注         |\r\n| `Top10`                           | Token 占比扇区、效率图、Top 会话的取数上限  |\r\n| `token ≥ 最大模型 ÷ 100`              | 模型成本与费率表的进表门槛，同时用于优化建议与限免提示 |\r\n| `调用数 ≥ 30` 且 `R² ≥ 0.95`          | 费率可用门槛，进表后须同时满足才标注费率        |\r\n| 两档 `R² ≥ 0.90` 且 `低谷 ÷ 标准 ≤ 0.70` | 识别低谷折扣的门槛                   |\r\n| `最贵 20 次提问`                       | 单次提问成本榜的显示条数                |\r\n| 每百万 token 积分节省 `≥ 5%`             | 触发优化建议的最小差异                 |\r\n| `前 300 次请求`                       | 散点图取样上限，用于控体积               |\r\n| `前 500 会话`                        | `by_session` 输出上限，用于控体积     |\r\n\r\n---\r\n\r\n## 8. 已知数据统计限制\r\n\r\n1. Credit 与 Token 独立统计：credit 走会话文件里逐次调用的计费口径，token 走 `traces` 实际用量；模型限免期 token 照常计、credit=0。\r\n2. 用量统计以「有效 trace」为基数，无覆盖率缺口。有效 trace = 有实际 token 消耗的 trace，已排除工作流记账噪声数据。在有效 trace 上，`sessionId` 与 `sessions` 表 100% 对应，因此会话与模型下钻、总量、每日趋势、错误数均为完整真实用量。\r\n3. 思考用时是代理指标，为 generation span 时长之和，不含工具调用与等待。\r\n4. 错误率按 span 级统计：一次请求多个 span 报错会重复计入，错误率可能高于单个请求的失败率。\r\n5. 每日 credit 与每日 token 的覆盖范围不同：credit 来自会话文件，不在清理名单内，覆盖更全；token 来自 traces，保留 30 天。因此会存在「只有积分、没有 token」的日期。这些天的积分已按实际发生日计入且数值正确，但 token 缺失，看 token 曲线时这些天偏低甚至为 0 属正常。看板提示条会列出具体日期。\r\n6. WorkBuddy 对本机 `traces/<pid>` 目录做 30 天保留清理，daemon 按目录 mtime 整目录删除，正在写入的目录因 mtime 新鲜而整体幸存。本 skill 每次运行自动归档，按 traceId 去重，然后再聚合：被清理日期的**每日总量**可由归档或历史快照（`--seed`）恢复，但其**逐笔明细**不可恢复，这些日期的下钻数据不完整。\r\n\r\n---\r\n\r\n## 9. 输出文件\r\n\r\n脚本在输出目录，即同目录或 `--out` 指定目录，生成：\r\n\r\n- `usage-status.json`：原始聚合数据，供调试与二次处理。\r\n- `usage-status.js`：`window.USAGE_STATUS = {...}`，供 HTML 直接 `<script>` 引入。\r\n- `workbuddy-usage-status-dashboard-<时间戳>.html`：离线看板，文件名带生成时间戳，每次生成独立文件，便于保留多份对比。\r\n- `usage-full-<时间戳>.csv`：全量数据 CSV。\r\n- `usage-full-<时间戳>.xlsx`：全量数据 xlsx。\r\n- 上述数据文件均含**会话标题与用户提问原文摘要**，提问最长 300 字，看板内展示默认脱敏。分享或提交前请先检查敏感性。\r\n\r\n运行：`python usage_extractor.py [--out 目录] [--home ~/.workbuddy]`\r\n\r\n---\n\nFile v1.5.1:skill-card.md\n\n## Description:\n\nCreates an offline dashboard and data exports from your local WorkBuddy usage, including token consumption, credit costs, model activity, and errors.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[clancy-feng](https://clawhub.ai/user/clancy-feng)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nWorkBuddy users can review and export their own local usage statistics to understand token and credit consumption, model activity, and errors. The skill is not intended for other products or arbitrary datasets.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Generated reports can disclose session titles and truncated prompt text if shared or committed.\n\nMitigation: Review and redact generated JSON, JavaScript, HTML, CSV, and XLSX files before sharing or committing them.\n\nRisk: The default local usage archive persists usage records between runs.\n\nMitigation: Use --no-archive if you do not want a persistent local usage archive.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/clancy-feng/skills/workbuddy-usage-status)\n- [Usage documentation](README.md)\n- [Data and methodology guide](DATA-GUIDE.md)\n\n## Skill Output:\n\n**Output Type(s):** [Files, Guidance]\n\n**Output Format:** [Offline HTML dashboard with local JSON, JavaScript, CSV, and XLSX data exports]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Generated files may include session titles and truncated prompt text; a persistent local archive is enabled by default.]\n\n## Skill Version(s):\n\n1.5.1 (source: frontmatter, CHANGELOG; released 2026-10-01)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.5.1:LICENSE\n\nMIT License\r\n\r\nCopyright (c) 2026 Clancy\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\n\nArchive v1.5.0: 14 files, 2551323 bytes\n\nFiles: assets/dashboard-preview-1.png (661215b), assets/dashboard-preview-2.png (605875b), CHANGELOG.md (15216b), dashboard-preview-1.png (661215b), dashboard-preview-2.png (605875b), DATA-GUIDE.md (22717b), LICENSE (1084b), README.md (21309b), scripts/chart.umd.min.js (205399b), scripts/dashboard_template.html (66783b), scripts/usage_extractor.py (84550b), skill-card.md (2031b), SKILL.md (14231b), _meta.json (141b)\n\nFile v1.5.0:SKILL.md\n\n---\r\nname: \"workbuddy-usage-status\"\r\nslug: workbuddy-usage-status\r\ndisplayName: \"WorkBuddy 使用状态看板\"\r\nversion: 1.5.0\r\ndescription: \"离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为逐次实测精确值，涵盖思考效率、模型分布、成本与费率、单次提问成本、缓存命中率、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板，并同步导出全量 CSV 与 xlsx。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、全程零网络、可搬运；可选 --credit-xlsx 作参考补充，只在本地缺少逐次明细的日期上补入。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit measured per call, covering thinking efficiency, model distribution, model cost & rates, costliest single prompts, cache hit rate, date-range filtering, error monitoring, usage-spike inspection; a full CSV and xlsx export is written on every run. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local and zero-network; the optional --credit-xlsx serves as a reference supplement only, filling days that lack local per-call detail.\"\r\nagent_created: true\r\nlicense: MIT\r\nsummary: \"离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为逐次实测精确值，涵盖思考效率、模型分布、成本与费率、单次提问成本、缓存命中率、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板，并同步导出全量 CSV 与 xlsx。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、全程零网络、可搬运；可选 --credit-xlsx 作参考补充，只在本地缺少逐次明细的日期上补入。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit measured per call, covering thinking efficiency, model distribution, model cost & rates, costliest single prompts, cache hit rate, date-range filtering, error monitoring, usage-spike inspection; a full CSV and xlsx export is written on every run. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local and zero-network; the optional --credit-xlsx serves as a reference supplement only, filling days that lack local per-call detail.\"\r\ntrigger:\r\n  - 查看 WorkBuddy 使用状态\r\n  - 生成 WorkBuddy 用量看板\r\n  - 导出 WorkBuddy 用量数据\r\n  - WorkBuddy token 消耗统计\r\n  - WorkBuddy 积分消耗 / 对账\r\n  - WorkBuddy 模型分布与性价比\r\n  - WorkBuddy 用量高峰 / 错误监控\r\nallowed-tools: python3, read_file, write_file\r\npermissions:\r\n\r\n- file_read\r\n- file_write\r\n- network\r\n  metadata:\r\n  clawdbot:\r\n  emoji: \"📊\"\r\n  requires:\r\n    bins:\r\n\r\n      - python3\r\n\r\n  requires.env: []\r\n\r\n---\r\n\r\n# \r\n\r\n## 💖 支持这个项目\r\n\r\n> 📊 已被 **4000+** WorkBuddy 用户下载使用，覆盖 SkillHub & ClawHub 双平台。\r\n\r\n如果这个工具帮到了你，欢迎：\r\n\r\n- ⭐ 去 GitHub 点个 Star\r\n- 🐛 遇到问题提 Issue\r\n- 📢 分享给你的 WorkBuddy 用户朋友\r\n\r\n**GitHub**：<https://github.com/clancy-feng/workbuddy-usage-status>\r\n\r\n## 界面预览\r\n\r\n![preview](https://raw.githubusercontent.com/clancy-feng/workbuddy-usage-status/refs/heads/main/assets/dashboard-preview-1.png)\r\n\r\n## 技能简介\r\n\r\n把 WorkBuddy 自己的本地使用数据，变成一份离线可查的 Dashboard。\r\n\r\n可以看到：token 消耗、思考用时、思考效率、模型分布、错误数、积分消耗、模型费率、单次提问成本。\r\n\r\n## ✨ 核心功能特性\r\n\r\n- Token/Credit 全链路可视化：按模型、按日期、按会话统计，一眼定位\"烧钱大户\"\r\n- 用量高峰探查：按 token 列出最高的几天，单行显示 token、credit、请求数、会话数、错误率，点「明细」展开当天会话表与模型 Top5\r\n- 模型成本与费率：同一张表并排两类信息。一类是实际用量与花费，含调用数 / token / 积分 / 每百万 token 积分，按每次调用真实的模型名归属；另一类是从本地逐次明细反推的单价，含非缓存输入 / 缓存输入 / 输出三档单价与低谷折扣。只列出 token 达到最大模型 1/100 以上的模型，其中调用数不足 30 或费率有波动的模型不标注费率并写明原因，多个费率阶段的模型可展开看历史\r\n- 单次提问成本榜：一次提问会触发多次模型调用，按积分列出最贵的 20 次，并给出集中度，即最贵的 1% 与 10% 提问各贡献多少积分，用于定位真正费钱的那几次\r\n- 思考效率量化：输出 token ÷ 思考秒数，即 tok/s，横向对比模型思考效率\r\n- 错误集中监控：快速定位报错频繁的会话/模型，降低调试成本，可导出错误详情。\r\n- 离线运行：Chart.js 随包附带，零外网依赖\r\n- 缓存命中率面板：整体与按模型命中率趋势，看清\"谁在帮你省钱\"；口径为 cached/input，实测 cached>input 时自动切换并标注\r\n- 三级下钻：从 Top10 会话点「查看」，轮次表含时间 / 模型 / 状态 / Token / 输入 / 缓存命中 / 调用数 / 工具数 / 思考时长 / 错误；提问列默认隐藏，勾选「显示提问」展开，展示时脱敏；每轮再点「明细」看事件摘要，含生成段数与总时长、工具调用清单及耗时、错误类型与摘要\r\n- 全量数据双格式同步生成：每次运行自动产出 `usage-full-<时间戳>.csv` 与 `usage-full-<时间戳>.xlsx`，两者同源、同为 14 个分区。CSV 把全部分区装在同一个文件里，便于脚本批量取数；xlsx 把每个分区放进独立工作表并冻结首行，可在 Excel 与在线表格工具里直接翻查。表头与分区名语言自动跟随操作系统语言切换\r\n- 自动归档合并：每次运行自动把逐笔数据并入本地归档（traceId 去重），WorkBuddy 30 天清理 trace 也不再丢历史——对用户完全透明，`--no-archive` 可关\r\n- 只读无侵入：以只读模式访问 WorkBuddy 数据，不影响正在运行的程序\r\n- 跨平台兼容：支持 Windows/macOS/Linux，Python 3.10+ 即可运行\r\n\r\n## WorkBuddy Usage Status —— Agent 执行指令\r\n\r\n本文件是给 AI 的执行说明书，用户视角的安装、读图、故障排查见 `README.md`；指标算法口径见 `DATA-GUIDE.md`。\r\n\r\n## 触发条件\r\n\r\n当用户**明确指向 WorkBuddy 自身**、表达以下意图时调用本技能。description 已含触发词，此处强化判断与收紧边界：\r\n\r\n- 想查看 / 生成 / 导出**自己的 WorkBuddy** 使用统计、工作量、成本看板；\r\n- 关心 token 消耗、模型分布与性价比、思考效率、错误监控、用量高峰日等任一维度在 WorkBuddy 本机 trace 中的数据；\r\n- 想对账某段时间 WorkBuddy 用了多少积分。\r\n\r\n典型触发说法：「看看我的 WorkBuddy 用了多少 token」「生成 WorkBuddy 用量看板」「WorkBuddy 积分消耗对账」「哪个模型最划算」「哪天用量最高」。命中任一具体说法即触发；只有泛指「做个统计图表」且未指向 WorkBuddy 本机用量时不易触发。\r\n\r\n**反向触发词**：用户意图指向以下任一情况时，本技能不适用，应直接告知用户：\r\n\r\n- 想查看 / 统计**其他产品**，如 Cursor、VS Code、Trae、Claude 等第三方系统的用量、数据、分析；\r\n- 仅泛指\"导出我的数据 / 做个统计图表 / 生成看板\"，未明确指向 WorkBuddy 本机用量；\r\n- 想为任意数据集生成通用可视化 / 报表；本技能只读取 `~/.workbuddy` 下的数据文件，不具备通用图表能力。\r\n\r\n遇到上述情况，回复要点：本技能只读取并可视化 WorkBuddy 本机（`~/.workbuddy`）的使用数据，不涉及其他产品或通用数据；请确认是否要分析 WorkBuddy 自身用量，或改用对应产品的工具。\r\n\r\n## 执行步骤\r\n\r\n抽取器仅依赖 Python 标准库，运行前无需 pip 安装任何包。在技能目录下运行：\r\n\r\n```\r\npython3 scripts/usage_extractor.py [--out <输出目录>] [--home <数据根>] [--credit-xlsx <路径>] [--seed <旧快照>] [--no-archive]\r\n```\r\n\r\n- `--out <dir>`：输出目录，默认当前工作目录。\r\n\r\n- `--home <dir>`：指定数据根目录，默认 `~/.workbuddy`；日常使用不要加，仅迁移或测试时用。\r\n\r\n- `--credit-xlsx <path>`：可选。传入从 `workbuddy.cn` 用量页导出的 xlsx，作为**参考补充**：只补入本地没有逐次明细的日期。仅当用户明确要求与官方账单对账时再加。\r\n\r\n- `--seed <path>`：旧快照种子（`usage-status.json` 或历史 dashboard HTML）。一次性导入其每日总量进入持久覆盖层，恢复已被 WorkBuddy 30 天清理的日期，逐笔明细不可追溯。导入后持久生效，无需重复传入。**只取其中的 token 等总量字段；旧快照的 credit 是按会话首现日挂出来的旧口径，不再采用。**\r\n\r\n- `--no-archive`：禁用自动归档合并，默认开启。\r\n\r\n执行后在该目录生成 6 个文件：\r\n\r\n- `workbuddy-usage-status-dashboard-<时间戳>.html` —— 数据内联、Chart.js 外链，双击/预览即可看，零外网依赖；文件名带生成时间戳，每次生成独立文件；\r\n- `usage-status.json` —— 原始聚合数据，供二次处理；\r\n- `usage-status.js` —— `window.USAGE_STATUS = {...}`，供 HTML 通过 `<script>` 直接引入，以此避开 `file://` 的 fetch 跨域限制。\r\n- `chart.umd.min.js` —— 图表引擎，由抽取器从 skill 包复制到输出目录，需与 HTML 同目录存放。\r\n- `usage-full-<时间戳>.csv` —— 全量数据 CSV，分区清单见 `DATA-GUIDE.md` §4.11，与看板同源；14 个分区装在一个文件里，适合脚本批量取数。\r\n- `usage-full-<时间戳>.xlsx` —— 全量数据 xlsx，与 CSV 同源，14 个分区对应 14 个工作表、首行冻结；适合在 Excel 或在线表格工具里直接翻查预览。\r\n\r\n> ⚠ **产物敏感性提醒**：`usage-status.json` / `usage-status.js` / dashboard HTML / 全量 CSV 与 xlsx 中均含**会话标题与用户提问原文摘要**（提问最长 300 字；看板内展示默认脱敏，数据文件内为原文截断），分享或提交到仓库前请先检查敏感性。\r\n\r\n> ⚠ **30 天缓存期（重要）**：WorkBuddy 现对本机 traces 只保留 **30 天**，本 skill 每次运行会自动把数据归档到 `~/.workbuddy/usage-archive/`，之后无论 trace 是否被清理，看板始终是全量视图——**但归档只在运行时发生**，所以需至少每 30 天运行一次，建议设置自动任务，断档超 30 天期间的 trace 无法追溯；首次运行只能看到最近 30 天。可用 `--seed <旧快照>` 导入历史快照恢复更早的每日总量。\r\n\r\n## 交付方式\r\n\r\n生成完成后，在输出目录找到最新生成的 `workbuddy-usage-status-dashboard-*.html`，按文件名时间戳取最大者，用 `present_files` 打开预览交回给用户。\r\n\r\n**只把看板 HTML 作为预览项交付，不要放入其他产物。** 全量 CSV 一旦放进预览项，用户打开时看到的是报错而不是数据：该文件由 14 张列数各异的表拼接而成，首行不是表头，WorkBuddy 的内置预览会把它交给在线表格引擎，该引擎按首行字段数判定列数，往下读到 10 列、15 列的行即解析失败。CSV 与 `usage-full-<时间戳>.xlsx`、`usage-status.json` 一律以文件路径形式在回复里说明，并提示 CSV 用 Excel 或 WPS 打开。\r\n\r\n## 约束与口径\r\n\r\n- 读写与网络边界：① **读**——仅以只读模式读 `~/.workbuddy` 下的 `workbuddy.db`、`traces/`、`projects/*/*.jsonl`，从中提取 `<user_query>` 提问摘要供下钻显示，以及每次模型调用的 `providerData.rawUsage.credit` 与模型名用于逐日 credit；不修改 WorkBuddy 自身数据、不上传任何数据、不读取任何 API key/密码；② **写**——仅在输出目录生成 6 个产物文件，并在 `~/.workbuddy/usage-archive/` 维护本地归档以对抗 30 天 trace 清理（`--no-archive` 可关闭）；③ **网络**——全程零网络请求，不发起任何出站连接。xlsx 由脚本用标准库 `zipfile` 与 XML 自行拼装，不引入任何第三方依赖。\r\n- 指标口径：token 为权威主指标，本地 trace 带精确时间戳，按请求本地时区归日，精确；credit 取自本地会话文件里每一次模型调用的精确积分，按调用时间归日，同样精确，并可再按模型与时段拆分。各指标的具体算法、聚合口径与已知限制见 `DATA-GUIDE.md`，不要凭空编造数字。\r\n- 数据完整性：抽取器顶部警告条已列出被跳过/解析失败的 trace 与会话，报告可能不完整属正常现象，如实告知用户即可。\r\n- 产物确定：每次运行仅生成上述 6 个固定文件（dashboard HTML / `usage-status.json` / `usage-status.js` / `chart.umd.min.js` / `usage-full-<时间戳>.csv` / `usage-full-<时间戳>.xlsx`），规模由本地 `~/.workbuddy` 数据量天然限定，不存在无界输出。\r\n\r\n## 相关文档\r\n\r\n- `README.md`：用户视角的安装、使用场景、读图指南、故障排查。\r\n- `DATA-GUIDE.md`：指标计算的唯一真相源，含算法、聚合口径、图表参数、归因方法、已知限制。\r\n- `CHANGELOG.md`：版本变更记录与安全等级评估。\n\nFile v1.5.0:README.md\n\n> **Skill Overview**\r\n> \r\n> WorkBuddy Usage Status turns WorkBuddy's own local usage data into an offline dashboard — token spend, thinking time, thinking efficiency, model distribution, error count, and credit consumption. It ranks model cost-performance and shows per-model rates so you can pick the cheapest model, and supports a date-range filter so you can zoom into any period. All model-share charts are limited to the top 10 models with the rest grouped as \"Other\". All data stays on your machine under `~/.workbuddy/`; **default zero network, no external APIs**. The generated dashboard is one HTML file plus a local Chart.js copy written into the same folder, so it renders offline with zero dependencies.\r\n> \r\n> **What it does**: Offline dashboard for WorkBuddy's local usage data — token / credit consumption, thinking efficiency, model distribution & cost-performance, date-range filtering, error monitoring, and usage-spike analysis.\r\n> \r\n> **Recent updates**:\r\n> \r\n> - **Per-call credit** — credit now comes from every model call logged in local session files, attributed to the day the call happened. No more \"all credit on the session's first day\".\r\n> - **Model cost & rates** — one table, two groups of columns: cost reality shows calls, tokens, credit, and credit per million tokens; rate structure shows non-cached input, cached input, and output unit prices, plus off-peak discount. Both are back-calculated from local per-call detail.\r\n> - **Costliest single prompts** — the 20 priciest prompts by credit, with concentration stats, so you can find the few calls that actually cost money.\r\n> - **Cache hit-rate panel** — overall hit rate, a daily trend line, and a per-model ranking.\r\n> - **Full-dataset CSV and xlsx on every run** — timestamped `usage-full-<timestamp>.csv` and `usage-full-<timestamp>.xlsx` are written next to the dashboard. The CSV carries all 14 sections in a single file for scripted reuse; the xlsx splits the same sections into one worksheet each, so it opens in Excel and online spreadsheet viewers. Headers and section names follow your OS language.\r\n> - **Auto-archiving against WorkBuddy's 30-day trace cleanup** — every run merges live traces with a local archive, so history keeps accumulating; a dashboard banner reminds you to run at least once every 30 days. An optional `--seed <old snapshot>` imports an older snapshot's daily totals.\r\n> - **Drill-down** — top-10 sessions expand into per-turn tables with an optional masked prompt column; usage-peak cards expand into that day's session table and model Top 5.\r\n> \r\n> **How to install**\r\n> \r\n> ```\r\n> clawhub install workbuddy-usage-status\r\n> ```\r\n> \r\n> **How to use**\r\n> \r\n> - **Chat trigger:** Describe what you want in plain English or Chinese — WorkBuddy detects this skill by *meaning*, not a fixed keyword list. Anything expressing *viewing, generating, or exporting your WorkBuddy usage status / stats / activity dashboard* will trigger it. Examples:\r\n>   \r\n>   \"generate a WorkBuddy usage dashboard\" · \"view my recent WorkBuddy usage status\" · \"show token / credit consumption and model distribution\" · \"which model is the most cost-effective\" · \"filter usage by date range\" · \"which day had the highest usage\"\r\n>   \r\n>   Scope is limited to WorkBuddy's own local usage data.\r\n>   \r\n>   **Not triggered:** This skill does **not** apply when you want usage/stats of *other products* such as Cursor, VS Code, Trae, or Claude; when you only say \"export my data / make me a chart / build a dashboard\" without specifying *WorkBuddy's local usage*; or when you want a generic visualization/report from arbitrary datasets.\r\n> \r\n> - **CLI:**\r\n>   \r\n>   ```\r\n>   python3 scripts/usage_extractor.py\r\n>   ```\r\n>   \r\n>   Options: `--out ./report`, `--home /other/.workbuddy`, `--credit-xlsx <file>`, `--seed <old snapshot>`, `--no-archive`. Python 3.10+, standard library only. Windows users please replace `python3` with `python`.\r\n> \r\n> ⭐ If this dashboard helped you see your WorkBuddy usage clearly, please give it a Star to support independent development: [github.com/clancy-feng/workbuddy-usage-status](https://github.com/clancy-feng/workbuddy-usage-status)\r\n> \r\n> The full Chinese documentation is preserved below.\r\n\r\n---\r\n\r\n> **语言说明**：本文档英文概览在上，中文正文在下，二者是同一份说明的双语呈现；技能的触发描述另见 `SKILL.md` 的 `description`。\r\n\r\n把 WorkBuddy 自己的本地使用数据，变成一份离线可查的 Dashboard。\r\n\r\n可以看到：token 消耗、思考用时、思考效率、模型分布、错误数、积分消耗、模型费率、单次提问成本。\r\n\r\n## ✨ 核心功能特性\r\n\r\n- Token/Credit 全链路可视化：按模型、按日期、按会话统计，一眼定位\"烧钱大户\"\r\n- 用量高峰探查：按 token 列出最高的几天，单行显示 token、credit、请求数、会话数、错误率，点「明细」展开当天会话表与模型 Top5。\r\n- 模型成本与费率：同一张表并排两类信息。一类是实际发生的用量与花费，含调用数、token、积分、每百万 token 积分，按每次调用的真实模型名归属；另一类是从本地逐次明细反推出来的单价，含非缓存输入、缓存输入、输出三档单价与低谷折扣。只列出用量达到最高模型百分之一以上的模型；其中调用数不足 30 或费率有波动的模型不标注费率，并在行内写明原因。\r\n- 单次提问成本榜：按积分列出最贵的 20 次提问，并给出集中度统计。\r\n- 思考效率量化：输出 token ÷ 思考秒数，即 tok/s，横向对比模型效率。\r\n- 错误集中监控：快速定位报错频繁的会话/模型，降低调试成本。\r\n- 离线运行：Chart.js 随 Skill 安装附带。\r\n- 缓存命中率面板：整体与按模型命中率趋势，看清\"谁在帮你省钱\"。\r\n- 三级细节显示：从 Top10 会话点「查看」，轮次表含时间 / 模型 / 状态 / Token / 输入 / 缓存命中 / 调用数 / 工具数 / 思考时长 / 错误；提问列默认隐藏，勾选「显示提问」展开；每轮再点「明细」显示事件摘要。\r\n- 全量数据双格式同步生成：每次运行自动产出 `usage-full-<时间戳>.csv` 与 `usage-full-<时间戳>.xlsx`，含逐笔调用明细与提问原文。CSV 把全部分区装在一个文件里，便于脚本批量取数；xlsx 把每个分区放进独立工作表，可在 Excel 与在线表格工具里直接翻查。表头与分区名语言随操作系统语言。\r\n- 自动归档合并：每次运行自动把历史运行数据并入本地归档，可用`--no-archive` 关闭。\r\n- 只读无侵入：以只读模式访问 WorkBuddy 数据，不影响正在运行的程序。\r\n- 跨平台兼容：支持 Windows/macOS/Linux，Python 3.10+ 即可运行。\r\n\r\n---\r\n\r\n## 1. 能看到什么\r\n\r\n- 从开始用 WorkBuddy 到现在一共花了多少 token / credit？思考了多久？\r\n- 哪个会话、哪个模型消耗最大？模型效率怎么样？\r\n- 哪天用量飙升？错误集中在哪些会话/模型？\r\n- 用作\"使用监督 / 用量控制\"的量化依据。\r\n\r\n---\r\n\r\n## 2. 如何安装\r\n\r\n> 💡 安装引导：国内用户优先选 SkillHub 一键安装，全球用户/OpenClaw 生态用户优先选 ClawHub 安装。\r\n\r\n### 方式一：通过 WorkBuddy 安装（国内推荐）\r\n\r\n在 WorkBuddy 技能市场中搜索 `workbuddy-usage-status / workbuddy 使用状态看板`，点击「安装」即可。\r\n\r\n### 方式二：通过 ClawHub 安装\r\n\r\n```\r\nclawhub install workbuddy-usage-status\r\n```\r\n\r\n---\r\n\r\n## 3. 用法\r\n\r\n装好 skill 并重启 WorkBuddy 后，有两种用法。\r\n\r\n### 入口 A：对话触发\r\n\r\n在 WorkBuddy 对话里用自然语言描述你的需求即可，skill 会根据语义自动识别并引导生成看板。例如：\r\n\r\n- \"生成一个 WorkBuddy 使用信息看板\"\r\n- \"查看一下最近 WorkBuddy 的使用状态\"\r\n- \"我想看看 WorkBuddy 的工作信息看板，包括 token 消耗和模型分布\"\r\n- \"看一下 WorkBuddy 的使用数据\"\r\n\r\n### 入口 B：命令行直接跑\r\n\r\n在任意目录执行。需要 Python 3.10+，仅标准库：\r\n\r\n```\r\n# 生成到当前目录（默认）\r\npython3 scripts/usage_extractor.py\r\n\r\n# 生成到指定目录\r\npython3 scripts/usage_extractor.py --out ./report\r\n\r\n# 指定数据根，一般不用，默认 ~/.workbuddy\r\npython3 scripts/usage_extractor.py --home /other/.workbuddy\r\n\r\n# 可选：用用量导出 xlsx 作参考补充，只在本地缺少逐次明细的日期上补入\r\n# xlsx 来自 workbuddy.cn 用量页 → 选日期范围 → 导出，最多 1 个月\r\npython3 scripts/usage_extractor.py --credit-xlsx ~/Downloads/request-usage-2026-08-10.xlsx\r\n\r\n# 可选：用旧快照恢复已被 30 天清理的日期的每日总量\r\n# 旧快照可以是 usage-status.json 或历史 dashboard HTML\r\n# 导入一次即持久生效，存入本地归档 ~/.workbuddy/usage-archive/，无需重复传入\r\npython3 scripts/usage_extractor.py --seed ~/old/workbuddy-usage-status-dashboard-20260909-224125.html\r\n```\r\n\r\nWindows 用户请将上述命令中的 `python3` 替换为 `python`。\r\n\r\n### 看结果\r\n\r\n> ⚠ **重要提示：30 天缓存期**WorkBuddy 对本机 traces 只保留 **30 天**。本 skill 每次运行自动归档累积历史（`~/.workbuddy/usage-archive/`），看板始终是全量视图——**但归档只在运行时发生**：请至少每 30 天运行一次（建议配置每日定时自动化）；断档超 30 天期间的 trace 无法追溯，首次运行只能看到最近 30 天。\r\n\r\n脚本在「输出目录」，即你运行命令时所在目录或 `--out` 指定的目录，生成 6 个文件：\r\n\r\n| 文件                                            | 说明                                                              |\r\n| --------------------------------------------- | --------------------------------------------------------------- |\r\n| `workbuddy-usage-status-dashboard-<时间戳>.html` | 生成的报告文件，文件名带生成时间戳，每次生成独立文件，可保留多份对比                              |\r\n| `usage-status.json`                           | 聚合后的原始数据，可二次处理                                                  |\r\n| `usage-status.js`                             | `window.USAGE_STATUS = {...}`，备用                                |\r\n| `chart.umd.min.js`                            | 图表引擎文件，由脚本自动复制到输出目录，需与 HTML 同目录存放                               |\r\n| `usage-full-<时间戳>.csv`                        | 全量数据 CSV，14 个分区装在同一个文件里，含模型费率全部阶段、单次提问集中度；适合脚本批量取数              |\r\n| `usage-full-<时间戳>.xlsx`                       | 全量数据 xlsx，与 CSV 同源，14 个分区对应 14 个工作表，首行冻结；适合在 Excel 或在线表格工具里直接翻查 |\r\n\r\n> ⚠ **产物敏感性提醒**：`usage-status.json` / `usage-status.js` / dashboard HTML / 全量 CSV 与 xlsx 中均含**会话标题与用户提问原文摘要**，提问最长 300 字，看板内展示默认脱敏，数据文件内为原文截断。分享或提交到仓库前请先检查敏感性。\r\n\r\n打开最新生成的 `workbuddy-usage-status-dashboard-*.html` 即可看到：KPI 卡 + 积分消耗图 + 思考用时图 + 各模型 Token 占比 + 模型效率 + 效率散点 + Top 10 Token消耗会话表 + 每日错误 + 模型成本与费率表 + 单次提问成本榜。四张时序图的横轴会按所选日期范围的跨度自动在「日 / 周 / 月」之间切换，≤120 天按日，120–730 天按周，>730 天按月。日期选择在修改起止日期后看板立即刷新。\r\n\r\n### credit 的来源与可选补充\r\n\r\n**现默认就已精确到每一次调用。** 每天、每个模型的 credit 来自本地会话文件里每一次模型调用的精确积分，按该次调用真正发生的时间归集到当日，不再用之前那种「把一个会话的 credit 整体挂到它首次出现的那天」的做法。\r\n\r\n> ⚠ **1.5.0 之前生成的旧快照和旧归档，其 credit 不可再用。** 旧快照里的 credit 是按会话首现日挂出来的旧口径，与现在的逐日实测值不在同一个口径上。本 skill 在应用历史快照时只取其中的 token 等总量字段，不再采用其 credit。\r\n\r\n#### 可选补充：用量导出 xlsx\r\n\r\n1. 打开 `https://www.workbuddy.cn/profile/plans-usage`，即用量明细表。\r\n2. 选日期范围，最多 1 个月，点导出，得到 xlsx。\r\n3. 运行：`python usage_extractor.py --credit-xlsx 路径/xxx.xlsx`\r\n\r\n**补充逻辑**\r\n\r\n- 只补入**本地没有逐次明细**的日期。\r\n- xlsx 最多含 1 个月；长期趋势以本地逐次明细为准。\r\n\r\n#### 无法归入每日趋势的部分\r\n\r\n- **本地无对话文件的历史会话**：账本里记有 credit，但本地既无逐次明细也无请求记录，无法归到任何一天。看板会以提示条报出这类会话的数量与合计。\r\n- **有 credit 但无 token 明细的日期**：这些天的积分已按实际发生日计入趋势，数值正确；但它们的 token 明细已被 30 天清理机制删除，所以这些天只有积分、没有 token。看 token 曲线时，这几天的数值偏低甚至为 0 属于正常，不是数据出错。看板提示条会列出具体是哪几天。\r\n\r\n## 4. 报告刷新\r\n\r\n数据是静态快照，想更新就再跑一次脚本，重新打开 HTML：\r\n\r\n```\r\npython3 scripts/usage_extractor.py --out ./report\r\n```\r\n\r\n如想每天自动刷新，可用 WorkBuddy 的\"自动化/定时任务\"每天跑这条命令。\r\n\r\n---\r\n\r\n## 5. 指标来源及算法\r\n\r\n每个指标的具体算法见 DATA-GUIDE.md。\r\n\r\n| 指标        | 算法                                                                                                                     | 数据来源                                   |\r\n| --------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |\r\n| 思考用时      | 每条 trace 里 `type=generation` 的 span 时长之和                                                                               | `traces/*/trace_*.json`                |\r\n| 思考效率      | 输出 token ÷ 思考秒数，即 tok/s                                                                                                | `traces/*/trace_*.json`                |\r\n| token 消耗  | `totalTokens`（输入+输出+缓存）按会话/模型/天聚合                                                                                      | `traces/*/trace_*.json`                |\r\n| 缓存命中率     | `totalCachedTokens ÷ totalInputTokens`，若实测 cached>input 自动切换为 `cached/(in+cached)`；按天/模型聚合；模型排行仅收录调用数 ≥ 10             | `traces/*/trace_*.json`                |\r\n| credit 消耗 | 逐次实测：每次模型调用的 `providerData.rawUsage.credit` 按调用时间归日，可再按模型拆分；本地无明细的会话回退账本并单独提示                                          | `projects/*/*.jsonl`，回退 `workbuddy.db` |\r\n| 模型成本与费率   | 成本实况＝该模型积分 ÷ 该模型 token × 100 万；费率结构＝按模型与月份做无截距三元最小二乘，月内再识别低谷时段。表内只列 token ≥ 最大模型的 1/100 的模型；费率进主表需调用数 ≥ 30 且 R² ≥ 0.95 | `projects/*/*.jsonl`                   |\r\n| 单次提问成本    | 按 `conversationRequestId` 汇总该次提问触发的全部模型调用积分，另给集中度统计                                                                    | `projects/*/*.jsonl`                   |\r\n| Top 会话    | 按 token 消耗降序取前 10 个会话，列出标题/token/思考时长/credit/错误数                                                                       | `traces/*` + `workbuddy.db`            |\r\n\r\n---\r\n\r\n## 6. 已知限制\r\n\r\n1. 首跑耗时：首次全量解析 traces 需 10–30 秒。\r\n\r\n2. **全程零网络请求**：脚本不发起任何出站请求。\r\n\r\n3. **WorkBuddy 现只保留最近 30 天的 traces**：超期的逐笔明细会被删除。本 skill 每次运行会自动归档到 `~/.workbuddy/usage-archive/`，之后被清理也不影响看板——但归档只在运行时发生：**请至少每 30 天运行一次**，建议配置每日定时自动化。断档超 30 天期间的逐笔明细无法追溯，首次运行只能看到最近 30 天。被清理日期的每日总量可用 `--seed <旧快照>` 恢复。\r\n\r\n---\r\n\r\n## 7. 故障排查\r\n\r\n| 现象                | 原因 / 处理                                                             |\r\n| ----------------- | ------------------------------------------------------------------- |\r\n| 打开 HTML 显示\"数据未加载\" | 脚本报错中断。重跑 `usage_extractor.py` 看 stderr                             |\r\n| 图表空白但数字在          | 若报错\"缺少 chart.umd.min.js\"，确认该文件与 usage_extractor.py 同在 scripts/ 下后重跑 |\r\n| 数据明显偏少            | 这台机器 traces 少或刚装；或 `--home` 指错了目录                                   |\r\n\r\n---\r\n\r\n## ❓ 常见问题\r\n\r\n**Q：看板里的数字和 WorkBuddy 自己显示的对不上？**\r\n\r\nA：本看板只读取 `~/.workbuddy` 下的本地数据文件，与 WorkBuddy 自身统计口径可能不同——本工具只统计「有 token 消耗的请求」，排除零用量的工作流记账噪声。以本看板口径为准，详见 DATA-GUIDE.md。\r\n\r\n**Q：为什么某天的积分特别高？为什么某天有积分却没有 token？**\r\n\r\nA：积分按每一次模型调用真正发生的时间归日，所以某天高就是那天确实扣了这么多。若某天有积分数值却没有 token，是因为积分明细存在本地会话文件里，而请求级 token 明细放在 traces 目录、已被 WorkBuddy 的 30 天清理机制删除。这类日期会在看板提示条里明确列出，属于正常现象，不是数据出错。详见 `DATA-GUIDE.md` §4.1。\r\n\r\n**Q：跑完脚本数字很少，怀疑报告不完整？**\r\n\r\nA：脚本对损坏或无法解析的 trace 文件会跳过，并在结尾打印「⚠ 数据完整性提示」，看板顶部也会显示黄色提示条，列出被跳过的文件名。提示存在即说明这些 trace 已损坏、相关时段数据会缺失；可去 `~/.workbuddy/traces` 下核对对应文件。\r\n\r\n**Q：为什么不能实时刷新、一直挂着看？**\r\n\r\nA：看板是按需生成的静态 HTML，配套 chart.umd.min.js 需同目录存放，设计上零外网、不常驻进程。要定期更新，可用 WorkBuddy 的「自动化 / 定时任务」每天跑一次抽取命令，见第 4 节。\r\n\r\n**Q：第一次跑很慢？**\r\n\r\nA：全量解析 traces 可能涉及上千文件，只需一次，约 10–30 秒，之后每次都很快。见已知限制第 2 条。\r\n\r\n**Q：为什么看板只覆盖最近 30 天？更早的数据去哪了？**\r\n\r\nA：WorkBuddy 会自动清理 30 天前的本地 traces，已清理日期的对话本身不受影响，只是逐次调用的明细没了。本 skill 每次运行会先把数据归档到 `~/.workbuddy/usage-archive/`，之后被清理也不影响看板；但**归档只在运行时发生**——超过 30 天没运行，断档期间的明细无法追溯。补救：用清理前生成的历史快照执行 `--seed <快照>`，可恢复更早日期的每日总量；并建议配置每日定时自动化，避免再断档。\r\n\r\n**Q：对话里怎么说才能触发这个 skill？**\r\n\r\nA：用自然语言描述「查看 / 生成 WorkBuddy 使用状态」即可，无需记关键词。\r\n\r\n---\r\n\r\n## 8. 适用使用场景\r\n\r\n- AI 工具成本管控：监控 WorkBuddy 的 token/credit 消耗，避免预算超支\r\n- 模型性价比对比：通过模型费率与思考效率横向对比不同模型的实际表现\r\n- 项目用量统计：统计单个项目或会话的 AI 资源消耗，核算项目成本\r\n- Agent 工作效率评估：量化 WorkBuddy 的思考时长、错误率，优化 Agent 配置\r\n- 本地数据可视化：数据不出本机，适合对数据外发有要求的场景\r\n\r\n---\r\n\r\n## 📝 更新日志\r\n\r\n详细版本变更记录请查看 CHANGELOG.md。\r\n\r\n当前最新版本：v1.5.0（2026-09-30）\r\n---\r\n\r\n## 👤 关于作者\r\n\r\n本技能由 WorkBuddy 深度用户开发，专注 AI 工具用量可视化方向。\r\n\r\n- 小红书：@AI监工老冯 - 分享 WorkBuddy 使用技巧与技能更新动态\r\n- GitHub：clancy-feng\r\n- SkillHub：workbuddy-usage-status\r\n- ClawHub：workbuddy-usage-status\r\n\r\n---\r\n\r\n## 💖 支持这个项目\r\n\r\n> 📊 已被 **4000+** WorkBuddy 用户下载使用，覆盖 SkillHub & ClawHub 双平台。\r\n\r\n如果这个工具帮到了你，欢迎：\r\n\r\n- ⭐ 去 GitHub 点个 Star\r\n- 🐛 遇到问题提 Issue\r\n- 📢 分享给你的 WorkBuddy 用户朋友\r\n\r\n**GitHub**：<https://github.com/clancy-feng/workbuddy-usage-status>\r\n\r\n---\r\n\r\n🏆 SkillHub TRACE 评分 4.8/5.0 · ClawHub 搜索 \"WorkBuddy\" 排名第一\n\nFile v1.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn71k620de8zkrxmqxjtdyjmg58b00fm\",\n  \"slug\": \"workbuddy-usage-status\",\n  \"version\": \"1.5.0\",\n  \"publishedAt\": 1790782698651\n}\n\nFile v1.5.0:CHANGELOG.md\n\n# Changelog / 版本历史\n\n## [1.5.0] - 2026-09-30\n\n### 新功能 · 重大突破——Credit 精确到逐次调用\n\n- 此前只能取到会话级 credit 并整体挂到会话首次出现的日期，现在找到了新的线索，终于可以把积分消耗精确到每次会话调用中了。\n- 会话文件不受 WorkBuddy 的 30 天 trace 清理影响，历史 credit 的覆盖面因此比 token 更完整。\n- 看板新增 credit 来源徽标：来自本地逐次明细时显示「逐次实测」，叠加了官方导出补充时显示「逐次实测 + xlsx 补充」。\n- 新增提示条，列出「有 credit 但 token 明细已被清理」的日期，说明这些天积分准确、token 偏低属正常现象。\n- 随之移除上传用量xlsx和token去官方API取数据的功能，`--credit-xlsx` 定位收窄为参考补充：只补入本地没有逐次明细的日期，不再覆盖实测值。\n\n### 新功能 · 模型成本与费率\n\n- 新增「模型成本与费率」卡片，替代原「模型性价比排行」。一张表两组列：成本实况列出调用数、token、credit、每百万 token 积分；费率结构列出非缓存输入、缓存输入、输出三档单价与低谷折扣。\n- 费率由本地逐次明细反推。按模型与月份分组，月内再分标准与低谷两个时段。\n- 进表门槛为 token 达到最大模型的百分之一。标注费率另需调用数不少于 30 次且拟合优度 R² 不低于 0.95，不达标的模型保留在表内显示成本。\n- 有多个费率阶段的模型，行首可展开查看各历史阶段的单价与样本数。\n- 增加优化建议：在任务量可比的模型中比出最省与最贵两条，差异达到 5% 时给出提示。\n\n### 新功能 · 单次提问成本榜\n\n- 新增「单次提问成本榜」卡片，聚合一次提问触发的全部模型调用，列出积分最高的 20 次，字段含日期、时刻、会话、涉及模型、调用次数、积分、占总积分比例。\n- 同时给出集中度：最贵的 1% 与 10% 提问各贡献多少比例的积分。实测样本中，最贵的 10% 提问贡献约 59% 的积分。\n\n### 新功能 · 随报告生成 xlsx\n\n- 每次运行在输出目录同时生成 `usage-full-<时间戳>.xlsx`，与全量 CSV 同源，14 个分区各占一个工作表，首行冻结、列宽按内容自适应，可在 Excel 与在线表格工具里直接打开翻查。\n- CSV 继续生成，两种格式按用途选用。需要写脚本批量取数用 CSV，需要在表格界面里翻查用 xlsx。\n\n### 移除 · 看板内联上传 xlsx\n\n- 看板顶部筛选栏的「上传用量导出 xlsx」按钮已移除，功能收归命令行 `--credit-xlsx`。该按钮原为替代命令行操作而设，但 credit 现已逐次精确，它只在本地缺少明细的日期上起作用，留在看板上容易被误读为必需步骤。\n\n## [1.4.1] - 2026-09-17\n\n### 修复 · 安全审计整改\n\n- 修正文档与实现不一致：读写边界、数据源数量、抽取器模块说明按实际行为更新。\n- 补充用户警告：产物含会话标题与提问原文摘要的敏感性提醒；token 参数只传本地路径、凭证不会进入命令行参数。\n- 收紧触发边界：新增触发词表与典型触发说明。\n\n## [1.4.0] - 2026-09-16\n\n📊 当前状态\n\n- Skillhub & Clawhub 双平台下载突破 2000\n- SkillHub TRACE 评分 4.7（优秀）\n- ClawHub 搜 WorkBuddy 排第一\n\n### ⭐ 支持\n\n如果这个看板帮你看清了 WorkBuddy 的用量，欢迎去 GitHub 点个 Star 支持独立开发 🙏\n\n👉 <https://github.com/clancy-feng/workbuddy-usage-status>\n\n### 新功能 · 随报告生成全量CSV\n\n- 每次运行时，会同步在工作区目录生成包含全量数据的CSV文件，适配系统语种。\n- 之前错误明细独立导出文件功能移除，合并至全量CSV中。\n\n### 新功能 · 缓存命中率面板\n\n- 新增缓存命中率卡片：整体命中率 + 每日趋势 + 按模型排行。\n\n### 新功能 · 产物自动存档复用\n\n- 现Workbuddy只会自动保存最近30天的Trace记录，Skill机制相应修改为会自动归档数据文件，且首次运行后，每次生成会调用之前文件补全数据，界面中加入“安装后每三十天内需运行一次“提醒。\n\n### 改进 · 数据明细按钮显示\n\n- Top10会话和用量高峰显示添加明细按钮，展开可查看更多细节。\n- 提问列默认隐藏，由顶部「显示提问」开关控制。\n\n### 修复 · 文案界面调整\n\n- 优化部分界面布局和文档内容。\n\n## [1.3.3] - 2026-09-09\n\n### 修复 · Bug fix\n\n- 修复 Workbuddy新版导致的生成物在Workbuddy内置浏览器中无法正确渲染内联Chart.js问题，并调整相应文案说明。\n\n### 修复 · 文案调整\n\n- 优化部分文案显示和文档内容。\n\n## [1.3.2] - 2026-09-06\n\n### 修复 · Bug fix\n\n- 修复 `--billing-token-file` 调用官方用量 API 时误引用尚未构建的 `summary` 导致运行时报错。\n\n### 修复 · 文案调整\n\n- 优化部分文案显示和文档内容。\n\n## [1.3.0] - 2026-09-04\n\n### 修复 · 日期范围校验\n\n- 起始日期晚于结束日期时，看板**报错提示**（「起始日期不能晚于结束日期，请修正」）。\n\n### 新功能 · 精确积分统计入口更新\n\n- 新增 `--billing-token-file <路径>`：用户从浏览器 DevTools 手动复制用量 API 的鉴权头（如 `Cookie: ...` 整行，或 `Authorization: Bearer ...`）后，skill 以该 凭证调用官方用量 API 精确 credit，效果与 `--credit-xlsx` 一致。\n- 顶部筛选栏新增「上传用量导出 xlsx」按钮：在浏览器里直接选文件即可覆盖每日 credit，**效果与 `--credit-xlsx` 完全一致**，无需跑命令。\n\n### 新功能 · 错误明细 CSV 导出\n\n- 错误明细卡片新增「导出 CSV」按钮：将 6 类分类统计（高频错误信息 / 按类型 / 按工具 / 按模型 / 按会话 / 近期错误样本）合并导出为单个 CSV，带分节标题与全量错误总数注释。\n- 无错误数据时按钮自动禁用，点击不会导出空文件。\n\n### 新功能 主题与配色切换 🎨\n\n- 新增明暗主题切换（Light/Dark Mode/跟随系统）\n- 新增多套图标配色显示方案\n\n### 修复 · 文案调整\n\n- 优化部分文案显示和文档内容。\n\n## [1.2.6] - 2026-08-26\n\n### 修复 · 指标文案与口径说明\n\n- **思考效率散点图提示语**：优化修正散点图效率描述提示语。\n- **表格数字列**：由右对齐改为左对齐，数字与列标题左缘对齐，优化排版。\n- **模型性价比表口径说明**：credit 与 token 均按会话主模型归因，会话内跨模型使用时数值存在归因偏差；\n\n### 修复 · 性价比表单位与精度\n\n- **credit/1k 单位放大为 credit / 10万 token**：数值放大 100 倍并保留 2 位小数，结果呈现为 0.24、0.35、6.07 等可读量级，不再出现整列 0。\n- **0 值行不展示**：credit/10万token 为 0 的模型无性价比比较意义，整行从排行表中过滤。\n\n### 修复 · 用量高峰探查显示逻辑\n\n- 排序依据改为 token，**会话列表**、模型显示、credit信息优化。\n\n## [1.2.2] - 2026-08-19\n\n### 修复 · 日期选择交互逻辑\n\n- **移除「更新」按钮**：日期选择器修改后看板本就实时刷新，原按钮却执行\"重置回默认范围\"逻辑，点它反而把筛选弹回初始窗口，语义误导。已移除按钮，筛选改为纯实时生效。\n\n### 改进 · 产出物命名\n\n- **产出物 HTML 文件名带时间戳**：自包含看板命名改为 `workbuddy-usage-status-dashboard-<YYYYMMDD-HHMMSS>.html`，每次生成独立文件，不再覆盖旧报告，便于保留多份并对比。\n\n## [1.2.1] - 2026-08-12\n\n### 修复 · 安全审计发现\n\n- **本地 XSS 注入（Intent-Code Divergence）**：`renderWarnings()` 曾将 `T.warnings[].detail` 直接拼入 `innerHTML`，而该字段包含被跳过的 trace 文件名（磁盘文件名可被构造注入 HTML）；会话表的 `x.status`（来自 trace 元数据）同样未转义。两处均改为经 `esc()` HTML 转义，杜绝打开看板时执行注入脚本。\n- **触发词收紧**：原自然语言触发过宽，存在误触发 / 触发劫持风险。将触发范围明确收束到「仅 WorkBuddy 自身本机用量」，并在 SKILL.md / README 增加显式负面清单。\n\n## [1.2.0] - 2026-08-10\n\n### 改进 · Token 与 Credit 的权重和分析思路\n\n- **token 确立为权威主指标**：本地 trace 自带精确时间戳与 token 拆分，按请求 `startedAt` 的本地时区归日，当日统计，看板首张卡片改为「每日 Token 消耗」。\n- **credit 降为次要估算并明确标注**：看板「每日积分消耗」卡片与 KPI 的 credit 均带「本地估算 ≈」标识。\n- **跨天 credit 归因回退为「归首日」**：整个会话 credit 归因到它首次出现的那天——绑在会话起点、**绝不污染后续免费/无消费日**，精确每日 credit 分析由下述 `--credit-xlsx` 实现。\n\n### 改进 · 数据完整性可见性\n\n- 抽取器新增跳过记录计数器：损坏/无法解析的 trace 文件、credit_json 解析失败的会话，不再静默吞掉。\n- 结尾打印「⚠ 数据完整性提示」并列出被跳过的文件名；生成的自包含 HTML 顶部新增黄色提示条（读取 `USAGE_STATUS.warnings`）同步展示，用户一眼可知报告是否完整。\n\n### 新增 · 可选参数 `--credit-xlsx`\n\n- 传入从 `workbuddy.cn` 用量页导出的 xlsx，看板用服务端精确 credit 覆盖对应日期窗口内的每日 credit；未覆盖日期仍为本地估算（归首日）。\n- 传入 `--credit-xlsx` 后，抽取器把 xlsx 实际覆盖的日期窗口（`credit_xlsx_date_min/max`）写入 `summary`；看板默认选中范围自动收敛到该窗口（聚焦 credit 精确的区间）。\n- xlsx 读取为标准库实现（zipfile + XML 解析），不依赖 openpyxl，不破坏零依赖特性。\n- 用途定位：仅用于\"查清某月精确花费 / 对账\"（xlsx 最多含 1 个月，且无法归因到会话）；长期趋势仍以 token 为准。不加该参数时技能零额外操作、全本地运行。\n\n### 增强 · 时间轴自适应粒度\n\n- 时间轴自适应粒度：四张时序图（每日 Token / credit / 思考用时 / 错误数）的横轴按**当前筛选范围跨度**自动切桶——≤120 天按日、120–730 天按周（周一为周起始）、>730 天按月，避免数据累积两三年后横坐标过密、标签重叠；聚合方式为周期求和，卡片标题（\"每日/每周/每月 …\"）与副标题（\"聚合粒度：按日/按周/按月\"）同步更新，缩放日期筛选时实时重算。\n\n### 增强 · 常见问题解答\n\n- Readme中加入FAQ（常见问题解答）段落，回答了数据质量、触发方式等常见问题。\n\n### 已知限制\n\n- credit 本地估算：本地 `credit_json` 与服务端有偏差，且本地无逐日时间戳、只能「归首日」近似。精确值需 `--credit-xlsx`。\n- token 始终精确，是看板的核心价值来源。\n- 同 1.1.0：credit 仅到会话级；快照式（手动/定时刷新）；首跑全量解析约 10–30 秒。\n\n---\n\n## [1.1.0] - 2026-08-09\n\n### 新增 · 日期区间筛选（Date Range Filter）\n\n- 看板顶部新增「起始日期 / 结束日期」选择器 + 重置按钮。\n- 筛选后联动更新：KPI 数字、每日 credit/思考用时/错误数折线图、模型 Token 占比、模型思考效率、Top 会话表、模型性价比排行及优化建议。\n\n### 新增 · 模型性价比排行（Model Cost Ranking）\n\n- 看板新增「模型性价比排行」表格，按 `credit_per_1k_tokens` 升序（越靠前越省）；展示会话数 / 总 token / 总 credit / 每千 token credit。\n- 自动产出优化建议（如「在可比任务量下切换至 deepseek-v4-flash 相比 hy3 预计节省约 67% credit」），自动排除 `preview`/`agent` 变体与 `auto`，仅比较样本量 ≥1000 万 token 的模型。\n- 自动标记 `credit=0` 且 token 不少的模型为「限免/促销」，优化建议排除零 credit 模型并单独提示可能处于促销期。\n\n### 新增 · 用量高峰探查（替代原「异常警报」）\n\n- 新增 `spike_days`：按每日 credit 自动选出明显高用量日（高于所有日中位数的 2 倍且 ≥50，最多 6 天；满足条件的高用量日不足 3 天时，兜底取 credit 最高的 3 天）。\n- 对每一天逐日拆解：主导会话（标题/模型/当日 credit/token，按会话首次出现日归因，与每日 credit 口径一致）、模型 token 构成 Top5、错误率、平均 calls/请求、最大单次请求 token——精确到天，回答\"哪一天花了多少、由什么任务造成\"。\n- 主导会话采用 50 倍比例规则过滤：仅显示在当日峰值会话 credit 的 1/50 及以上的会话（峰值与最小显示值差距 ≤50 倍），自动隐藏个位数等小额噪音；零积分会话与不足峰值 1/50 的小额会话合并一行说明（不丢失信息）。\n\n### 改进 · 图表与呈现\n\n- 「各模型 Token 占比」改为 Top 10 + 其他，避免图例爆炸。\n- 「各模型思考效率」不再合并「其他」，避免聚合后效率虚高、排名失真。\n- 「Top 会话」固定为 Top 10 会话（按 token 消耗）。\n- 卡片顺序调整：「用量高峰探查」置于「Top 10 会话」之下，阅读顺序 总览 → 明细 → 高峰日拆解。\n- 「模型 token 构成（Top5）」渲染时过滤 token=0 的条目（如 `unknown 0`），不再展示无意义零值。\n\n### 新增 · 中英双语 + 语言切换\n\n- 右上角语言切换按钮（中/EN），基于 localStorage 记忆；卡片标题、提示、KPI、表头、用量高峰拆解、优化建议、底部说明均已双语化，默认中文。\n- Dashboard 标题改为「Workbuddy使用数据看板」（英文 WorkBuddy Usage Data Dashboard）。\n\n### 修复 · 口径与单位\n\n- 「每日思考用时」卡片标题补回（小时）单位。\n- KPI 区新增「总 Credit」一项，6 项填满栅格。\n- 页面说明类文字精简；数据口径 / 计算方法 / 参数含义统一迁移至独立的 `DATA-GUIDE.md`，页面底部改为指针「报告数据说明见 DATA-GUIDE.md」。\n\n### 已知限制\n\n- 用量统计仅计入有 token 消耗的有效 trace，零 token 工作流记账（噪声）排除；有效 trace 的 `sessionId` 与 `sessions` 表 100% 对应，会话级归因完整，无「覆盖率稀释」问题。宏观总量/每日趋势/模型占比来自有效 trace 与 `session_usage` 表，完整准确。\n- `credit_json` 仍只能到会话级，无法精确拆分到单次 generation span。\n\n---\n\n## [1.0.0] - 2026-07-22\n\n### 初始发布\n\n- 离线可视化 WorkBuddy 本地使用数据：总览 KPI（请求数 / 会话数 / 总 token / 思考用时 / 总 credit / 错误数）、每日 token 与 credit 趋势图、按模型分布、Top 10 会话（按 token）、每日错误数。\n- 抽取器 `usage_extractor.py` 仅用 Python 标准库；生成的 HTML 单文件、Chart.js 内联、零外网依赖。\n- 可搬运到其他 WorkBuddy 机器使用。\n\nFile v1.5.0:DATA-GUIDE.md\n\n# 数据与方法说明\r\n\r\n本文档解释 `workbuddy-usage-status` 看板里每一个数字是怎么算出来的、数据从哪来、各个阈值和参数的含义。\r\n\r\n---\r\n\r\n## 1. 数据来源\r\n\r\n看板只读本地文件，有三个数据源：\r\n\r\n| 数据源  | 路径（默认 `~/.workbuddy/`）                           | 提供什么                                                                                     |\r\n| ---- | ------------------------------------------------ | ---------------------------------------------------------------------------------------- |\r\n| 会话库  | `workbuddy.db`（`sessions` 表 + `session_usage` 表） | 会话标题/状态/模型；会话级 credit 账本，用于本地无明细时的回退                                                     |\r\n| 调用轨迹 | `traces/*/trace_*.json`，每个文件对应一次请求               | 每次请求的时长、token 拆分、思考用时、模型、工具调用数、错误数                                                       |\r\n| 会话文件 | `projects/<工作区>/<sessionId>.jsonl`               | 用户提问摘要 `<user_query>`，截 300 字，展示默认脱敏；每次模型调用的模型名与精确 credit `providerData.rawUsage.credit` |\r\n\r\n三个口径的相互关系：\r\n\r\n- Token / 思考用时 / 错误 / 工具调用：来自 `traces/`，按\"一次请求\"逐条统计。\r\n- Credit（积分）：来自 `projects/*/*.jsonl` 里**每一次模型调用**的 `providerData.rawUsage.credit`，带该次调用的时间戳，按调用时间归日。`workbuddy.db` 的 `session_usage.credit_json` 只作为本地无明细会话的兜底来源。\r\n\r\n因此\"某个会话 token 很多但 credit=0\"是正常现象，它是限免模型，见第 6 节。\r\n\r\n---\r\n\r\n## 2. 基础指标口径\r\n\r\n### 2.1 一次请求记录了什么\r\n\r\n每条 trace 对应一次请求。\r\n\r\n- Token 总量 `tokens` = trace 顶层 `totalTokens`。\r\n- 输入 / 输出 / 缓存 token = `modelInfo.totalInputTokens` / `totalOutputTokens` / `totalCachedTokens`。\r\n- 思考用时 `thinking_sec` = 该 trace 里所有 `type=generation`（模型推理）的 span 时长之和，毫秒转秒；工具调用（tool/mcp/function）时长不计入，它是\"模型推理/思考\"的代理指标。\r\n- 工具调用次数 `calls` = `modelInfo.callCount`。\r\n- 错误数 `errors` = trace 里 `status=error` 或带 `error` 字段的 span 数量，按 span 级统计，一次请求可能多个 span 报错。\r\n- 模型名 `model` = `modelInfo.models` 拼接；无则记 `unknown`。\r\n- 会话归属 `session_id` = trace 的 `sessionId`。统计仅计入有实际 token 消耗的 trace；无 token 的工作流记账记录不进入用量基数。在有效 trace 上，`sessionId` 与 `workbuddy.db` 的 `sessions` 表 100% 对应，所有真实用量都能精确归到某个会话。\r\n\r\n### 2.2 聚合口径\r\n\r\n- 按天：以请求 `startedAt` 转本地时区的日期（`%Y-%m-%d`）分组。\r\n- 按模型：以 trace 的 `model` 字段聚合。\r\n- 按会话：以 `session_id` 聚合；会话标题/状态/模型取自 `sessions` 表（`custom_title` 优先于 `title`）。会话集合包含三类：本次扫描到的 trace 所属会话、从归档恢复的已清理 trace 所属会话、只有逐次明细而没有 trace 的会话。后两类补齐后，看板顶部按会话累加的用量合计才与总量字段一致；其中第三类只有 credit，请求数与 token 均为 0。\r\n- Credit **按调用归日**：每一次模型调用的 `providerData.rawUsage.credit` 带该次调用的时间戳，归入当日；`by_day[d].pc` 为真表示该日 credit 来自逐次实测。本地没有对话文件可解析的历史会话，其 credit 无法归日，单列提示。\r\n\r\n---\r\n\r\n## 3. 顶部 KPI\r\n\r\n| KPI       | 计算方式                          |\r\n| --------- | ----------------------------- |\r\n| 总请求数      | `traces` 文件总数                 |\r\n| 总 Token   | 所有请求 `tokens` 之和              |\r\n| 思考用时      | 所有请求 `thinking_sec` 之和，换算成小时  |\r\n| 平均效率      | `总输出 token / 总思考秒数`，单位 tok/s  |\r\n| Credit 消耗 | 每日 credit 之和，每日值来自逐次实测，见 §4.1 |\r\n| 错误数       | 所有请求 `errors` 之和              |\r\n\r\n---\r\n\r\n## 4. 各图表 / 卡片的计算方法与参数\r\n\r\n### 4.1 每日积分消耗\r\n\r\n- **这是精确值**：积分来自本地逐次明细，不是估算，也不再做\"归首日\"处理。\r\n- 可再按模型拆分，每次调用带 `providerData.model`。\r\n- 补入规则：只在本地没有逐次明细的日期上，才用 `--credit-xlsx` 提供的用量导出值补入。命令行加此参数时看板徽标显示「逐次实测 + xlsx 补充」，不加时显示「逐次实测」。\r\n- 两种特殊情况会以提示条报出：① 本地无对话文件的历史会话，其 credit 无法归日；② 只有积分、没有 token 的日期，这些天积分正确、但 token 缺失。\r\n- 1.5.0 之前生成的旧快照与旧归档，其 credit 是按会话首现日挂出来的旧口径，**不再采用**。\r\n\r\n### 4.2 每日思考用时\r\n\r\n- 每日 = 当天所有请求的 `thinking_sec` 之和（小时为单位展示）。\r\n\r\n### 4.3 各模型 Token 占比\r\n\r\n- 按 `model` 聚合 `tokens`，降序。\r\n- Top10 之外合并为「其他」：只展示 token 最多的前 10 个模型标签，其余归入一个\"其他\"扇区。\r\n\r\n### 4.4 主要模型思考效率\r\n\r\n- 公式：效率 = 输出 token / 思考秒数（`output / thinking_sec`），单位 tok/s，越高越\"省时\"。\r\n- 仅列 Top10：效率最高 / token 突出的前 10 个具体模型标签。\r\n- 最小样本门槛 `MIN_EFF_SAMPLES = 10`：一个模型**思考次数 < 10** 时不计入效率排名。\r\n\r\n### 4.5 思考效率散点图\r\n\r\n- 每个点 = 一次请求，横轴=思考用时，纵轴=输出 token。取 token 最大的前 300 次请求以控制体积。\r\n- 读图：右下方 = 高产出 + 低耗时 = 高效率。\r\n\r\n### 4.6 Top 10 会话\r\n\r\n- 按 token 总量降序取前 10 个会话。\r\n- 列：标题 / 模型 / 请求数 / Token / 思考时长 / Credit / 错误 / 状态。\r\n- 下钻：点「查看」按钮展开该会话的**轮次表**。轮次 = 一次 AI 响应，粒度同 trace；本地 trace 无 conversationRequestId 字段。列：时间 / 模型 / 状态 / Token / 输入 / 缓存命中 / 调用数 / 工具数 / 思考时长 / 错误；提问列默认隐藏，勾选「显示提问」展开。\r\n- 提问原文：来自 `~/.workbuddy/projects/<工作区>/<sessionId>.jsonl`，按 sessionId 匹配、取该轮开始前最近一条含 `<user_query>` 的用户消息，截 300 字。展示默认脱敏，邮箱 / 手机号 / 绝对路径 / ≥24 位疑似密钥打码，再截 60 字。\r\n- 每轮「明细」：事件摘要，含生成段数与总时长、工具调用清单及耗时、错误类型与摘要。credit 已精确到每次模型调用，但轮次表不重复列出 credit。\r\n\r\n### 4.7 每日错误数\r\n\r\n- 每日 = 当天所有请求的 `errors`（span 级）之和。\r\n\r\n### 4.8 时间轴自适应粒度\r\n\r\n看板顶部四张时序图，即每日 Token / 每日 credit / 每日思考用时 / 每日错误数，横轴会**根据当前筛选范围的跨度自动切换桶粒度**，避免数据累积到两三年后横坐标过密、标签重叠：\r\n\r\n- 跨度 ≤ 120 天 → **按日**，每日本地时区归日的精确值\r\n- 120 天 < 跨度 ≤ 730 天 → **按周**，以周一为周起始，ISO 周聚合\r\n- 跨度 > 730 天 → **按月**，按 YYYY-MM 聚合\r\n\r\n聚合方式：先按请求 `startedAt` 本地时区归日，再按所选粒度把该周期内的 token / credit / 思考秒 / 错误数**求和**得到周期总量。卡片标题与副标题会同步更新，明确当前展示的是每日值还是周期总量。缩放日期筛选范围时粒度会实时重算。\r\n\r\n### 4.9 错误分类统计\r\n\r\n错误数据的**分类统计**基于**全量** trace 数据，不受日期筛选影响。v1.4.0 起「错误明细」独立卡片已移除：错误趋势看「每日错误数」图，6 类分类统计集中在每次运行生成的全量 CSV 与 xlsx 的错误分区中。\r\n\r\n早期版本只把错误记成「错误数」一个总数，丢弃了每条 span 的具体错误信息。现在的实现把这些信息**还原为可下钻的分类统计**：\r\n\r\n- **高频错误内容**：按错误文本聚合，列出出现次数最多的几条，如 `Error running tool (non-fatal)`，并标注各自出现次数；用于快速定位\"哪个错误最普遍\"。\r\n- **按类型分布**：错误按类别拆分计数，类别包括 tool / generation / mcp / function 等。\r\n- **按工具分布**：触发错误的工具 / MCP / 函数名分布。\r\n- **按模型分布**：出错请求涉及的模型分布。\r\n- **按会话分布**：错误集中在哪些会话。\r\n- **近期错误样本**：列出最近若干条原始错误文本，便于点开具体会话排查。\r\n\r\n这些分类共同回答\"错误主要是什么、由什么工具或模型或会话引发、最近是否还在发生\"，是错误监控的主入口。全量 CSV 的错误分区带 UTF-8 BOM，Excel 直接打开中文不乱码。\r\n\r\n### 4.11 全量数据的两种格式与分区清单\r\n\r\n每次运行同时产出 `usage-full-<时间戳>.csv` 与 `usage-full-<时间戳>.xlsx`，两者内容同源，分区顺序固定如下：\r\n\r\n- **CSV**：14 个分区依次写在一个文件里，适合脚本批量取数。\r\n- **xlsx**：同样的 14 个分区各自成为一个工作表，首行冻结并预设列宽，适合在 Excel 或在线表格工具里翻查。xlsx 由脚本用标准库 `zipfile` 与 XML 自行拼装，不依赖任何第三方库。\r\n\r\nCSV 把 14 个结构不同的分区写进一个文件，且文件首行不是表头。部分在线表格工具先按首行判定列数再渲染，遇到这种结构会解析失败。需要预览或翻查时请用 xlsx。\r\n\r\n| 分区                                   | 内容                                                                              | 对应看板位置             |\r\n| ------------------------------------ | ------------------------------------------------------------------------------- | ------------------ |\r\n| 每日汇总                                 | 日期 / 请求数 / Token / 输入 / 输出 / 缓存命中 / 思考秒 / credit / 错误 / 会话数                     | 时序图与 KPI           |\r\n| 按模型                                  | 模型 / 请求数 / Token / 输入 / 输出 / 调用数 / 思考秒 / 错误 / 效率                                | 模型占比与效率图           |\r\n| 模型成本与费率（当前生效）                        | 模型 / 调用数 / Token / credit / 每百万token积分 / 三档单价 / 低谷折扣 / R² / 生效期间 / 占总积分         | 模型成本与费率表           |\r\n| 模型费率全部阶段                             | 模型 / 生效期间 / 样本数 / 三档单价 / 低谷折扣 / 低谷时段 / R² / 是否可作费率 / 不可用原因                      | 成本表的展开区            |\r\n| 会话清单（前500）                           | 会话 / 标题 / 模型 / 请求数 / Token / 思考分 / credit / 错误 / 状态 / 首现日期                      | Top 会话表（看板只展示前 10） |\r\n| 单次提问成本榜（前20）                         | 日期 / 时间 / 会话 / 标题 / 模型 / 模型调用数 / Token / 提问积分 / 占总积分 / 工作区                      | 单次提问成本榜            |\r\n| 单次提问集中度                              | 提问总数 / credit / 积分中位与最大 / 调用数中位与最大 / 最贵 1% 与 10% 的次数与占比                         | 单次提问成本榜的说明句        |\r\n| 调用明细                                 | 逐笔 trace 的日期 / 时间 / 会话 / 模型 / 状态 / 各口径 token / 调用数 / 工具数 / 思考秒 / 时长 / 错误 / 提问原文 | 下钻轮次表              |\r\n| 错误-高频 / 按类型 / 按工具 / 按模型 / 按会话 / 近期样本 | 六个错误分类分区                                                                        | 无独立卡片，见 §4.9       |\r\n\r\n费率相关的两张表口径不同：**当前生效**那张每行一个模型，取其正在生效的费率阶段；**全部阶段**那张每行一个模型月，含历史阶段与未达标条目，用于追溯费率变化。拟合优度 R² 是判定费率是否可用的依据，CSV 两张表都保留该列；看板主表不显示它，因为能进表的都已达到门槛，未达门槛的已在行内写明原因。\r\n\r\n### 4.10 缓存命中率\r\n\r\n- 口径：缓存命中 token ÷ 输入 token，即 `cached/in`；若实测出现 cached>input 自动切换为 `cached/(in+cached)`，实际口径标注在缓存卡片上。\r\n- 每日趋势：按当前筛选粒度分桶，各桶 `cached` 之和 ÷ `input` 之和。\r\n- 模型排行：仅收录调用数 ≥ 10 的模型，小样本命中率噪声大。\r\n- 含义：命中率越高，同等任务的实际计费输入越少。\r\n\r\n---\r\n\r\n## 5. 用量高峰探查\r\n\r\n### 5.1 选哪几天\r\n\r\n1. 先算每日 token 总量的中位数 `median_tok`，请求级精确到天。\r\n2. 阈值 `thr = max(median_tok × 2, 500 万)`：token 高于中位数 2 倍且至少 500 万的日子，才算\"明显高\"。\r\n3. 满足的日子按 token 倒序，最多取 6 天。\r\n4. 兜底：若满足条件的不足 3 天，则直接取 token 最高的 3 天。\r\n\r\n排序依据从 credit 改为 token。两者都能精确到天，token 按请求 `startedAt` 归日，更贴近「用量高峰」的直觉，所以作为主排序键。\r\n\r\n### 5.2 每天的拆解字段\r\n\r\n对每个入选日，逐日给出：\r\n\r\n- 当天会话：当天有请求的全部会话，不再限\"首次出现日\"；按当天 token 降序，模型列显示当天实际请求的全部模型，按 token 降序、逗号分隔，会话内跨模型时与右侧构成对齐。\r\n- 模型 token 构成 Top5：当天所有请求按 `model` 聚合 token，取前 5，token=0 的不显示。\r\n- 错误率 = 当天 `errors / 请求数 × 100%`。\r\n- 均 calls/请求 = 当天总 `calls / 请求数`，高则可能反复调用。\r\n- 最大单请求 = 当天单次请求的最大 `tokens`。\r\n\r\n会话表与「模型 token 构成」都统计当天全部请求，左右 token 总额相等，可对账。\r\n\r\n### 5.3 会话显示上限\r\n\r\n- 当天会话按 token 倒序，最多显示 8 个；超过 8 个时，其余在表下标注「另有 N 个会话，合计 X token，未列入」。\r\n\r\n---\r\n\r\n## 6. 模型成本与费率\r\n\r\n这张卡片把「用量」与「价格」并排放在同一张表里，表头分成「成本实况」与「费率结构」两个分组。分开的理由是两者的可运算性不同：用量是可以加总的事实，费率是不可加总的价格，跨模型把费率相加没有意义。\r\n\r\n### 6.1 成本实况\r\n\r\n- 数据取自本地会话文件里每一次模型调用的 `providerData.rawUsage`，即 `prompt_tokens`、`prompt_cache_hit_tokens`、`completion_tokens`、`credit`。\r\n- **模型归属按每次调用自带的模型名**，不再使用会话级模型标签。\r\n- 公式：`每百万 token 积分 = 该模型积分合计 ÷ 该模型 token 合计 × 1e6`，越低越省。\r\n- 这一列是**实际发生的平均值**，受任务形态影响：缓存命中占比高的模型均值天然低，输出占比高的模型均值天然高。它不是模型单价。\r\n- 过滤：`unknown` 模型与 token 为 0 的行不进入；积分恒为 0 的免费模型排在最后。\r\n\r\n### 6.2 费率结构\r\n\r\n- 按模型与月份分组做无截距三元最小二乘：`积分 = a × 非缓存输入 + b × 缓存输入 + c × 输出`，系数单位是积分每百万 token。\r\n- 月内再识别时段：逐小时比较实际费率与该月整体基准，明显偏低的小时判为低谷，输出低谷折扣与低谷时段。\r\n- **只用扣过费的调用拟合**。限免期的零积分调用会把斜率拉平，剔除后拟合优度显著回升。\r\n- 费率是价格，不参与任何聚合。\r\n\r\n### 6.3 两道门槛\r\n\r\n先卡展示范围，再卡费率可用性。\r\n\r\n**第一道：进表门槛。** 只列出 token 达到最大模型百分之一以上的模型。用意是滤掉只试过几次、不构成成本讨论的长尾模型，它们会撑长表格却不影响任何结论。同一门槛也用于 §6.5 的优化建议，因此「表里出现的模型」与「参与建议的模型」始终是同一批。\r\n\r\n**第二道：费率可用门槛。** 进表之后，须同时满足**调用数 ≥ 30** 且**标准档拟合优度 R² ≥ 0.95**，才标注费率。\r\n\r\n- 识别低谷折扣另需：标准档与低谷档各自 R² ≥ 0.90，且低谷价 ÷ 标准价 ≤ 0.70。\r\n- 不达标的模型仍留在表内显示成本，费率列写「费率不可用」，并在同一格内写明原因：样本不足 / 费率有波动 / 路由模型 / 限时免费。\r\n- 拟合优度在小样本下会虚高，三个参数配四个点几乎必然完美拟合，所以门槛必须同时卡样本数。\r\n- R² 的数值本身不在看板上显示，判定依据保留在 CSV 的两张费率表里。\r\n- 费率阶段不能用日期切分来收敛：费率既随月份变也随小时变，日级数据混合两档且比例逐日不同，实测按日期递归切分到 13 段仍有 9 段不达标。判据作用在「月 × 时段」这一层。\r\n\r\n### 6.4 历史费率\r\n\r\n- 有多个费率阶段的模型，行首有折叠标记，展开后显示各历史阶段的费率与样本数，并标明该行是整段时期的汇总值、不按月拆分。\r\n- 默认只显示当前生效的那一期。限免模型没有费率阶段，不显示折叠标记。\r\n\r\n### 6.5 优化建议\r\n\r\n- 在可比任务量的通用模型中排除 `auto`、`unknown`、`preview`、`agent` 以及积分为 0 的模型，取每百万 token 积分最便宜与最贵的两条。任务量门槛沿用 §6.3 的进表门槛，不另设数值。\r\n- 预计节省 = (最贵 − 最便宜) ÷ 最贵 × 100%，达到 5% 才给出建议。\r\n- 文案明确写出这是实际平均值、受任务形态影响、不是模型单价。\r\n\r\n---\r\n\r\n## 6A. 单次提问成本榜\r\n\r\n- 聚合单位是 `providerData.conversationRequestId`，也就是一次提问。一次提问会触发多次模型调用，积分是这些调用的合计。\r\n- 输出最贵的 20 次，字段为日期、时刻、会话、涉及模型、调用次数、积分、占总量比例。\r\n- 同时给出集中度：最贵的 1% 与 10% 提问各贡献了多少比例的积分。\r\n- 用途是定位真正费钱的那几次提问，不必笼统地减少使用。中位与最大值之间通常差几个数量级。\r\n- 会话标题取自 `sessions` 表；工作区取自调用行自带的 `cwd`。\r\n\r\n---\r\n\r\n## 7. 参数 / 阈值速查表\r\n\r\n| 参数 / 阈值                           | 含义 / 当前值                    |\r\n| --------------------------------- | --------------------------- |\r\n| `median_tok × 2` 与 `500 万`        | 高用量日门槛：取两者较大值               |\r\n| `top 6` / 兜底 `top 3`              | 入选高用量日上限 / 兜底数量             |\r\n| `会话 top 8`                        | 每天拆解的会话显示上限，超出在表下标注         |\r\n| `Top10`                           | Token 占比扇区、效率图、Top 会话的取数上限  |\r\n| `token ≥ 最大模型 ÷ 100`              | 模型成本与费率表的进表门槛，同时用于优化建议与限免提示 |\r\n| `调用数 ≥ 30` 且 `R² ≥ 0.95`          | 费率可用门槛，进表后须同时满足才标注费率        |\r\n| 两档 `R² ≥ 0.90` 且 `低谷 ÷ 标准 ≤ 0.70` | 识别低谷折扣的门槛                   |\r\n| `最贵 20 次提问`                       | 单次提问成本榜的显示条数                |\r\n| 每百万 token 积分节省 `≥ 5%`             | 触发优化建议的最小差异                 |\r\n| `前 300 次请求`                       | 散点图取样上限，用于控体积               |\r\n| `前 500 会话`                        | `by_session` 输出上限，用于控体积     |\r\n\r\n---\r\n\r\n## 8. 已知数据统计限制\r\n\r\n1. Credit 与 Token 独立统计：credit 走会话文件里逐次调用的计费口径，token 走 `traces` 实际用量；模型限免期 token 照常计、credit=0。\r\n2. 用量统计以「有效 trace」为基数，无覆盖率缺口。有效 trace = 有实际 token 消耗的 trace，已排除工作流记账噪声数据。在有效 trace 上，`sessionId` 与 `sessions` 表 100% 对应，因此会话与模型下钻、总量、每日趋势、错误数均为完整真实用量。\r\n3. 思考用时是代理指标，为 generation span 时长之和，不含工具调用与等待。\r\n4. 错误率按 span 级统计：一次请求多个 span 报错会重复计入，错误率可能高于单个请求的失败率。\r\n5. 每日 credit 与每日 token 的覆盖范围不同：credit 来自会话文件，不在清理名单内，覆盖更全；token 来自 traces，保留 30 天。因此会存在「只有积分、没有 token」的日期。这些天的积分已按实际发生日计入且数值正确，但 token 缺失，看 token 曲线时这些天偏低甚至为 0 属正常。看板提示条会列出具体日期。\r\n6. WorkBuddy 对本机 `traces/<pid>` 目录做 30 天保留清理，daemon 按目录 mtime 整目录删除，正在写入的目录因 mtime 新鲜而整体幸存。本 skill 每次运行自动归档，按 traceId 去重，然后再聚合：被清理日期的**每日总量**可由归档或历史快照（`--seed`）恢复，但其**逐笔明细**不可恢复，这些日期的下钻数据不完整。\r\n\r\n---\r\n\r\n## 9. 输出文件\r\n\r\n脚本在输出目录，即同目录或 `--out` 指定目录，生成：\r\n\r\n- `usage-status.json`：原始聚合数据，供调试与二次处理。\r\n- `usage-status.js`：`window.USAGE_STATUS = {...}`，供 HTML 直接 `<script>` 引入。\r\n- `workbuddy-usage-status-dashboard-<时间戳>.html`：离线看板，文件名带生成时间戳，每次生成独立文件，便于保留多份对比。\r\n- `usage-full-<时间戳>.csv`：全量数据 CSV。\r\n- `usage-full-<时间戳>.xlsx`：全量数据 xlsx。\r\n- 上述数据文件均含**会话标题与用户提问原文摘要**，提问最长 300 字，看板内展示默认脱敏。分享或提交前请先检查敏感性。\r\n\r\n运行：`python usage_extractor.py [--out 目录] [--home ~/.workbuddy]`\r\n\r\n---\n\nFile v1.5.0:skill-card.md\n\n## Description:\n\nCreates an offline dashboard and data exports from a user's local WorkBuddy usage records, including token and credit consumption, model trends, and errors.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[clancy-feng](https://clawhub.ai/user/clancy-feng)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nWorkBuddy users review their own local usage, identify high-cost sessions and model trends, and export reports for private analysis.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Reading local WorkBuddy history and exporting session titles and prompt excerpts can expose sensitive information.\n\nMitigation: Keep generated HTML, JSON, JavaScript, CSV, and XLSX reports private; sanitize them before sharing or using cloud spreadsheet viewers.\n\nRisk: Default local archiving retains usage history beyond the source trace retention period.\n\nMitigation: Use --no-archive when retained local history is not wanted.\n\nRisk: The skill requests network permission despite claiming offline operation.\n\nMitigation: Review the requested permission before installation; the publisher should remove it or explain why it is needed.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/clancy-feng/skills/workbuddy-usage-status)\n- [Data and methodology guide](DATA-GUIDE.md)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, Shell commands, Files]\n\n**Output Format:** [Markdown guidance and a local HTML dashboard with JSON, JavaScript, CSV, and XLSX exports]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Reports can include session titles and prompt excerpts; keep exports private.]\n\n## Skill Version(s):\n\n1.5.0 (source: frontmatter, CHANGELOG, server release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.5.0:LICENSE\n\nMIT License\r\n\r\nCopyright (c) 2026 Clancy\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\n\nArchive v1.4.1: 15 files, 2542934 bytes\n\nFiles: assets/dashboard-preview-1.png (661215b), assets/dashboard-preview-2.png (605875b), CHANGELOG.md (12451b), dashboard-preview-1.png (661215b), dashboard-preview-2.png (605875b), DATA-GUIDE.md (15562b), LICENSE (1084b), README.md (24008b), scripts/chart.umd.min.js (205399b), scripts/dashboard_template.html (67809b), scripts/usage_extractor.py (59272b), scripts/verify_credit_xlsx.py (6357b), skill-card.md (3090b), SKILL.md (13797b), _meta.json (141b)\n\nFile v1.4.1:SKILL.md\n\n---\r\nname: \"workbuddy-usage-status\"\r\nslug: workbuddy-usage-status\r\ndisplayName: \"WorkBuddy 使用状态看板\"\r\nversion: 1.4.1\r\ndescription: \"离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为本地估算，涵盖思考效率、模型分布与性价比、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、默认零外网依赖、可搬运；可选 --credit-xlsx 用用量导出精确覆盖 credit，或可选 --billing-token-file（用户手动导出 token，opt-in）调用官方用量 API 拉取精确 credit。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit as local estimate, covering thinking efficiency, model distribution & cost-performance, date-range filtering, error monitoring, usage-spike inspection. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local, default zero-network; optionally --billing-token-file (user-supplied token, opt-in) calls the official usage API for precise credit, or --credit-xlsx overrides credit with precise export values.\"\r\nagent_created: true\r\nlicense: MIT\r\nsummary: \"离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为本地估算，涵盖思考效率、模型分布与性价比、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、默认零外网依赖、可搬运；可选 --credit-xlsx 用用量导出精确覆盖 credit，或可选 --billing-token-file（用户手动导出 token，opt-in）调用官方用量 API 拉取精确 credit。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit as local estimate, covering thinking efficiency, model distribution & cost-performance, date-range filtering, error monitoring, usage-spike inspection. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local, default zero-network; optionally --billing-token-file (user-supplied token, opt-in) calls the official usage API for precise credit, or --credit-xlsx overrides credit with precise export values.\"\r\ntrigger:\r\n  - 查看 WorkBuddy 使用状态\r\n  - 生成 WorkBuddy 用量看板\r\n  - 导出 WorkBuddy 用量数据\r\n  - WorkBuddy token 消耗统计\r\n  - WorkBuddy 积分消耗 / 对账\r\n  - WorkBuddy 模型分布与性价比\r\n  - WorkBuddy 用量高峰 / 错误监控\r\nallowed-tools: python3, read_file, write_file\r\npermissions:\r\n\r\n- file_read\r\n- file_write\r\n- network\r\n  metadata:\r\n  clawdbot:\r\n  emoji: \"📊\"\r\n  requires:\r\n    bins:\r\n\r\n      - python3\r\n\r\n  requires.env: []\r\n\r\n---\r\n\r\n# \r\n\r\n## 💖 支持这个项目\r\n\r\n> 📊 已被 **2000+** WorkBuddy 用户下载使用，覆盖 SkillHub & ClawHub 双平台。\r\n\r\n如果这个工具帮到了你，欢迎：\r\n\r\n- ⭐ 去 GitHub 点个 Star（这是对我最大的鼓励）\r\n- 🐛 遇到问题提 Issue\r\n- 📢 分享给你的 WorkBuddy 用户朋友\r\n\r\n**GitHub**：<https://github.com/clancy-feng/workbuddy-usage-status>\r\n\r\n## 界面预览\r\n\r\n![preview](https://raw.githubusercontent.com/clancy-feng/workbuddy-usage-status/refs/heads/main/assets/dashboard-preview-1.png)\r\n\r\n## 技能简介\r\n\r\n把 WorkBuddy 自己的本地使用数据，变成一份离线可查的 Dashboard。\r\n\r\n可以看到：token 消耗、思考用时、思考效率、模型分布、错误数、credit 消耗。\r\n\r\n## ✨ 核心功能特性\r\n\r\n- Token/Credit 全链路可视化：按模型、按日期、按会话统计，一眼定位\"烧钱大户\"\r\n- 用量高峰探查：按 token 列出最高的几天，单行简介（token/credit/请求/会话/错误率）+「明细」展开当天会话表与模型 Top5，帮你快速定位消耗集中日\r\n- 思考效率量化：输出 token ÷ 思考秒数（tok/s），横向对比模型性价比\r\n- 错误集中监控：快速定位报错频繁的会话/模型，降低调试成本，可导出错误详情。\r\n- 离线运行：Chart.js 随包附带，零外网依赖\r\n- 缓存命中率面板：整体与按模型命中率趋势，看清\"谁在帮你省钱\"（口径 cached/input，自动判定并标注）\r\n- 三级下钻（Top10 会话 →「查看」）：轮次表含时间 / 模型 / 状态 / Token / 输入 / 缓存命中 / 调用数 / 工具数 / 思考(分) / 错误；提问列默认隐藏，勾选「显示提问」展开（脱敏展示）；每轮再点「明细」= 事件摘要（生成段数与总时长、工具调用清单及耗时、错误类型与摘要）\r\n- 全量 CSV 同步生成：每次运行自动产出 `usage-full-<时间戳>.csv`（每日汇总 / 按模型 / 会话清单 / 调用明细 / 错误六分区），表头与分区名语言自动跟随操作系统语言切换\r\n- 自动归档合并：每次运行自动把逐笔数据并入本地归档（traceId 去重），WorkBuddy 30 天清理 trace 也不再丢历史——对用户完全透明，`--no-archive` 可关\r\n- 只读无侵入：以只读模式访问 WorkBuddy 数据，不影响正在运行的程序\r\n- 跨平台兼容：支持 Windows/macOS/Linux，Python 3.10+ 即可运行\r\n\r\n## WorkBuddy Usage Status —— Agent 执行指令\r\n\r\n本文件是给 AI 的执行说明书，用户视角的安装、读图、故障排查见 `README.md`；指标算法口径见 `DATA-GUIDE.md`。\r\n\r\n## 触发条件\r\n\r\n当用户**明确指向 WorkBuddy 自身**、表达以下意图时调用本技能。description 已含触发词，此处强化判断与收紧边界：\r\n\r\n- 想查看 / 生成 / 导出**自己的 WorkBuddy** 使用统计、工作量、成本看板；\r\n- 关心 token 消耗、模型分布与性价比、思考效率、错误监控、用量高峰日等任一维度在 WorkBuddy 本机 trace 中的数据；\r\n- 想对账某段时间 WorkBuddy 用了多少积分（credit）。\r\n\r\n典型触发说法（示例，非穷举）：「看看我的 WorkBuddy 用了多少 token」「生成 WorkBuddy 用量看板」「WorkBuddy 积分消耗对账」「哪个模型最划算」「哪天用量最高」。命中任一具体说法即触发；只有泛指「做个统计图表」且未指向 WorkBuddy 本机用量时不易触发。\r\n\r\n**反向触发词**：用户意图指向以下任一情况时，本技能不适用，应直接告知用户而非静默跳过：\r\n\r\n- 想查看 / 统计**其他产品**（如 Cursor、VS Code、Trae、Claude 等任意第三方系统）的用量、数据、分析；\r\n- 仅泛指\"导出我的数据 / 做个统计图表 / 生成看板\"，未明确指向 WorkBuddy 本机用量；\r\n- 想为任意数据集生成通用可视化 / 报表；本技能只读取 `~/.workbuddy` 下的数据文件，不具备通用图表能力。\r\n\r\n遇到上述情况，回复要点：本技能只读取并可视化 WorkBuddy 本机（`~/.workbuddy`）的使用数据，不涉及其他产品或通用数据；请确认是否要分析 WorkBuddy 自身用量，或改用对应产品的工具。\r\n\r\n## 执行步骤\r\n\r\n抽取器仅依赖 Python 标准库，运行前无需 pip 安装任何包。在技能目录下运行：\r\n\r\n```\r\npython3 scripts/usage_extractor.py [--out <输出目录>] [--home <数据根>] [--credit-xlsx <路径>] [--billing-token-file <路径>] [--seed <旧快照>] [--no-archive]\r\n```\r\n\r\n- `--out <dir>`：输出目录，默认当前工作目录。\r\n\r\n- `--home <dir>`：指定数据根目录，默认 `~/.workbuddy`；此参数仅用于迁移或测试，会改变实际读取路径，日常使用不要加。\r\n\r\n- `--credit-xlsx <path>`：传入从 `workbuddy.cn` 用量页导出的 xlsx，用服务端精确 credit 覆盖对应日期窗口；用于\"查清某月精确花费/对账\"。默认不主动使用，仅当用户明确要求精确 credit 时再加。\r\n\r\n- `--billing-token-file <path>`：Path A（opt-in，默认关闭）。用户从自己浏览器 DevTools 手动复制用量 API 的鉴权头（如 `Cookie: ...` 整行，或 `Authorization: Bearer ...`）存入本地文件后传入，skill 以该 token 调用官方用量 API（`/billing/meter/get-user-request-usage`）拉取逐请求精确 credit，效果同 `--credit-xlsx` 但无需先导出 xlsx。**token 必须由用户显式提供，skill 绝不自动读取宿主 App 凭据存储**；不传此参数时零网络。详见 README「精确化 credit（可选）」与 `CHANGELOG.md` 安全等级评估。该参数只传**本地文件路径**；凭证本体保存在该文件内，不会出现在命令行参数中。\r\n\r\n- `--seed <path>`：旧快照种子（`usage-status.json` 或历史 dashboard HTML）。一次性导入其每日总量进入持久覆盖层，恢复已被 WorkBuddy 30 天清理的日期（逐笔明细不可追溯）。导入后持久生效，无需重复传入。\r\n\r\n- `--no-archive`：禁用自动归档合并（默认开启，不建议）。\r\n  \r\n  > ⚠️ **用户侧 token 安全提醒**：该 token 文件等同于你的 WorkBuddy 会话凭证，**请当作密码保管**——① 不要提交到任何 Git 仓库 / 云盘 / 聊天工具；② 限制文件权限（如 `chmod 600`），用完即删或在 workbuddy.cn 退出登录使其失效；③ 不要分享给他人，也不要长期留存明文。skill 只在使用该参数时联网一次，且绝不自动读取宿主 App 的凭据存储。\r\n\r\n执行后在该目录生成 5 个文件：\r\n\r\n- `workbuddy-usage-status-dashboard-<时间戳>.html` —— 数据内联、Chart.js 外链，双击/预览即可看，零外网依赖；文件名带生成时间戳，每次生成独立文件，不覆盖旧报告；\r\n- `usage-status.json` —— 原始聚合数据，供二次处理；\r\n- `usage-status.js` —— `window.USAGE_STATUS = {...}`，供 HTML 通过 `<script>` 直接引入，以此避开 `file://` 的 fetch 跨域限制。\r\n- `chart.umd.min.js` —— 图表引擎，由抽取器从 skill 包复制到输出目录，需与 HTML 同目录存放。\r\n- `usage-full-<时间戳>.csv` —— 全量数据 CSV（每日汇总 / 按模型 / 会话清单 / 调用明细 / 错误分区），与看板同源；内置浏览器无法下载 CSV 时直接取用此文件。\r\n\r\n> ⚠ **产物敏感性提醒**：`usage-status.json` / `usage-status.js` / dashboard HTML / 全量 CSV 中均含**会话标题与用户提问原文摘要**（提问最长 300 字；看板内展示默认脱敏，数据文件内为原文截断），分享或提交到仓库前请先检查敏感性。\r\n\r\n> ⚠ **30 天缓存期（重要）**：WorkBuddy 现对本机 traces 只保留 **30 天**，本 skill 每次运行会自动把数据归档到 `~/.workbuddy/usage-archive/`，之后无论 trace 是否被清理，看板始终是全量视图——**但归档只在运行时发生**，所以需至少每 30 天运行一次，建议设置自动任务，断档超 30 天期间的 trace 无法追溯；首次运行只能看到最近 30 天。可用 `--seed <旧快照>` 导入历史快照恢复更早的每日总量。\r\n\r\n## 交付方式\r\n\r\n生成完成后，在输出目录找到最新生成的 `workbuddy-usage-status-dashboard-*.html`，按文件名时间戳取最大者，用 `present_files` 打开预览交回给用户。\r\n\r\n## 约束与口径\r\n\r\n- 读写与网络边界：① **读**——仅以只读模式读 `~/.workbuddy` 下的 `workbuddy.db`、`traces/`、`projects/*/*.jsonl`（仅提取 `<user_query>` 提问摘要供下钻显示），不修改 WorkBuddy 自身数据、不上传任何数据、不读取任何 API key/密码；② **写**——仅在输出目录生成 5 个产物文件，并在 `~/.workbuddy/usage-archive/` 维护本地归档以对抗 30 天 trace 清理（`--no-archive` 可关闭）；③ **网络**——默认零外部请求，**仅当用户显式传入 `--billing-token-file` 时**才向官方用量 API（`workbuddy.cn`）发起一次出站 HTTPS 请求，且鉴权凭据由用户提供（绝不自动读取宿主 App 凭据存储）；不传该参数时完全离线。\r\n- 指标口径：token 为权威主指标，本地 trace 带精确时间戳，按请求本地时区归日，精确；credit 为会话级估算，本地无逐日时间戳，按归首日近似，非精确值，精确值只能由 `--credit-xlsx` 给出。各指标的具体算法、聚合口径与已知限制见 `DATA-GUIDE.md`，不要凭空编造数字。\r\n- 数据完整性：抽取器顶部警告条已列出被跳过/解析失败的 trace 与会话，报告可能不完整属正常现象，如实告知用户即可。\r\n- 产物确定：每次运行仅生成上述 5 个固定文件（dashboard HTML / `usage-status.json` / `usage-status.js` / `chart.umd.min.js` / `usage-full-<时间戳>.csv`），规模由本地 `~/.workbuddy` 数据量天然限定，不存在无界输出。\r\n\r\n## 相关文档\r\n\r\n- `README.md`：用户视角的安装、使用场景、读图指南、故障排查。\r\n- `DATA-GUIDE.md`：指标计算的唯一真相源，含算法、聚合口径、图表参数、归因方法、已知限制。\r\n- `CHANGELOG.md`：版本变更记录与安全等级评估。\r\n\r\n>\n\nFile v1.4.1:README.md\n\n> **Skill Overview**\r\n> \r\n> WorkBuddy Usage Status turns WorkBuddy's own local usage data into an offline, auditable dashboard — token spend, thinking time, thinking efficiency, model distribution, error count, and credit consumption. It ranks model cost-performance (credit per 1k tokens) with switching suggestions so you can pick the cheapest model, and now supports a date-range filter so you can zoom into any period. All model-share charts are limited to the top 10 models with the rest grouped as \"Other\". All data stays on your machine under `~/.workbuddy/`; **default zero network, no external APIs**. The generated dashboard is one HTML file plus a local Chart.js copy written into the same folder, so it renders offline with zero dependencies. An optional **opt-in** mode can pull precise credit from WorkBuddy's official usage API using a token you manually export from your own browser (never auto-read from the host App) — see §6 known limits.\r\n> \r\n> **What it does**: Offline dashboard for WorkBuddy's local usage data — token / credit consumption, thinking efficiency, model distribution & cost-performance, date-range filtering, error monitoring, and usage-spike analysis. Purely local **by default**, zero network dependency; an optional opt-in flag can fetch precise credit via the official usage API with a user-supplied token (disabled by default, never auto-reads host credentials).\r\n> \r\n> **Recent updates**:\r\n> \r\n> - **Cache hit-rate panel** — overall hit rate, a daily trend line, and a per-model ranking (models with fewer than 10 calls are excluded).\r\n> - **Full-dataset CSV on every run** — a timestamped `usage-full-<timestamp>.csv` is written next to the dashboard; its headers and section names follow your OS language.\r\n> - **Auto-archiving against WorkBuddy's 30-day trace cleanup** — every run merges live traces with a local archive, so history keeps accumulating; a dashboard banner reminds you to run at least once every 30 days. An optional `--seed <old snapshot>` imports an older snapshot's daily totals.\r\n> - **Drill-down** — top-10 sessions expand into per-turn tables (time / model / status / tokens / input / cache hit / calls / tools / thinking / errors), with an optional masked prompt column; usage-peak cards expand into that day's session table and model Top 5.\r\n> \r\n> **How to install**\r\n> \r\n> ```\r\n> clawhub install workbuddy-usage-status\r\n> ```\r\n> \r\n> **How to use**\r\n> \r\n> - **Chat trigger (natural language):** Describe what you want in plain English or Chinese — WorkBuddy detects this skill by *meaning*, not a fixed keyword list. Anything expressing *viewing, generating, or exporting your WorkBuddy usage status / stats / activity dashboard* will trigger it. Examples:\r\n>   \r\n>   \"generate a WorkBuddy usage dashboard\" · \"view my recent WorkBuddy usage status\" · \"show token / credit consumption and model distribution\" · \"which model is the most cost-effective\" · \"filter usage by date range\" · \"which day had the highest usage\"\r\n>   \r\n>   Scope is limited to WorkBuddy's own local usage data.\r\n>   \r\n>   **Not triggered (reverse cases):** This skill does **not** apply when — ① you want usage/stats of *other products* (Cursor, VS Code, Trae, Claude, etc.); ② you only say \"export my data / make me a chart / build a dashboard\" without specifying *WorkBuddy's local usage*; ③ you want a generic visualization/report from arbitrary datasets. In those cases, tell the user this skill only reads `~/.workbuddy`, not other products or generic data — confirm whether they meant WorkBuddy's own usage, or point them to that product's tool.\r\n> \r\n> - **CLI:**\r\n>   \r\n>   ```\r\n>   python3 scripts/usage_extractor.py\r\n>   ```\r\n>   \r\n>   Options: `--out ./report`, `--home /other/.workbuddy`, `--credit-xlsx <file>`, `--seed <old snapshot>`, `--no-archive`. Python 3.10+, standard library only. Windows users please replace `python3` with `python`. An opt-in official-billing API mode, disabled by default, is documented with security warnings in the Chinese section below.\r\n> \r\n> ⭐ If this dashboard helped you see your WorkBuddy usage clearly, please give it a Star to support independent development: [github.com/clancy-feng/workbuddy-usage-status](https://github.com/clancy-feng/workbuddy-usage-status)\r\n> \r\n> The full Chinese documentation is preserved below.\r\n\r\n---\r\n\r\n> **语言与地域说明**：本文档（中文正文）面向中文 WorkBuddy 用户（zh-CN）设计，与顶部英文 `Skill Overview` 为同一份说明的双语呈现；技能的触发描述与英文能力说明另见 `SKILL.md` 的 `description`（含 `EN:` 段），可按需参照。\r\n\r\n把 WorkBuddy 自己的本地使用数据，变成一份离线可查的 Dashboard。\r\n\r\n可以看到：token 消耗、思考用时、思考效率、模型分布、错误数、credit 消耗。\r\n\r\n## ✨ 核心功能特性\r\n\r\n- Token/Credit 全链路可视化：按模型、按日期、按会话统计，一眼定位\"烧钱大户\"\r\n- 用量高峰探查：按 token 列出最高的几天，单行简介（token/credit/请求/会话/错误率）+「明细」展开当天会话表与模型 Top5。\r\n- 思考效率量化：输出 token ÷ 思考秒数（tok/s），横向对比模型性价比\r\n- 错误集中监控：快速定位报错频繁的会话/模型，降低调试成本。\r\n- 离线运行：Chart.js 随Skill安装附带。\r\n- 缓存命中率面板：整体与按模型命中率趋势，看清\"谁在帮你省钱\"。\r\n- 三级细节显示（Top10 会话 →「查看」）：轮次表含时间 / 模型 / 状态 / Token / 输入 / 缓存命中 / 调用数 / 工具数 / 思考(分) / 错误；提问列默认隐藏，勾选「显示提问」展开；每轮再点「明细」显示事件摘要。\r\n- 全量 CSV 同步生成：每次运行自动产出 `usage-full-<时间戳>.csv`（每日汇总 / 按模型 / 会话清单 / 调用明细（逐笔，含提问原文）/ 错误详情），表头与分区名语言自动跟随操作系统语言。\r\n- 自动归档合并：每次运行自动把历史运行数据并入本地归档，可用`--no-archive` 关闭此功能。\r\n- 只读无侵入：以只读模式访问 WorkBuddy 数据，不影响正在运行的程序\r\n- 跨平台兼容：支持 Windows/macOS/Linux，Python 3.10+ 即可运行\r\n\r\n---\r\n\r\n## 1. 能看到什么\r\n\r\n- 从开始用WorkBuddy到现在一共花了多少 token / credit？思考了多久？\r\n- 哪个会话、哪个模型消耗最大？模型效率怎么样？\r\n- 哪天用量飙升？错误集中在哪些会话/模型？\r\n- 用作\"使用监督 / 用量控制\"的量化依据。\r\n\r\n---\r\n\r\n## 2. 如何安装\r\n\r\n> 💡 安装引导：国内用户优先选 SkillHub 一键安装，全球用户/OpenClaw 生态用户优先选 ClawHub 安装。\r\n\r\n### 方式一：通过 Workbuddy 安装（国内推荐）\r\n\r\n在 Workbuddy 技能市场中搜索 `workbuddy-usage-status / workbuddy 使用状态看板`，点击「安装」即可。\r\n\r\n### 方式二：通过 ClawHub 安装\r\n\r\n```\r\nclawhub install workbuddy-usage-status\r\n```\r\n\r\n---\r\n\r\n## 3. 用法\r\n\r\n装好skill并重启 WorkBuddy 后，有两种用法。\r\n\r\n### 入口 A：对话触发\r\n\r\n在 WorkBuddy 对话里用自然语言描述你的需求即可，skill 会根据语义自动识别并引导生成看板。例如：\r\n\r\n- \"生成一个 WorkBuddy 使用信息看板\"\r\n- \"查看一下最近 WorkBuddy 的使用状态\"\r\n- \"我想看看 WorkBuddy 的工作信息看板，包括 token 消耗和模型分布\"\r\n- \"看一下 Workbuddy 的使用数据\"\r\n\r\n### 入口 B：命令行直接跑\r\n\r\n在任意目录执行（Python 3.10+，仅标准库）：\r\n\r\n```\r\n# 生成到当前目录（默认）\r\npython3 scripts/usage_extractor.py\r\n\r\n# 生成到指定目录\r\npython3 scripts/usage_extractor.py --out ./report\r\n\r\n# 指定数据根（一般不用，默认 ~/.workbuddy）\r\npython3 scripts/usage_extractor.py --home /other/.workbuddy\r\n\r\n# 可选：用用量导出 xlsx 精确覆盖对应日期窗口的 credit\r\n# xlsx 来自 workbuddy.cn 用量页 → 选日期范围 → 导出；最多 1 个月\r\npython3 scripts/usage_extractor.py --credit-xlsx ~/Downloads/request-usage-2026-08-10.xlsx\r\n\r\n# 可选（手动token注入）：直接调用官方用量 API 拉取精确 credit，无需先导出 xlsx\r\n# token 文件内容：从浏览器 DevTools 复制的鉴权头（如 `Cookie: ...` 整行，或 `Authorization: Bearer ...`）\r\n# 本参数只传本地文件路径；凭证本体保存在文件内、不会出现在命令行参数中。用后请删除该文件，或在 workbuddy.cn 退出登录使其失效\r\npython3 scripts/usage_extractor.py --billing-token-file ~/Desktop/workbuddy-auth.txt\r\n\r\n# 可选：用旧快照（usage-status.json 或历史 dashboard HTML）恢复已被 30 天清理的日期的每日总量\r\n# 导入一次即持久生效（存入本地归档 ~/.workbuddy/usage-archive/），无需重复传入\r\npython3 scripts/usage_extractor.py --seed ~/old/workbuddy-usage-status-dashboard-20260909-224125.html\r\n```\r\n\r\nWindows 用户请将上述命令中的 `python3` 替换为 `python`。\r\n\r\n### 看结果\r\n\r\n> ⚠ **重要提示：30 天缓存期**WorkBuddy 对本机 traces 只保留 **30 天**。本 skill 每次运行自动归档累积历史（`~/.workbuddy/usage-archive/`），看板始终是全量视图——**但归档只在运行时发生**：请至少每 30 天运行一次（建议配置每日定时自动化）；断档超 30 天期间的 trace 无法追溯，首次运行只能看到最近 30 天。\r\n\r\n脚本在「输出目录」（即你运行命令时所在目录，或 `--out` 指定的目录）生成 5 个文件：\r\n\r\n| 文件 | 说明 |\r\n| --------------------------------------------- | -------------------------------------------------------------- |\r\n| `workbuddy-usage-status-dashboard-<时间戳>.html` | 生成的报告文件，文件名带生成时间戳，每次生成独立文件，可保留多份对比 |\r\n| `usage-status.json` | 聚合后的原始数据，可二次处理 |\r\n| `usage-status.js` | `window.USAGE_STATUS = {...}`，备用 |\r\n| `chart.umd.min.js` | 图表引擎文件，由脚本自动复制到输出目录，需与 HTML 同目录存放 |\r\n| `usage-full-<时间戳>.csv` | 全量数据 CSV（每日汇总 / 按模型 / 会话清单 / 调用明细 / 错误分区），与看板同源；内置浏览器无法下载时直接取用 |\r\n\r\n> ⚠ **产物敏感性提醒**：`usage-status.json` / `usage-status.js` / dashboard HTML / 全量 CSV 中均含**会话标题与用户提问原文摘要**（提问最长 300 字；看板内展示默认脱敏，数据文件内为原文截断），分享或提交到仓库前请先检查敏感性。\r\n\r\n打开最新生成的 `workbuddy-usage-status-dashboard-*.html` 即可看到：KPI 卡 + 每日积分消耗（credit）图 + 每日思考用时图 + 各模型 Token 占比 + 模型效率 + 效率散点 + Top 10 Token消耗会话表 + 每日错误。四张时序图的横轴会按所选日期范围的跨度自动在「日 / 周 / 月」之间切换（≤120 天按日，120–730 天按周，>730 天按月），日期选择在修改起止日期后看板立即刷新。\r\n\r\n### 精确化 credit（可选）\r\n\r\n> 本地 `credit_json` 没有逐日时间戳，看板默认按「归首日」把会话 credit 归因到它首次出现的那天（详见 DATA-GUIDE.md §2.2 / §8.5），这是估算值。以下两种可选用法都能用**服务端精确值**覆盖对应日期窗口的每日 credit。\r\n\r\n#### 用法一：用量导出 xlsx（--credit-xlsx）\r\n\r\n从 WorkBuddy 官方用量页导出 xlsx，用其中的服务端精确 credit 覆盖对应日期窗口：\r\n\r\n1. 打开 `https://www.workbuddy.cn/profile/plans-usage`（用量明细表）。\r\n2. 选日期范围（最多 1 个月），点导出，得到 xlsx。\r\n3. 运行：`python usage_extractor.py --credit-xlsx 路径/xxx.xlsx`\r\n\r\n**覆盖逻辑**\r\n\r\n- 读取 xlsx 中每条请求的 `积分消耗` + `时间`，按天汇总成精确每日 credit。\r\n- 用这些精确值覆盖本地数据中对应日期的 `by_day[day].credit`；看板该卡片与 KPI 标注「精确（用量导出）」。\r\n- 未覆盖日期仍为本地「归首日」估算（标注「本地估算」）。\r\n\r\n**边界与限制**\r\n\r\n- 只覆盖 1 个月：导出上限如此，长期趋势仍以 token 为准。\r\n- 只能到\"天\"，不能到\"会话\"：xlsx 无 sessionId / traceId，无法把精确 credit 归因到具体会话；模型性价比排行仍用本地会话级 credit（估算）。\r\n- 若 xlsx 与本地数据无日期重叠，credit 维持本地估算，并在结尾提示。\r\n\r\n#### 用法二：看板内联上传\r\n\r\n除命令行外，看板顶部筛选栏新增「上传用量导出 xlsx」按钮，可直接在浏览器里选文件，**效果与 `--credit-xlsx` 完全一致**：\r\n\r\n- 点击按钮 → 选 xlsx → 看板用浏览器原生 API **离线**解析，解析后自动更新日期区间显示结果。\r\n- 按 `时间`/`time` 取日、`积分消耗`/`credit` 按日累加，覆盖 `by_day[day].credit`，徽标变「精确（用量导出）」，每日 credit 曲线与提示实时更新。\r\n- 解析失败（非 xlsx / 缺必要列 / 无重叠日期）会在按钮旁红字提示，`credit_source` 保持 `local_estimate`，不会污染既有数据。\r\n- 两种导入方式都能把「每天的 credit」算精确，也都会生成「各模型精确性价比」对比表（看清哪个模型最划算）：看板上传会在浏览器里借同一日期窗口内的本地 trace token 数做配平，口径与命令行 `--credit-xlsx` 完全一致。\r\n\r\n#### 用法三：官方用量 API（--billing-token-file，手动加载 token）\r\n\r\n> **定位**：用法一（`--credit-xlsx`）的\"免导出版\"——效果相同，但无需先去用量页导出 xlsx，需要用户手动从浏览器复制一份鉴权头。\r\n> \r\n> **安全总原则**：token 由用户**显式提供**，该能力**默认关闭**，仅当用户主动传入 `--billing-token-file` 时才联网一次。\r\n\r\nWorkBuddy 的用量数据来自官方计费 API：\r\n\r\n```\r\nPOST https://www.workbuddy.cn/billing/meter/get-user-request-usage\r\nBody: {\"startTime\":\"YYYY-MM-DD 00:00:00\",\"endTime\":\"YYYY-MM-DD 23:59:59\",\"pageNum\":1,\"pageSize\":3000}\r\n```\r\n\r\n登录了 WorkBuddy，浏览器/App 就会在请求里带上该会话凭据，**这条凭据只存在于你已登录的浏览器/App 会话里。**\r\n\r\n**用户手动导出步骤（4 步，全程在你自己浏览器里完成）**：\r\n\r\n1. 在**你已登录 WorkBuddy** 的浏览器里打开用量页：<https://www.workbuddy.cn/profile/plans-usage>。\r\n\r\n2. 按 `F12` 打开开发者工具 → 切到 **Network（网络）** 标签。\r\n\r\n3. 在页面上触发一次用量数据加载（刷新页面、或切一下日期范围），在网络列表里找到那条\r\n   \r\n   `get-user-request-usage` 请求 → 右键 → **Copy → Copy request headers（复制请求头）**，或单独复制它的 `Cookie:` / `Authorization:` 那一行完整内容。\r\n\r\n4. 把复制到的内容粘贴进一个**本地纯文本文件**（如 `~/Desktop/workbuddy-auth.txt`）。\r\n   \r\n   文件里可以是：\r\n   \r\n   - 一整行 `Cookie: sessionId=xxx; xxx=yyy`（最常见）；或\r\n   - 一整行 `Authorization: Bearer xxxx`；或\r\n   - 直接就是 cookie 的值（不带 `Cookie:` 前缀也行，skill 会当作 Cookie 值处理）。\r\n\r\n> ⚠️ 这个文件等同于你的会话凭证，**请把它当密码对待**，用完可在 workbuddy.cn 退出登录让它失效。\r\n\r\n**怎么用**\r\n\r\n```bash\r\n# 在 skill 目录下（Windows 把 python3 换成 python）\r\npython3 scripts/usage_extractor.py --billing-token-file ~/Desktop/workbuddy-auth.txt\r\n```\r\n\r\n- 同时传 `--credit-xlsx` 和 `--billing-token-file` 的话 → **API 优先**（都用精确值，API 覆盖 xlsx）。\r\n- 请求窗口：自动取本地数据的最小/最大日期（无则默认最近 30 天 ~ 今天）。\r\n\r\n**覆盖逻辑（与 --credit-xlsx 同口径，仅数据源不同）**\r\n\r\n- 调用官方 API 拿回逐请求明细（每条含 `requestTime`、`credit`、`model` 等），按天汇总成精确每日 credit。\r\n- 用精确值覆盖本地数据中对应日期的 `by_day[day].credit`；看板该卡片与 KPI 标注「精确（用量 API）」。\r\n- 同时按模型汇总**服务端精确 credit**（逐请求口径），修正本地\"整会话 credit 归因到单一模型\"的虚高问题；模型性价比排行据此更准确。\r\n- 把 API 实际覆盖的日期窗口（`billing_date_min/max`）写入 `summary`；看板默认选中范围自动收敛到该窗口，聚焦 credit 精确的区间。\r\n- 若 API 返回空 / token 失效 / 网络失败 → **优雅回退**本地估算。\r\n\r\n## 4. 报告刷新\r\n\r\n数据是静态快照，想更新就再跑一次脚本，重新打开 HTML：\r\n\r\n```\r\npython3 scripts/usage_extractor.py --out ./report\r\n```\r\n\r\n如想每天自动刷新，可用 WorkBuddy 的\"自动化/定时任务\"每天跑这条命令。\r\n\r\n---\r\n\r\n## 5. 指标来源及算法（详见 DATA-GUIDE.md）\r\n\r\n| 指标 | 算法 | 数据来源 |\r\n| --------- | ----------------------------------------------------------------------------------------------------------- | --------------------------- |\r\n| 思考用时 | 每条 trace 里 `type=generation` 的 span 时长之和 | `traces/*/trace_*.json` |\r\n| 思考效率 | 输出 token ÷ 思考秒数（tok/s） | `traces/*/trace_*.json` |\r\n| token 消耗 | `totalTokens`（输入+输出+缓存）按会话/模型/天聚合 | `traces/*/trace_*.json` |\r\n| 缓存命中率 | `totalCachedTokens ÷ totalInputTokens`（若实测 cached>input 自动切换为 `cached/(in+cached)`），按天/模型聚合；模型排行仅收录调用数 ≥ 10 | `traces/*/trace_*.json` |\r\n| credit 消耗 | `session_usage.credit_json` 会话级汇总；看板默认归到会话首次出现日；提供用量导出 xlsx 精确分析。 | `workbuddy.db` |\r\n| Top 会话 | 按 token 消耗降序取前 10 个会话，列出标题/token/思考时长/credit/错误数 | `traces/*` + `workbuddy.db` |\r\n\r\n---\r\n\r\n## 6. 已知限制\r\n\r\n1. **token 是权威主指标，本地精确；credit 是次要估算指标**：因本地数据限制只能把一个会话的 credit 归因到它首次出现的那天，所以仍是估算。如需要精确到会话级别，可用 `--credit-xlsx` 导入用量记录进行进一步分析。\r\n\r\n2. 首跑耗时：首次全量解析 traces需 10–30 秒。\r\n\r\n3. **可选联网模式（`--billing-token-file`，默认关闭）：**\r\n- 仅在用户**主动**传入该参数时才发起一次出站 HTTPS 请求，且只拉取**用户本人**的用量数据（第一方端点 `workbuddy.cn`，与用量页同一数据源）。\r\n  \r\n  - 凭据**必须由用户手动提供**：token 文件内容是用户从自己浏览器 DevTools 复制的鉴权头。\r\n  - token 文件等同会话凭证：不要提交仓库、限制文件权限，用后可在 workbuddy.cn 退出登录使其失效。\r\n4. **WorkBuddy 现只保留最近 30 天的 traces**：超期的逐笔明细会被删除。本 skill 每次运行会自动归档（`~/.workbuddy/usage-archive/`），之后被清理也不影响看板——但归档只在运行时发生：**请至少每 30 天运行一次**（建议配置每日定时自动化）；断档超 30 天期间的逐笔明细无法追溯，首次运行只能看到最近 30 天。被清理日期的每日总量可用 `--seed <旧快照>` 恢复。\r\n\r\n---\r\n\r\n## 7. 故障排查\r\n\r\n| 现象 | 原因 / 处理 |\r\n| ----------------- | ------------------------------------------------------------------- |\r\n| 打开 HTML 显示\"数据未加载\" | 脚本报错中断。重跑 `usage_extractor.py` 看 stderr |\r\n| 图表空白但数字在 | 若报错\"缺少 chart.umd.min.js\"，确认该文件与 usage_extractor.py 同在 scripts/ 下后重跑 |\r\n| 数据明显偏少 | 这台机器 traces 少/刚装；或 `--home` 指错了目录 |\r\n\r\n---\r\n\r\n## ❓ 常见问题（FAQ）\r\n\r\n**Q：看板里的数字和 WorkBuddy 自己显示的对不上？**\r\n\r\nA：本看板只读取 `~/.workbuddy` 下的本地数据文件（traces + workbuddy.db + projects 提问摘要），与 WorkBuddy 自身统计口径可能不同——本工具只统计「有 token 消耗的请求」，排除零用量的工作流记账噪声。以本看板口径为准，详见 DATA-GUIDE.md。\r\n\r\n**Q：为什么某天 credit 特别高、相邻几天却是 0？**\r\n\r\nA：因为本地 `credit_json` 没有逐日时间戳，看板把整个会话的 credit 归因到它「首次出现」的那天（归首日）。所以一个跨多天的会话，credit 只在它第一次出现的那天计入「每日 credit」，后续天不体现——这正好避免了把 credit 编造到免费/无消费的日子里（例如用免费 HY3 续跑的旧会话，后续天只有 token、零 credit）。这是当前本地数据源的粒度极限；要精确到分，用 `--credit-xlsx` 导入用量导出（见已知限制第 1 条）。\r\n\r\n**Q：跑完脚本数字很少 / 怀疑报告不完整？**\r\n\r\nA：脚本对损坏或无法解析的 trace 文件会跳过，并在结尾打印「⚠ 数据完整性提示」，看板顶部也会显示黄色提示条（列出被跳过的文件名）。提示存在即说明这些 trace 已损坏、相关时段数据会缺失；可去 `~/.workbuddy/traces` 下核对对应文件。\r\n\r\n**Q：为什么不能实时刷新、一直挂着看？**\r\n\r\nA：看板是按需生成的静态 HTML（配套 chart.umd.min.js 同目录存放），设计上零外网、不常驻进程。要定期更新，可用 WorkBuddy 的「自动化 / 定时任务」每天跑一次抽取命令（见第 4 节）。\r\n\r\n**Q：第一次跑很慢？**\r\n\r\nA：全量解析 traces（可能上千文件）只需一次，约 10–30 秒，之后每次都很快（见已知限制第 2条）。\r\n\r\n**Q：为什么看板只覆盖最近 30 天？更早的数据去哪了？**\r\n\r\nA：WorkBuddy 会自动清理 30 天前的本地 traces，已清理日期的对话本身不受影响，只是逐次调用的明细没了。本 skill 每次运行会先把数据归档到 `~/.workbuddy/usage-archive/`，之后被清理也不影响看板；但**归档只在运行时发生**——超过 30 天没运行，断档期间的明细无法追溯。补救：用清理前生成的历史快照执行 `--seed <快照>`，可恢复更早日期的每日总量；并建议配置每日定时自动化，避免再断档。\r\n\r\n**Q：对话里怎么说才能触发这个 skill？**\r\n\r\nA：用自然语言描述「查看 / 生成 WorkBuddy 使用状态」即可，无需记关键词。\r\n\r\n---\r\n\r\n## 8. 适用使用场景\r\n\r\n- AI 工具成本管控：监控 WorkBuddy 的 token/credit 消耗，避免预算超支\r\n- 模型性价比对比：通过思考效率（tok/s）横向对比不同模型的实际表现\r\n- 项目用量审计：统计单个项目/会话的 AI 资源消耗，核算项目成本\r\n- Agent 工作效率评估：量化 WorkBuddy 的思考时长、错误率，优化 Agent 配置\r\n- 合规与隐私审计：离线可视化本地数据，满足企业/个人的数据隐私要求\r\n\r\n---\r\n\r\n## 📝 更新日志\r\n\r\n详细版本变更记录请查看 CHANGELOG.md。\r\n\r\n当前最新版本：v1.4.1（2026-09-17）\r\n\r\n---\r\n\r\n## 👤 关于作者\r\n\r\n本技能由 WorkBuddy 深度用户开发，专注 AI 工具用量可视化方向。\r\n\r\n- 小红书：@AI监工老冯 - 分享 WorkBuddy 使用技巧与技能更新动态\r\n- GitHub：clancy-feng\r\n- SkillHub：workbuddy-usage-status\r\n- ClawHub：workbuddy-usage-status\r\n\r\n---\r\n\r\n## 💖 支持这个项目\r\n\r\n> 📊 已被 **1600+** WorkBuddy 用户下载使用，覆盖 SkillHub & ClawHub 双平台。\r\n\r\n如果这个工具帮到了你，欢迎：\r\n\r\n- ⭐ 去 GitHub 点个 Star（这是对我最大的鼓励）\r\n- 🐛 遇到问题提 Issue\r\n- 📢 分享给你的 WorkBuddy 用户朋友\r\n\r\n**GitHub**：<https://github.com/clancy-feng/workbuddy-usage-status>\r\n\r\n---\r\n\r\n🏆 SkillHub TRACE 评分 4.7/5.0 · ClawHub 搜索 \"WorkBuddy\" 排名第一\n\nFile v1.4.1:_meta.json\n\n{\n  \"ownerId\": \"kn71k620de8zkrxmqxjtdyjmg58b00fm\",\n  \"slug\": \"workbuddy-usage-status\",\n  \"version\": \"1.4.1\",\n  \"publishedAt\": 1789653325655\n}\n\nFile v1.4.1:CHANGELOG.md\n\n# Changelog / 版本历史\n\n## [1.4.1] - 2026-09-17\n\n### 修复 · 安全审计整改\n\n- 修正文档与实现不一致：读写边界、数据源数量、抽取器模块说明按实际行为更新。\n- 补充用户警告：产物含会话标题与提问原文摘要的敏感性提醒；token 参数只传本地路径、凭证不会进入命令行参数。\n- 收紧触发边界：新增触发词表与典型触发说明。\n- README 英文选项清单移除计费参数名，改指中文区说明。\n\n## [1.4.0] - 2026-09-16\n\n📊 当前状态\n\n- Skillhub & Clawhub 双平台下载突破 2000\n- SkillHub TRACE 评分 4.7（优秀）\n- ClawHub 搜 WorkBuddy 排第一\n\n### ⭐ 支持\n\n如果这个看板帮你看清了 WorkBuddy 的用量，欢迎去 GitHub 点个 Star 支持独立开发 🙏\n\n👉 <https://github.com/clancy-feng/workbuddy-usage-status>\n\n### 新功能 · 随报告生成全量CSV\n\n- 每次运行时，会同步在工作区目录生成包含全量数据的CSV文件，适配系统语种。\n- 之前错误明细独立导出文件功能移除，合并至全量CSV中。\n\n### 新功能 · 缓存命中率面板\n\n- 新增缓存命中率卡片：整体命中率 + 每日趋势 + 按模型排行。\n\n### 新功能 · 产物自动存档复用\n\n- 现Workbuddy只会自动保存最近30天的Trace记录，Skill机制相应修改为会自动归档数据文件，且首次运行后，每次生成会调用之前文件补全数据，界面中加入“安装后每三十天内需运行一次“提醒。\n\n### 改进 · 数据明细按钮显示\n\n- Top10会话和用量高峰显示添加明细按钮，展开可查看更多细节。\n- 提问列默认隐藏，由顶部「显示提问」开关控制。\n\n### 修复 · 文案界面调整\n\n- 优化部分界面布局和文档内容。\n\n## [1.3.3] - 2026-09-09\n\n### 修复 · Bug fix\n\n- 修复 Workbuddy新版导致的生成物在Workbuddy内置浏览器中无法正确渲染内联Chart.js问题，并调整相应文案说明。\n\n### 修复 · 文案调整\n\n- 优化部分文案显示和文档内容。\n\n## [1.3.2] - 2026-09-06\n\n### 修复 · Bug fix\n\n- 修复 `--billing-token-file` 调用官方用量 API 时误引用尚未构建的 `summary` 导致运行时报错。\n\n### 修复 · 文案调整\n\n- 优化部分文案显示和文档内容。\n\n## [1.3.0] - 2026-09-04\n\n### 修复 · 日期范围校验\n\n- 起始日期晚于结束日期时，看板**报错提示**（「起始日期不能晚于结束日期，请修正」）。\n\n### 新功能 · 精确积分统计入口更新\n\n- 新增 `--billing-token-file <路径>`：用户从浏览器 DevTools 手动复制用量 API 的鉴权头（如 `Cookie: ...` 整行，或 `Authorization: Bearer ...`）后，skill 以该 凭证调用官方用量 API 精确 credit，效果与 `--credit-xlsx` 一致。\n- 顶部筛选栏新增「上传用量导出 xlsx」按钮：在浏览器里直接选文件即可覆盖每日 credit，**效果与 `--credit-xlsx` 完全一致**，无需跑命令。\n\n### 新功能 · 错误明细 CSV 导出\n\n- 错误明细卡片新增「导出 CSV」按钮：将 6 类分类统计（高频错误信息 / 按类型 / 按工具 / 按模型 / 按会话 / 近期错误样本）合并导出为单个 CSV，带分节标题与全量错误总数注释。\n- 无错误数据时按钮自动禁用，点击不会导出空文件。\n\n### 新功能 主题与配色切换 🎨\n\n- 新增明暗主题切换（Light/Dark Mode/跟随系统）\n- 新增多套图标配色显示方案\n\n### 修复 · 文案调整\n\n- 优化部分文案显示和文档内容。\n\n## [1.2.6] - 2026-08-26\n\n### 修复 · 指标文案与口径说明\n\n- **思考效率散点图提示语**：优化修正散点图效率描述提示语。\n- **表格数字列**：由右对齐改为左对齐，数字与列标题左缘对齐，优化排版。\n- **模型性价比表口径说明**：credit 与 token 均按会话主模型归因，会话内跨模型使用时数值存在归因偏差；\n\n### 修复 · 性价比表单位与精度\n\n- **credit/1k 单位放大为 credit / 10万 token**：数值放大 100 倍并保留 2 位小数，结果呈现为 0.24、0.35、6.07 等可读量级，不再出现整列 0。\n- **0 值行不展示**：credit/10万token 为 0 的模型无性价比比较意义，整行从排行表中过滤。\n\n### 修复 · 用量高峰探查显示逻辑\n\n- 排序依据改为 token，**会话列表**、模型显示、credit信息优化。\n\n## [1.2.2] - 2026-08-19\n\n### 修复 · 日期选择交互逻辑\n\n- **移除「更新」按钮**：日期选择器修改后看板本就实时刷新，原按钮却执行\"重置回默认范围\"逻辑，点它反而把筛选弹回初始窗口，语义误导。已移除按钮，筛选改为纯实时生效。\n\n### 改进 · 产出物命名\n\n- **产出物 HTML 文件名带时间戳**：自包含看板命名改为 `workbuddy-usage-status-dashboard-<YYYYMMDD-HHMMSS>.html`，每次生成独立文件，不再覆盖旧报告，便于保留多份并对比。\n\n## [1.2.1] - 2026-08-12\n\n### 修复 · 安全审计发现\n\n- **本地 XSS 注入（Intent-Code Divergence）**：`renderWarnings()` 曾将 `T.warnings[].detail` 直接拼入 `innerHTML`，而该字段包含被跳过的 trace 文件名（磁盘文件名可被构造注入 HTML）；会话表的 `x.status`（来自 trace 元数据）同样未转义。两处均改为经 `esc()` HTML 转义，杜绝打开看板时执行注入脚本。\n- **触发词收紧**：原自然语言触发过宽，存在误触发 / 触发劫持风险。将触发范围明确收束到「仅 WorkBuddy 自身本机用量」，并在 SKILL.md / README 增加显式负面清单。\n\n## [1.2.0] - 2026-08-10\n\n### 改进 · Token 与 Credit 的权重和分析思路\n\n- **token 确立为权威主指标**：本地 trace 自带精确时间戳与 token 拆分，按请求 `startedAt` 的本地时区归日，当日统计，看板首张卡片改为「每日 Token 消耗」。\n- **credit 降为次要估算并明确标注**：看板「每日积分消耗」卡片与 KPI 的 credit 均带「本地估算 ≈」标识。\n- **跨天 credit 归因回退为「归首日」**：整个会话 credit 归因到它首次出现的那天——绑在会话起点、**绝不污染后续免费/无消费日**，精确每日 credit 分析由下述 `--credit-xlsx` 实现。\n\n### 改进 · 数据完整性可见性\n\n- 抽取器新增跳过记录计数器：损坏/无法解析的 trace 文件、credit_json 解析失败的会话，不再静默吞掉。\n- 结尾打印「⚠ 数据完整性提示」并列出被跳过的文件名；生成的自包含 HTML 顶部新增黄色提示条（读取 `USAGE_STATUS.warnings`）同步展示，用户一眼可知报告是否完整。\n\n### 新增 · 可选参数 `--credit-xlsx`\n\n- 传入从 `workbuddy.cn` 用量页导出的 xlsx，看板用服务端精确 credit 覆盖对应日期窗口内的每日 credit；未覆盖日期仍为本地估算（归首日）。\n- 传入 `--credit-xlsx` 后，抽取器把 xlsx 实际覆盖的日期窗口（`credit_xlsx_date_min/max`）写入 `summary`；看板默认选中范围自动收敛到该窗口（聚焦 credit 精确的区间）。\n- xlsx 读取为标准库实现（zipfile + XML 解析），不依赖 openpyxl，不破坏零依赖特性。\n- 用途定位：仅用于\"查清某月精确花费 / 对账\"（xlsx 最多含 1 个月，且无法归因到会话）；长期趋势仍以 token 为准。不加该参数时技能零额外操作、全本地运行。\n\n### 增强 · 时间轴自适应粒度\n\n- 时间轴自适应粒度：四张时序图（每日 Token / credit / 思考用时 / 错误数）的横轴按**当前筛选范围跨度**自动切桶——≤120 天按日、120–730 天按周（周一为周起始）、>730 天按月，避免数据累积两三年后横坐标过密、标签重叠；聚合方式为周期求和，卡片标题（\"每日/每周/每月 …\"）与副标题（\"聚合粒度：按日/按周/按月\"）同步更新，缩放日期筛选时实时重算。\n\n### 增强 · 常见问题解答\n\n- Readme中加入FAQ（常见问题解答）段落，回答了数据质量、触发方式等常见问题。\n\n### 已知限制\n\n- credit 本地估算：本地 `credit_json` 与服务端有偏差，且本地无逐日时间戳、只能「归首日」近似。精确值需 `--credit-xlsx`。\n- token 始终精确，是看板的核心价值来源。\n- 同 1.1.0：credit 仅到会话级；快照式（手动/定时刷新）；首跑全量解析约 10–30 秒。\n\n---\n\n## [1.1.0] - 2026-08-09\n\n### 新增 · 日期区间筛选（Date Range Filter）\n\n- 看板顶部新增「起始日期 / 结束日期」选择器 + 重置按钮。\n- 筛选后联动更新：KPI 数字、每日 credit/思考用时/错误数折线图、模型 Token 占比、模型思考效率、Top 会话表、模型性价比排行及优化建议。\n\n### 新增 · 模型性价比排行（Model Cost Ranking）\n\n- 看板新增「模型性价比排行」表格，按 `credit_per_1k_tokens` 升序（越靠前越省）；展示会话数 / 总 token / 总 credit / 每千 token credit。\n- 自动产出优化建议（如「在可比任务量下切换至 deepseek-v4-flash 相比 hy3 预计节省约 67% credit」），自动排除 `preview`/`agent` 变体与 `auto`，仅比较样本量 ≥1000 万 token 的模型。\n- 自动标记 `credit=0` 且 token 不少的模型为「限免/促销」，优化建议排除零 credit 模型并单独提示可能处于促销期。\n\n### 新增 · 用量高峰探查（替代原「异常警报」）\n\n- 新增 `spike_days`：按每日 credit 自动选出明显高用量日（高于所有日中位数的 2 倍且 ≥50，最多 6 天；满足条件的高用量日不足 3 天时，兜底取 credit 最高的 3 天）。\n- 对每一天逐日拆解：主导会话（标题/模型/当日 credit/token，按会话首次出现日归因，与每日 credit 口径一致）、模型 token 构成 Top5、错误率、平均 calls/请求、最大单次请求 token——精确到天，回答\"哪一天花了多少、由什么任务造成\"。\n- 主导会话采用 50 倍比例规则过滤：仅显示在当日峰值会话 credit 的 1/50 及以上的会话（峰值与最小显示值差距 ≤50 倍），自动隐藏个位数等小额噪音；零积分会话与不足峰值 1/50 的小额会话合并一行说明（不丢失信息）。\n\n### 改进 · 图表与呈现\n\n- 「各模型 Token 占比」改为 Top 10 + 其他，避免图例爆炸。\n- 「各模型思考效率」不再合并「其他」，避免聚合后效率虚高、排名失真。\n- 「Top 会话」固定为 Top 10 会话（按 token 消耗）。\n- 卡片顺序调整：「用量高峰探查」置于「Top 10 会话」之下，阅读顺序 总览 → 明细 → 高峰日拆解。\n- 「模型 token 构成（Top5）」渲染时过滤 token=0 的条目（如 `unknown 0`），不再展示无意义零值。\n\n### 新增 · 中英双语 + 语言切换\n\n- 右上角语言切换按钮（中/EN），基于 localStorage 记忆；卡片标题、提示、KPI、表头、用量高峰拆解、优化建议、底部说明均已双语化，默认中文。\n- Dashboard 标题改为「Workbuddy使用数据看板」（英文 WorkBuddy Usage Data Dashboard）。\n\n### 修复 · 口径与单位\n\n- 「每日思考用时」卡片标题补回（小时）单位。\n- KPI 区新增「总 Credit」一项，6 项填满栅格。\n- 页面说明类文字精简；数据口径 / 计算方法 / 参数含义统一迁移至独立的 `DATA-GUIDE.md`，页面底部改为指针「报告数据说明见 DATA-GUIDE.md」。\n\n### 已知限制\n\n- 用量统计仅计入有 token 消耗的有效 trace，零 token 工作流记账（噪声）排除；有效 trace 的 `sessionId` 与 `sessions` 表 100% 对应，会话级归因完整，无「覆盖率稀释」问题。宏观总量/每日趋势/模型占比来自有效 trace 与 `session_usage` 表，完整准确。\n- `credit_json` 仍只能到会话级，无法精确拆分到单次 generation span。\n\n---\n\n## [1.0.0] - 2026-07-22\n\n### 初始发布\n\n- 离线可视化 WorkBuddy 本地使用数据：总览 KPI（请求数 / 会话数 / 总 token / 思考用时 / 总 credit / 错误数）、每日 token 与 credit 趋势图、按模型分布、Top 10 会话（按 token）、每日错误数。\n- 抽取器 `usage_extractor.py` 仅用 Python 标准库；生成的 HTML 单文件、Chart.js 内联、零外网依赖。\n- 可搬运到其他 WorkBuddy 机器使用。\n\nFile v1.4.1:DATA-GUIDE.md\n\n# 数据与方法说明（Data Guide）\r\n\r\n本文档解释 `workbuddy-usage-status` 看板里每一个数字是怎么算出来的、数据从哪来、各个阈值/参数的含义。\r\n\r\n---\r\n\r\n## 1. 数据来源\r\n\r\n看板只读本地文件，有三个数据源：\r\n\r\n| 数据源 | 路径（默认 `~/.workbuddy/`） | 提供什么 |\r\n| ---- | ------------------------------------------------ | ---------------------------------- |\r\n| 会话库 | `workbuddy.db`（`sessions` 表 + `session_usage` 表） | 会话标题/状态/模型、credit 消耗汇总 |\r\n| 调用轨迹 | `traces/*/trace_*.json`（每个文件 = 一次请求） | 每次请求的时长、token 拆分、思考用时、模型、工具调用数、错误数 |\r\n| 会话文件 | `projects/<工作区>/<sessionId>.jsonl`（仅按 sessionId 提取） | 用户提问摘要（`<user_query>`），供 Top10 会话下钻的提问列；截 300 字，展示默认脱敏 |\r\n\r\n`db` 与 `traces` 两个口径相互独立（`jsonl` 仅供提问摘要展示，不参与口径计算）：\r\n\r\n- Token / 思考用时 / 错误 / 工具调用：来自 `traces/`，按\"一次请求\"逐条统计。\r\n- Credit（积分）：来自 `workbuddy.db → session_usage.credit_json`，是 WorkBuddy 自己的计费汇总，本 skill 只读取、不做二次换算。\r\n\r\n因此\"某个会话 token 很多但 credit=0\"是正常现象（见第 6 节）。\r\n\r\n---\r\n\r\n## 2. 基础指标口径\r\n\r\n### 2.1 一次请求（trace）记录了什么\r\n\r\n- Token 总量 `tokens` = trace 顶层 `totalTokens`。\r\n- 输入 / 输出 / 缓存 token = `modelInfo.totalInputTokens` / `totalOutputTokens` / `totalCachedTokens`。\r\n- 思考用时 `thinking_sec` = 该 trace 里所有 `type=generation`（模型推理）的 span 时长之和（毫秒转秒）；工具调用（tool/mcp/function）时长不计入，它是\"模型推理/思考\"的代理指标。\r\n- 工具调用次数 `calls` = `modelInfo.callCount`。\r\n- 错误数 `errors` = trace 里 `status=error` 或带 `error` 字段的 span 数量（span 级，一次请求可能多个 span 报错）。\r\n- 模型名 `model` = `modelInfo.models` 拼接；无则记 `unknown`。\r\n- 会话归属 `session_id` = trace 的 `sessionId`。统计仅计入有实际 token 消耗的 trace；无 token 的工作流记账记录（零用量噪声）不进入用量基数。在有效 trace 上，`sessionId` 与 `workbuddy.db` 的 `sessions` 表 100% 对应——所有真实用量都能精确归到某个会话。\r\n\r\n### 2.2 聚合口径\r\n\r\n- 按天：以请求 `startedAt` 转本地时区的日期（`%Y-%m-%d`）分组。\r\n- 按模型：以 trace 的 `model` 字段聚合。\r\n- 按会话：以 `session_id` 聚合；会话标题/状态/模型取自 `sessions` 表（`custom_title` 优先于 `title`）。\r\n- Credit **归首日**：本地 `credit_json` 没有逐日时间戳，无法精确拆分到天。一个跨多天的会话，其 credit 整体归因到它首次出现的那一天；如需要精确到分，用法见 `README.md` 的「精确化 credit（可选用法）」（--credit-xlsx / --billing-token-file）。\r\n\r\n---\r\n\r\n## 3. 顶部 KPI（总览数字）\r\n\r\n| KPI | 计算方式 |\r\n| --------- | ------------------------------------- |\r\n| 总请求数 | `traces` 文件总数 |\r\n| 总 Token | 所有请求 `tokens` 之和 |\r\n| 思考用时 | 所有请求 `thinking_sec` 之和，换算成小时（`/3600`） |\r\n| 平均效率 | `总输出 token / 总思考秒数`（tok/s） |\r\n| Credit 消耗 | 所有会话 `session_usage.credit` 之和 |\r\n| 错误数 | 所有请求 `errors` 之和 |\r\n\r\n---\r\n\r\n## 4. 各图表 / 卡片的计算方法与参数\r\n\r\n### 4.1 每日积分消耗（credit）\r\n\r\n- 每日 credit = 当天首次出现且有 credit 的会话，其会话级 credit 之和。\r\n- **这是本地估算**：「归首日」近似值，非精确值，因本地 `credit_json` 与服务端有偏差，且本地无逐日时间戳。\r\n- 精确化：若运行脚本时传入 `--credit-xlsx <路径>`（用量导出 xlsx），则对应日期窗口内的每日 credit 以 xlsx 中的服务端精确值覆盖，看板该卡片 / KPI 标注「精确（用量导出）」；未覆盖日期仍为本地估算。\r\n\r\n### 4.2 每日思考用时\r\n\r\n- 每日 = 当天所有请求的 `thinking_sec` 之和（小时为单位展示）。\r\n\r\n### 4.3 各模型 Token 占比\r\n\r\n- 按 `model` 聚合 `tokens`，降序。\r\n- Top10 之外合并为「其他」：只展示 token 最多的前 10 个模型标签，其余归入一个\"其他\"扇区。\r\n\r\n### 4.4 主要模型思考效率\r\n\r\n- 公式：效率 = 输出 token / 思考秒数（`output / thinking_sec`），单位 tok/s，越高越\"省时\"。\r\n- 仅列 Top10：效率最高 / token 突出的前 10 个具体模型标签。\r\n- 最小样本门槛 `MIN_EFF_SAMPLES = 10`：一个模型**思考次数 < 10** 时不计入效率排名。\r\n\r\n### 4.5 思考效率散点图\r\n\r\n- 每个点 = 一次请求，横轴=思考用时，纵轴=输出 token（取 token 最大的前 300 次请求以控制体积）。\r\n- 读图：右下方 = 高产出 + 低耗时 = 高效率。\r\n\r\n### 4.6 Top 10 会话\r\n\r\n- 按 token 总量降序取前 10 个会话。\r\n- 列：标题 / 模型 / 请求数 / Token / 思考(分) / Credit / 错误 / 状态。\r\n- 下钻（「查看」按钮）：展开该会话的**轮次表**。轮次 = 一次 AI 响应（trace 粒度；本地 trace 无 conversationRequestId 字段），列：时间 / 模型 / 状态 / Token / 输入 / 缓存命中 / 调用数 / 工具数 / 思考(分) / 错误；提问列默认隐藏，勾选「显示提问」展开。\r\n- 提问原文：来自 `~/.workbuddy/projects/<工作区>/<sessionId>.jsonl`，按 sessionId 匹配、取该轮开始前最近一条含 `<user_query>` 的用户消息（截 300 字）；展示默认脱敏（邮箱 / 手机号 / 绝对路径 / ≥24 位疑似密钥打码 + 60 字截断）。\r\n- 每轮「明细」：事件摘要——生成段数与总时长、工具调用清单及耗时、错误（类型[工具]: 摘要）。credit 为会话级统计，不下钻到轮次。\r\n\r\n### 4.7 每日错误数\r\n\r\n- 每日 = 当天所有请求的 `errors`（span 级）之和。\r\n\r\n### 4.8 时间轴自适应粒度（日 / 周 / 月）\r\n\r\n看板顶部四张时序图（每日 Token / 每日 credit / 每日思考用时 / 每日错误数）的横轴，会**根据当前筛选范围的跨度自动切换桶粒度**，避免数据累积到两三年后横坐标过密、标签重叠：\r\n\r\n- 跨度 ≤ 120 天 → **按日**（每日本地时区归日精确值）\r\n- 120 天 < 跨度 ≤ 730 天 → **按周**（以周一为周起始，ISO 周聚合）\r\n- 跨度 > 730 天 → **按月**（YYYY-MM 聚合）\r\n\r\n聚合方式：先按请求 `startedAt` 本地时区归日，再按所选粒度把该周期内的 token / credit / 思考秒 / 错误数**求和**得到周期总量。卡片标题（\"每日 / 每周 / 每月 …\"）与副标题（\"聚合粒度：按日 / 按周 / 按月\"）会同步更新，明确当前展示的是每日值还是周期总量。缩放日期筛选范围时粒度会实时重算。\r\n\r\n### 4.9 错误分类统计（基于全量数据，见「导出全量 CSV」）\r\n\r\n错误数据的**分类统计**（下方 6 类）基于**全量** trace 数据、不受日期筛选影响。v1.4.0 起「错误明细」独立卡片已移除：错误趋势看「每日错误数」图，6 类分类统计集中在每次运行生成的全量 CSV 文件（`usage-full-<时间戳>.csv`）的错误分区中。\r\n\r\n早期版本只把错误记成「错误数」一个总数，丢弃了每条 span 的具体错误信息。现在的实现把这些信息**还原为可下钻的分类统计**：\r\n\r\n- **高频错误内容**：按错误文本聚合，列出出现次数最多的几条（如 `Error running tool (non-fatal)`），并标注各自出现次数；用于快速定位\"哪个错误最普遍\"。\r\n- **按类型分布**：错误按类别（如 tool / generation / mcp / function 等）拆分计数。\r\n- **按工具分布**：触发错误的工具 / MCP / 函数名分布。\r\n- **按模型分布**：出错请求涉及的模型分布。\r\n- **按会话分布**：错误集中在哪些会话。\r\n- **近期错误样本**：列出最近若干条原始错误文本，便于点开具体会话排查。\r\n\r\n这些分类共同回答\"错误主要是什么、由什么工具/模型/会话引发、最近是否还在发生\"，是错误监控的主入口。全量 CSV 的错误分区带 UTF-8 BOM，Excel 直接打开中文不乱码。\r\n\r\n### 4.10 缓存命中率\r\n\r\n- 口径：缓存命中 token ÷ 输入 token（`cached/in`）；若实测出现 cached>input 自动切换为 `cached/(in+cached)`，实际口径标注在缓存卡片上。\r\n- 每日趋势：按当前筛选粒度分桶，各桶 `cached` 之和 ÷ `input` 之和。\r\n- 模型排行：仅收录调用数 ≥ 10 的模型（小样本命中率噪声大）。\r\n- 含义：命中率越高，同等任务的实际计费输入越少。\r\n\r\n---\r\n\r\n## 5. 用量高峰探查（自动定位明显高的使用日）\r\n\r\n### 5.1 选哪几天（\"几天？怎么选的\"）\r\n\r\n1. 先算每日 token 总量的中位数 `median_tok`（请求级精确到天）。\r\n2. 阈值 `thr = max(median_tok × 2, 500 万)`：token 高于中位数 2 倍且至少 500 万的日子，才算\"明显高\"。\r\n3. 满足的日子按 token 倒序，最多取 6 天。\r\n4. 兜底：若满足条件的不足 3 天，则直接取 token 最高的 3 天。\r\n\r\n说明：排序依据从 credit 改为 token，因为 token 按请求 `startedAt` 精确到天，而 credit 是归首日估算、无法精确到天。用 token 定位\"使用高峰日\"才是真实口径。\r\n\r\n### 5.2 每天的拆解字段\r\n\r\n对每个入选日，逐日给出：\r\n\r\n- 当天会话（按 token）：当天有请求的全部会话（不再限\"首次出现日\"），按当天 token 降序，模型列显示当天实际请求的全部模型（按 token 降序，逗号分隔；会话内跨模型时与右侧构成对齐）。\r\n- 模型 token 构成（Top5）：当天所有请求按 `model` 聚合 token，取前 5（token=0 的不显示）。\r\n- 错误率 = 当天 `errors / 请求数 × 100%`。\r\n- 均 calls/请求 = 当天总 `calls / 请求数`（高 → 可能反复调用）。\r\n- 最大单请求 = 当天单次请求的最大 `tokens`。\r\n\r\n会话表的 token 口径与「模型 token 构成」一致（都是当天全部请求），左右 token 总额相等，可对账。\r\n\r\n### 5.3 会话显示上限\r\n\r\n- 当天会话按 token 倒序，最多显示 8 个；超过 8 个时，其余在表下标注「另有 N 个会话（合计 X token）未列入」。\r\n\r\n---\r\n\r\n## 6. 模型性价比排行（credit / 10万 token）\r\n\r\n### 6.1 归因方法\r\n\r\n- 用 `sessions.model`（会话级模型名）聚合 credit 与 token，绕开 `credit_json` 无法反查模型的问题。\r\n- 公式：`credit_per_100k = credit / tokens × 100000`，数值越低越省。\r\n- 过滤：`unknown` 模型、token ≤ 0 的行不进入排行（无法归因或无效）。\r\n- `'auto'`：会话未锁定具体模型（展示用占位，不计入排行）。\r\n\r\n### 6.2 零 credit 标记\r\n\r\n- `zero_credit = True` 当且仅当：该模型 `credit ≤ 0` 且 `tokens ≥ 100 万`。\r\n- 含义：该模型当前 credit/10万token=0，可能处于限免 / 促销期。这类模型，不进入\"优化建议\"对比，也不该被当成长期成本基准。\r\n\r\n### 6.3 优化建议\r\n\r\n- 在可比任务量（各模型 token ≥ 1000 万）的通用模型（排除 `auto`/`unknown`/`preview`/`agent`、且 credit>0）中，取 credit/10万token 最便宜与最贵的两条。\r\n- 预计节省 = `(最贵 - 最便宜) / 最贵 × 100%`；≥ 5% 才给出建议文案。\r\n- 前提提示：两个模型处理的工作负载可互相迁移。\r\n\r\n---\r\n\r\n## 7. 参数 / 阈值速查表\r\n\r\n| 参数 / 阈值 | 含义 / 当前值 |\r\n| --------------------------- | -------------------------- |\r\n| `median_tok × 2` 与 `500 万` | 高用量日门槛：取两者较大值 |\r\n| `top 6` / 兜底 `top 3` | 入选高用量日上限 / 兜底数量 |\r\n| `会话 top 8` | 每天拆解的会话显示上限，超出在表下标注 |\r\n| `Top10` | Token 占比扇区、效率图、Top 会话的取数上限 |\r\n| `token ≥ 100 万` | 判定零 credit 模型、可比样本的最低任务量 |\r\n| `credit/10万token` 节省 `≥ 5%` | 触发优化建议的最小差异 |\r\n| `前 300 次请求` | 散点图取样上限（控体积） |\r\n| `前 200 会话` | `by_session` 输出上限（控体积） |\r\n\r\n---\r\n\r\n## 8. 已知数据统计限制\r\n\r\n1. Credit 与 Token 独立统计：credit 走 `workbuddy.db` 计费口径，token 走 `traces` 实际用量；模型限免期 token 照常计、credit=0。\r\n2. 用量统计以「有效 trace」为基数——无覆盖率缺口：有效 trace = 有实际 token 消耗的 trace，已排除工作流记账噪声数据。在有效 trace 上，`sessionId` 与 `sessions` 表 100% 对应，因此会话/模型下钻、总量、每日趋势、错误数均为完整真实用量。\r\n3. 思考用时是代理指标，为generation span 时长之和，不含工具调用与等待。\r\n4. 错误率是 span 级：一次请求多个 span 报错会重复计入，错误率可能 > 单个请求失败率。\r\n5. 跨日会话 credit **归首日**：因本地无逐日时间戳、只能「归首日」近似（不编造到免费/无消费日）；精确值需用 `--credit-xlsx` 提供官方用量报告（用法见 README「精确化 credit（可选用法）」）。\r\n6. WorkBuddy 对本机 `traces/<pid>` 目录做 30 天保留清理（daemon 按目录 mtime 整目录删除，正在写入的目录因 mtime 新鲜而整体幸存）。本 skill 每次运行自动归档（traceId 去重）后再聚合：被清理日期的**每日总量**可由归档/历史快照（`--seed`）恢复，但其**逐笔明细**不可恢复——这些日期的下钻数据不完整。\r\n\r\n---\r\n\r\n## 9. 输出文件\r\n\r\n脚本在同目录（或 `--out` 指定目录）生成：\r\n\r\n- `usage-status.json`：原始聚合数据（调试 / 二次处理用）。\r\n- `usage-status.js`：`window.USAGE_STATUS = {...}`，供 HTML 直接 `<script>` 引入，避开 `file://` 的 fetch 跨域。\r\n- `workbuddy-usage-status-dashboard-<时间戳>.html`：离线看板，文件名带生成时间戳，每次生成独立文件，不覆盖旧报告，便于保留多份对比。\r\n- `chart.umd.min.js`：图表引擎，由抽取器自动复制到输出目录，需与 HTML 同目录。\r\n- `usage-full-<时间戳>.csv`：全量数据 CSV（每日汇总 / 按模型 / 会话清单 / 调用明细 / 错误分区），与看板同源；内置浏览器无法下载 CSV 时直接取用此文件。表头与分区名语言自动跟随操作系统语言：Windows 读用户 UI 语言，其他平台用 locale，中文系统输出中文、其他语言输出英文。\r\n- 上述数据文件均含**会话标题与用户提问原文摘要**（提问最长 300 字，看板内展示默认脱敏），分享或提交前请先检查敏感性。\r\n\r\n运行：`python usage_extractor.py [--out 目录] [--home ~/.workbuddy]`\r\n\r\n---\r\n\r\n> **精确化 credit 的可选用法**（用量导出 xlsx `--credit-xlsx`、看板内联上传、Path A 官方用量 API `--billing-token-file`）属于\"使用方法说明\"，已移至 **`README.md` 的「精确化 credit（可选用法）」章节**——含完整用法、浏览器内联上传步骤、凭据导出步骤与安全评估。本文档只解释数据口径；各指标为何是估算、怎么\"归首日\"等仍见上文 §2.2、§4.1、§8.5。\n\nFile v1.4.1:skill-card.md\n\n## Description:\n\nWorkbuddy Usage Status generates an offline dashboard for a user's local WorkBuddy usage data, covering token consumption, credit estimates, model distribution, thinking efficiency, errors, and usage spikes.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[clancy-feng](https://clawhub.ai/user/clancy-feng)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nWorkBuddy users and administrators use this skill to inspect their own local WorkBuddy usage, generate an auditable dashboard, and export supporting usage data for cost, model, and error review. It is scoped to WorkBuddy local/account usage and is not a generic analytics dashboard for other products or arbitrary datasets.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Generated HTML, JSON, JavaScript, CSV, and archive files can contain private WorkBuddy session titles, error snippets, and up to 300 characters of prompt text.\n\nMitigation: Treat generated files as private, review them before sharing or committing, and avoid publishing reports that contain sensitive local usage details.\n\nRisk: The optional --billing-token-file mode uses a manually copied WorkBuddy session credential to request precise billing data from workbuddy.cn.\n\nMitigation: Use this mode only when precise billing data is needed, keep the token file local with restricted permissions, and delete the file or invalidate the session after use.\n\nRisk: Credit values are local estimates unless an exported usage spreadsheet or the optional billing API mode is used.\n\nMitigation: Present token counts as the primary metric, label estimated credit clearly, and use the documented precise-credit options for reconciliation.\n\nRisk: WorkBuddy trace history may be incomplete if local traces are cleaned before the skill archives them.\n\nMitigation: Run the skill at least every 30 days, or seed from an older snapshot when only historical daily totals are available.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/clancy-feng/skills/workbuddy-usage-status)\n- [Publisher profile](https://clawhub.ai/user/clancy-feng)\n- [README](artifact/README.md)\n- [Data guide](artifact/DATA-GUIDE.md)\n- [Changelog](artifact/CHANGELOG.md)\n- [License](artifact/LICENSE)\n\n## Skill Output:\n\n**Output Type(s):** [Files, HTML, JSON, CSV, JavaScript, Shell commands, Guidance]\n\n**Output Format:** [Markdown guidance with shell commands and generated local dashboard files: HTML, JSON, JavaScript, CSV, and a copied Chart.js asset.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Default execution is local and offline. Optional precise billing mode can make a WorkBuddy API request only when the user supplies a token file.]\n\n## Skill Version(s):\n\n1.4.1 (source: frontmatter, release metadata, changelog)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.4.1:LICENSE\n\nMIT License\r\n\r\nCopyright (c) 2026 Clancy\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\n\nArchive v1.4.0: 15 files, 2541389 bytes\n\nFiles: assets/dashboard-preview-1.png (661215b), assets/dashboard-preview-2.png (605875b), CHANGELOG.md (11979b), dashboard-preview-1.png (661215b), dashboard-preview-2.png (605875b), DATA-GUIDE.md (15529b), LICENSE (1084b), README.md (24370b), scripts/chart.umd.min.js (205399b), scripts/dashboard_template.html (67788b), scripts/usage_extractor.py (58759b), scripts/verify_credit_xlsx.py (6357b), skill-card.md (2442b), SKILL.md (12475b), _meta.json (141b)\n\nFile v1.4.0:SKILL.md\n\n---\r\nname: \"workbuddy-usage-status\"\r\nslug: workbuddy-usage-status\r\ndisplayName: \"WorkBuddy 使用状态看板\"\r\nversion: 1.4.0\r\ndescription: \"离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为本地估算，涵盖思考效率、模型分布与性价比、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、默认零外网依赖、可搬运；可选 --credit-xlsx 用用量导出精确覆盖 credit，或可选 --billing-token-file（用户手动导出 token，opt-in）调用官方用量 API 拉取精确 credit。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit as local estimate, covering thinking efficiency, model distribution & cost-performance, date-range filtering, error monitoring, usage-spike inspection. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local, default zero-network; optionally --billing-token-file (user-supplied token, opt-in) calls the official usage API for precise credit, or --credit-xlsx overrides credit with precise export values.\"\r\nagent_created: true\r\nlicense: MIT\r\nsummary: \"离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为本地估算，涵盖思考效率、模型分布与性价比、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、默认零外网依赖、可搬运；可选 --credit-xlsx 用用量导出精确覆盖 credit，或可选 --billing-token-file（用户手动导出 token，opt-in）调用官方用量 API 拉取精确 credit。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit as local estimate, covering thinking efficiency, model distribution & cost-performance, date-range filtering, error monitoring, usage-spike inspection. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local, default zero-network; optionally --billing-token-file (user-supplied token, opt-in) calls the official usage API for precise credit, or --credit-xlsx overrides credit with precise export values.\"\r\nallowed-tools: python3, read_file, write_file\r\npermissions:\r\n\r\n- file_read\r\n- file_write\r\n- network\r\n  metadata:\r\n  clawdbot:\r\n  emoji: \"📊\"\r\n  requires:\r\n    bins:\r\n\r\n      - python3\r\n\r\n  requires.env: []\r\n\r\n---\r\n\r\n# \r\n\r\n## 💖 支持这个项目\r\n\r\n> 📊 已被 **2000+** WorkBuddy 用户下载使用，覆盖 SkillHub & ClawHub 双平台。\r\n\r\n如果这个工具帮到了你，欢迎：\r\n\r\n- ⭐ 去 GitHub 点个 Star（这是对我最大的鼓励）\r\n- 🐛 遇到问题提 Issue\r\n- 📢 分享给你的 WorkBuddy 用户朋友\r\n\r\n**GitHub**：<https://github.com/clancy-feng/workbuddy-usage-status>\r\n\r\n## 界面预览\r\n\r\n![preview](https://raw.githubusercontent.com/clancy-feng/workbuddy-usage-status/refs/heads/main/assets/dashboard-preview-1.png)\r\n\r\n## 技能简介\r\n\r\n把 WorkBuddy 自己的本地使用数据，变成一份离线可查的 Dashboard。\r\n\r\n可以看到：token 消耗、思考用时、思考效率、模型分布、错误数、credit 消耗。\r\n\r\n## ✨ 核心功能特性\r\n\r\n- Token/Credit 全链路可视化：按模型、按日期、按会话统计，一眼定位\"烧钱大户\"\r\n- 用量高峰探查：按 token 列出最高的几天，单行简介（token/credit/请求/会话/错误率）+「明细」展开当天会话表与模型 Top5，帮你快速定位消耗集中日\r\n- 思考效率量化：输出 token ÷ 思考秒数（tok/s），横向对比模型性价比\r\n- 错误集中监控：快速定位报错频繁的会话/模型，降低调试成本，可导出错误详情。\r\n- 离线运行：Chart.js 随包附带，零外网依赖\r\n- 缓存命中率面板：整体与按模型命中率趋势，看清\"谁在帮你省钱\"（口径 cached/input，自动判定并标注）\r\n- 三级下钻（Top10 会话 →「查看」）：轮次表含时间 / 模型 / 状态 / Token / 输入 / 缓存命中 / 调用数 / 工具数 / 思考(分) / 错误；提问列默认隐藏，勾选「显示提问」展开（脱敏展示）；每轮再点「明细」= 事件摘要（生成段数与总时长、工具调用清单及耗时、错误类型与摘要）\r\n- 全量 CSV 同步生成：每次运行自动产出 `usage-full-<时间戳>.csv`（每日汇总 / 按模型 / 会话清单 / 调用明细 / 错误六分区），表头与分区名语言自动跟随操作系统语言切换\r\n- 自动归档合并：每次运行自动把逐笔数据并入本地归档（traceId 去重），WorkBuddy 30 天清理 trace 也不再丢历史——对用户完全透明，`--no-archive` 可关\r\n- 只读无侵入：以只读模式访问 WorkBuddy 数据，不影响正在运行的程序\r\n- 跨平台兼容：支持 Windows/macOS/Linux，Python 3.10+ 即可运行\r\n\r\n## WorkBuddy Usage Status —— Agent 执行指令\r\n\r\n本文件是给 AI 的执行说明书，用户视角的安装、读图、故障排查见 `README.md`；指标算法口径见 `DATA-GUIDE.md`。\r\n\r\n## 触发条件\r\n\r\n当用户**明确指向 WorkBuddy 自身**、表达以下意图时调用本技能。description 已含触发词，此处强化判断与收紧边界：\r\n\r\n- 想查看 / 生成 / 导出**自己的 WorkBuddy** 使用统计、工作量、成本看板；\r\n- 关心 token 消耗、模型分布与性价比、思考效率、错误监控、用量高峰日等任一维度在 WorkBuddy 本机 trace 中的数据；\r\n- 想对账某段时间 WorkBuddy 用了多少积分（credit）。\r\n\r\n**反向触发词**：用户意图指向以下任一情况时，本技能不适用，应直接告知用户而非静默跳过：\r\n\r\n- 想查看 / 统计**其他产品**（如 Cursor、VS Code、Trae、Claude 等任意第三方系统）的用量、数据、分析；\r\n- 仅泛指\"导出我的数据 / 做个统计图表 / 生成看板\"，未明确指向 WorkBuddy 本机用量；\r\n- 想为任意数据集生成通用可视化 / 报表；本技能只读 `~/.workbuddy`，不具备通用图表能力。\r\n\r\n遇到上述情况，回复要点：本技能只读取并可视化 WorkBuddy 本机（`~/.workbuddy`）的使用数据，不涉及其他产品或通用数据；请确认是否要分析 WorkBuddy 自身用量，或改用对应产品的工具。\r\n\r\n## 执行步骤\r\n\r\n抽取器仅依赖 Python 标准库，运行前无需 pip 安装任何包。在技能目录下运行：\r\n\r\n```\r\npython3 scripts/usage_extractor.py [--out <输出目录>] [--home <数据根>] [--credit-xlsx <路径>] [--billing-token-file <路径>] [--seed <旧快照>] [--no-archive]\r\n```\r\n\r\n- `--out <dir>`：输出目录，默认当前工作目录。\r\n\r\n- `--home <dir>`：指定数据根目录，默认 `~/.workbuddy`；此参数仅用于迁移或测试，会改变实际读取路径，日常使用不要加。\r\n\r\n- `--credit-xlsx <path>`：传入从 `workbuddy.cn` 用量页导出的 xlsx，用服务端精确 credit 覆盖对应日期窗口；用于\"查清某月精确花费/对账\"。默认不主动使用，仅当用户明确要求精确 credit 时再加。\r\n\r\n- `--billing-token-file <path>`：Path A（opt-in，默认关闭）。用户从自己浏览器 DevTools 手动复制用量 API 的鉴权头（如 `Cookie: ...` 整行，或 `Authorization: Bearer ...`）存入本地文件后传入，skill 以该 token 调用官方用量 API（`/billing/meter/get-user-request-usage`）拉取逐请求精确 credit，效果同 `--credit-xlsx` 但无需先导出 xlsx。**token 必须由用户显式提供，skill 绝不自动读取宿主 App 凭据存储**；不传此参数时零网络。详见 README「精确化 credit（可选）」与 `CHANGELOG.md` 安全等级评估。\r\n\r\n- `--seed <path>`：旧快照种子（`usage-status.json` 或历史 dashboard HTML）。一次性导入其每日总量进入持久覆盖层，恢复已被 WorkBuddy 30 天清理的日期（逐笔明细不可追溯）。导入后持久生效，无需重复传入。\r\n\r\n- `--no-archive`：禁用自动归档合并（默认开启，不建议）。\r\n  \r\n  > ⚠️ **用户侧 token 安全提醒**：该 token 文件等同于你的 WorkBuddy 会话凭证，**请当作密码保管**——① 不要提交到任何 Git 仓库 / 云盘 / 聊天工具；② 限制文件权限（如 `chmod 600`），用完即删或在 workbuddy.cn 退出登录使其失效；③ 不要分享给他人，也不要长期留存明文。skill 只在使用该参数时联网一次，且绝不自动读取宿主 App 的凭据存储。\r\n\r\n执行后在该目录生成 5 个文件：\r\n\r\n- `workbuddy-usage-status-dashboard-<时间戳>.html` —— 数据内联、Chart.js 外链，双击/预览即可看，零外网依赖；文件名带生成时间戳，每次生成独立文件，不覆盖旧报告；\r\n- `usage-status.json` —— 原始聚合数据，供二次处理；\r\n- `usage-status.js` —— `window.USAGE_STATUS = {...}`，供 HTML 通过 `<script>` 直接引入，以此避开 `file://` 的 fetch 跨域限制。\r\n- `chart.umd.min.js` —— 图表引擎，由抽取器从 skill 包复制到输出目录，需与 HTML 同目录存放。\r\n- `usage-full-<时间戳>.csv` —— 全量数据 CSV（每日汇总 / 按模型 / 会话清单 / 调用明细 / 错误分区），与看板同源；内置浏览器无法下载 CSV 时直接取用此文件。\r\n\r\n> ⚠ **30 天缓存期（重要）**：WorkBuddy 现对本机 traces 只保留 **30 天**，本 skill 每次运行会自动把数据归档到 `~/.workbuddy/usage-archive/`，之后无论 trace 是否被清理，看板始终是全量视图——**但归档只在运行时发生**，所以需至少每 30 天运行一次，建议设置自动任务，断档超 30 天期间的 trace 无法追溯；首次运行只能看到最近 30 天。可用 `--seed <旧快照>` 导入历史快照恢复更早的每日总量。\r\n\r\n## 交付方式\r\n\r\n生成完成后，在输出目录找到最新生成的 `workbuddy-usage-status-dashboard-*.html`，按文件名时间戳取最大者，用 `present_files` 打开预览交回给用户。\r\n\r\n## 约束与口径\r\n\r\n- 只读不写：仅以只读模式读 `~/.workbuddy` 下的 `workbuddy.db` 与 `traces/`，只读参数固定为 mode=ro；不修改 WorkBuddy 自身数据、不上传任何数据、不读取任何 API key/密码。默认零外部请求；**仅当用户显式传入 `--billing-token-file` 时**才向官方用量 API（`workbuddy.cn`）发起一次出站 HTTPS 请求，且鉴权凭据由用户提供（绝不自动读取宿主 App 凭据存储）。不传该参数时完全离线。\r\n- 指标口径：token 为权威主指标，本地 trace 带精确时间戳，按请求本地时区归日，精确；credit 为会话级估算，本地无逐日时间戳，按归首日近似，非精确值，精确值只能由 `--credit-xlsx` 给出。各指标的具体算法、聚合口径与已知限制见 `DATA-GUIDE.md`，不要凭空编造数字。\r\n- 数据完整性：抽取器顶部警告条已列出被跳过/解析失败的 trace 与会话，报告可能不完整属正常现象，如实告知用户即可。\r\n- 产物确定：每次运行仅生成上述 5 个固定文件（dashboard HTML / `usage-status.json` / `usage-status.js` / `chart.umd.min.js` / `usage-full-<时间戳>.csv`），规模由本地 `~/.workbuddy` 数据量天然限定，不存在无界输出。\r\n\r\n## 相关文档\r\n\r\n- `README.md`：用户视角的安装、使用场景、读图指南、故障排查。\r\n- `DATA-GUIDE.md`：指标计算的唯一真相源，含算法、聚合口径、图表参数、归因方法、已知限制。\r\n- `CHANGELOG.md`：版本变更记录与安全等级评估。\r\n\r\n>\n\nFile v1.4.0:README.md\n\n> **Skill Overview**\r\n> \r\n> WorkBuddy Usage Status turns WorkBuddy's own local usage data into an offline, auditable dashboard — token spend, thinking time, thinking efficiency, model distribution, error count, and credit consumption. It ranks model cost-performance (credit per 1k tokens) with switching suggestions so you can pick the cheapest model, and now supports a date-range filter so you can zoom into any period. All model-share charts are limited to the top 10 models with the rest grouped as \"Other\". All data stays on your machine under `~/.workbuddy/`; **default zero network, no external APIs**. The generated dashboard is one HTML file plus a local Chart.js copy written into the same folder, so it renders offline with zero dependencies. An optional **opt-in** mode can pull precise credit from WorkBuddy's official usage API using a token you manually export from your own browser (never auto-read from the host App) — see §6 known limits.\r\n> \r\n> **What it does**: Offline dashboard for WorkBuddy's local usage data — token / credit consumption, thinking efficiency, model distribution & cost-performance, date-range filtering, error monitoring, and usage-spike analysis. Purely local **by default**, zero network dependency; an optional opt-in flag can fetch precise credit via the official usage API with a user-supplied token (disabled by default, never auto-reads host credentials).\r\n> \r\n> **Recent updates**:\r\n> \r\n> - **Cache hit-rate panel** — overall hit rate, a daily trend line, and a per-model ranking (models with fewer than 10 calls are excluded).\r\n> - **Full-dataset CSV on every run** — a timestamped `usage-full-<timestamp>.csv` is written next to the dashboard; its headers and section names follow your OS language.\r\n> - **Auto-archiving against WorkBuddy's 30-day trace cleanup** — every run merges live traces with a local archive, so hist\n\nArchive v1.3.3: 13 files, 1332486 bytes\n\nFiles: CHANGELOG.md (11029b), dashboard-preview-1.png (661215b), dashboard-preview-2.png (605875b), DATA-GUIDE.md (13342b), LICENSE (1084b), README.md (20208b), scripts/chart.umd.min.js (205399b), scripts/dashboard_template.html (60661b), scripts/usage_extractor.py (36385b), scripts/verify_credit_xlsx.py (6357b), skill-card.md (2332b), SKILL.md (10464b), _meta.json (141b)\n\nArchive v1.3.2: 13 files, 1332385 bytes\n\nFiles: CHANGELOG.md (10762b), dashboard-preview-1.png (661215b), dashboard-preview-2.png (605875b), DATA-GUIDE.md (13432b), LICENSE (1084b), README.md (20183b), scripts/chart.umd.min.js (205399b), scripts/dashboard_template.html (60673b), scripts/usage_extractor.py (36348b), scripts/verify_credit_xlsx.py (6357b), skill-card.md (2477b), SKILL.md (10351b), _meta.json (141b)\n\nArchive v1.3.1: 13 files, 1332611 bytes\n\nFiles: CHANGELOG.md (10762b), dashboard-preview-1.png (661215b), dashboard-preview-2.png (605875b), DATA-GUIDE.md (13432b), LICENSE (1084b), README.md (20395b), scripts/chart.umd.min.js (205399b), scripts/dashboard_template.html (60906b), scripts/usage_extractor.py (36348b), scripts/verify_credit_xlsx.py (6357b), skill-card.md (2463b), SKILL.md (10351b), _meta.json (141b)\n\nArchive v1.3.0: 13 files, 1335356 bytes\n\nFiles: CHANGELOG.md (10527b), dashboard-preview-1.png (661215b), dashboard-preview-2.png (605875b), DATA-GUIDE.md (13432b), LICENSE (1084b), README.md (19548b), scripts/chart.umd.min.js (205399b), scripts/dashboard_template.html (61953b), scripts/usage_extractor.py (42281b), scripts/verify_credit_xlsx.py (6254b), skill-card.md (2592b), SKILL.md (9576b), _meta.json (141b)\n\nArchive v1.2.6: 12 files, 1443402 bytes\n\nFiles: CHANGELOG.md (9041b), dashboard-preview-1.png (764066b), dashboard-preview-2.png (658163b), DATA-GUIDE.md (12432b), LICENSE (1084b), README.md (12395b), scripts/chart.umd.min.js (205399b), scripts/dashboard_template.html (37583b), scripts/usage_extractor.py (27789b), skill-card.md (2363b), SKILL.md (6724b), _meta.json (141b)\n\nArchive v1.2.5: 13 files, 1599069 bytes\n\nFiles: CHANGELOG.md (9049b), dashboard-preview-1.png (764066b), dashboard-preview-2.png (658163b), DATA-GUIDE.md (12432b), LICENSE (1084b), README.md (12395b), scripts/chart.umd.min.js (205399b), scripts/dashboard_template.html (37583b), scripts/usage_extractor.py (27789b), skill-card.md (2436b), SKILL.md (6724b), workbuddy-usage-status-dashboard-20260825-140123.html (620814b), _meta.json (141b)","readmeExcerpt":"Skill: workbuddy-usage-status Owner: clancy-feng Summary: 离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为逐次实测精确值，涵盖思考效率、模型分布、成本与费率、单次提问成本、缓存命中率、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板，并同步导出全量 CSV 与 xlsx。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、全程零网络、可搬运；可选 --credit-xlsx 作参考补充，只在本地缺少逐次明细的日期上补入。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as pri","codeSnippets":[],"executableExamples":[],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\nname: \"workbuddy-usage-status\"\r\nslug: workbuddy-usage-status\r\ndisplayName: \"WorkBuddy 使用状态看板\"\r\nversion: 1.5.1\r\ndescription: \"离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为逐次实测精确值，涵盖思考效率、模型分布、成本与费率、单次提问成本、缓存命中率、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板，并同步导出全量 CSV 与 xlsx。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、全程零网络、可搬运；可选 --credit-xlsx 作参考补充，只在本地缺少逐次明细的日期上补入。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit measured per call, covering thinking efficiency, model distribution, model cost & rates, costliest single prompts, cache hit rate, date-range filtering, error monitoring, usage-spike inspection; a full CSV and xlsx export is written on every run. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local and zero-network; the optional --credit-xlsx serves as a reference supplement only, filling days that lack local per-call detail.\"\r\nagent_created: true\r\nlicense: MIT\r\nsummary: \"离线可视化 WorkBuddy 本机使用数据，以 token 消耗为主指标、credit 为逐次实测精确值，涵盖思考效率、模型分布、成本与费率、单次提问成本、缓存命中率、日期区间筛选、错误监控、用量高峰探查，生成本地使用信息看板，并同步导出全量 CSV 与 xlsx。仅当用户**明确**想查看、生成或导出**自己 WorkBuddy 本机/本账号**的使用状态 / 使用统计 / 工作信息看板时调用；不用于其他产品或系统的用量统计，也不为任意数据生成通用看板。纯本地、全程零网络、可搬运；可选 --credit-xlsx 作参考补充，只在本地缺少逐次明细的日期上补入。 EN: Offline dashboard for WorkBuddy local usage analytics, with token as primary metric and credit measured per call, covering thinking efficiency, model distribution, model cost & rates, costliest single prompts, cache hit rate, date-range filtering, error monitoring, usage-spike inspection; a full CSV and xlsx export is written on every run. Triggers only when the user explicitly wants to view, generate, or export their own WorkBuddy local/account usage status / stats / activity dashboard; not for other products' usage analytics, nor for building generic dashboards from arbitrary data. Fully local and zero-network; the optional --credit-xlsx serves as a reference supplement only, filling days that lack local per-call detail.\"\r\ntrigger:\r\n  - 查看 WorkBuddy 使用状态\r\n  - 生成 WorkBuddy 用量看板\r\n  - 导出 WorkBuddy 用量数据\r\n  - WorkBuddy token 消耗统计\r\n  - WorkBuddy 积分消耗 / 对账\r\n  - WorkBuddy 模型分布与性价比\r\n  - WorkBuddy 用量高峰 / 错误监控\r\nallowed-tools: python3, read_file, write_file\r\nmetadata:\r\n  clawdbot:\r\n    emoji: \"📊\"\r\n    requires:\r\n      bins:\r\n        - python3\r\n\r\n---\r\n\r\n# \r\n\r\n## 💖 支持这个项目\r\n\r\n> 📊 已被 **4000+** WorkBuddy 用户下载使用，覆盖 SkillHub & ClawHub 双平台。\r\n\r\n如果这个工具帮到了你，欢迎：\r\n\r\n- ⭐ 去 GitHub 点个 Star\r\n- 🐛 遇到问题提 Issue\r\n- 📢 分享给你的 WorkBuddy 用户朋友\r\n\r\n**GitHub**：<https://github.com/clancy-feng/workbuddy-usage-status>\r\n\r\n## 界面预览\r\n\r\n![preview](https://raw.githubusercontent.com/clancy-feng/workbuddy-usage-status/refs/heads/main/assets/dashboard-preview-1.png)\r\n\r\n## 技能简介\r\n\r\n把 WorkBuddy 自己的本地使用数据，变成一份离线可查的 Dashboard。\r\n\r\n可以看到：to"},{"path":"README.md","content":"> **Skill Overview**\r\n> \r\n> WorkBuddy Usage Status turns WorkBuddy's own local usage data into an offline dashboard — token spend, thinking time, thinking efficiency, model distribution, error count, and credit consumption. It ranks model cost-performance and shows per-model rates so you can pick the cheapest model, and supports a date-range filter so you can zoom into any period. All model-share charts are limited to the top 10 models with the rest grouped as \"Other\". All data stays on your machine under `~/.workbuddy/`; **default zero network, no external APIs**. The generated dashboard is one HTML file plus a local Chart.js copy written into the same folder, so it renders offline with zero dependencies.\r\n> \r\n> **What it does**: Offline dashboard for WorkBuddy's local usage data — token / credit consumption, thinking efficiency, model distribution & cost-performance, date-range filtering, error monitoring, and usage-spike analysis.\r\n> \r\n> **Recent updates**:\r\n> \r\n> - **Per-call credit** — credit now comes from every model call logged in local session files, attributed to the day the call happened. No more \"all credit on the session's first day\".\r\n> - **Model cost & rates** — one table, two groups of columns: cost reality shows calls, tokens, credit, and credit per million tokens; rate structure shows non-cached input, cached input, and output unit prices, plus off-peak discount. Both are back-calculated from local per-call detail.\r\n> - **Costliest single prompts** — the 20 priciest prompts by credit, with concentration stats, so you can find the few calls that actually cost money.\r\n> - **Cache hit-rate panel** — overall hit rate, a daily trend line, and a per-model ranking.\r\n> - **Full-dataset CSV and xlsx on every run** — timestamped `usage-full-<timestamp>.csv` and `usage-full-<timestamp>.xlsx` are written next to the dashboard. The CSV carries all 14 sections in a single file; the xlsx puts each section in its own worksheet. Headers and section names follow your OS language.\r\n> - **Auto-archiving against WorkBuddy's 30-day trace cleanup** — every run merges live traces with a local archive, so history keeps accumulating; a dashboard banner reminds you to run at least once every 30 days. An optional `--seed <old snapshot>` imports an older snapshot's daily totals.\r\n> - **Drill-down** — top-10 sessions expand into per-turn tables with an optional masked prompt column; usage-peak cards expand into that day's session table and model Top 5.\r\n> \r\n> **How to install**\r\n> \r\n> ```\r\n> clawhub install workbuddy-usage-status\r\n> ```\r\n> \r\n> **How to use**\r\n> \r\n> - **Chat trigger:** Describe what you want in plain English or Chinese. This skill applies when you ask to view, generate, or export **your own** WorkBuddy usage status / stats / activity dashboard. Examples:\r\n>   \r\n>   \"generate a WorkBuddy usage dashboard\" · \"view my recent WorkBuddy usage status\" · \"show token / credit consumption and model distribution\" · \"which model is the most cost-effectiv"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn71k620de8zkrxmqxjtdyjmg58b00fm\",\n  \"slug\": \"workbuddy-usage-status\",\n  \"version\": \"1.5.1\",\n  \"publishedAt\": 1790862749830\n}"},{"path":"CHANGELOG.md","content":"# Changelog / 版本历史\n\n### 📊 当前状态\n\n- Skillhub & Clawhub 双平台下载突破 4000\n- SkillHub TRACE 评分 4.8（优秀）\n- ClawHub 搜 WorkBuddy 排第一\n\n### ⭐ 支持\n\n如果这个看板帮你看清了 WorkBuddy 的用量，欢迎去 GitHub 点个 Star 支持独立开发 🙏\n\n👉 [GitHub - clancy-feng/workbuddy-usage-status: Offline WorkBuddy usage analytics dashboard — token/credit consumption, model cost-performance, spike inspection. Zero network dependency. · GitHub](https://github.com/clancy-feng/workbuddy-usage-status)\n\n## [1.5.1] - 2026-10-01\n\n### 修复 · 安全性增强\n\n- 去掉了多余的权限声明和文件用途说明。\n- 补充了更多的生成物敏感信息提示。\n\n## [1.5.0] - 2026-09-30\n\n### 新功能 · 重大突破——Credit 精确到逐次调用\n\n- 此前只能取到会话级 credit 并整体挂到会话首次出现的日期，现在找到了新的线索，终于可以把积分消耗精确到每次会话调用中了。\n- 会话文件不受 WorkBuddy 的 30 天 trace 清理影响，历史 credit 的覆盖面因此比 token 更完整。\n- 看板新增 credit 来源徽标：来自本地逐次明细时显示「逐次实测」，叠加了官方导出补充时显示「逐次实测 + xlsx 补充」。\n- 新增提示条，列出「有 credit 但 token 明细已被清理」的日期，说明这些天积分准确、token 偏低属正常现象。\n- 随之移除上传用量xlsx和token去官方API取数据的功能，`--credit-xlsx` 定位收窄为参考补充：只补入本地没有逐次明细的日期，不再覆盖实测值。\n\n### 新功能 · 模型成本与费率\n\n- 新增「模型成本与费率」卡片，替代原「模型性价比排行」。一张表两组列：成本实况列出调用数、token、credit、每百万 token 积分；费率结构列出非缓存输入、缓存输入、输出三档单价与低谷折扣。\n- 费率由本地逐次明细反推。按模型与月份分组，月内再分标准与低谷两个时段。\n- 进表门槛为 token 达到最大模型的百分之一。标注费率另需调用数不少于 30 次且拟合优度 R² 不低于 0.95，不达标的模型保留在表内显示成本。\n- 有多个费率阶段的模型，行首可展开查看各历史阶段的单价与样本数。\n- 增加优化建议：在任务量可比的模型中比出最省与最贵两条，差异达到 5% 时给出提示。\n\n### 新功能 · 单次提问成本榜\n\n- 新增「单次提问成本榜」卡片，聚合一次提问触发的全部模型调用，列出积分最高的 20 次，字段含日期、时刻、会话、涉及模型、调用次数、积分、占总积分比例。\n- 同时给出集中度：最贵的 1% 与 10% 提问各贡献多少比例的积分。实测样本中，最贵的 10% 提问贡献约 59% 的积分。\n\n### 新功能 · 随报告生成 xlsx\n\n- 每次运行在输出目录同时生成 `usage-full-<时间戳>.xlsx`，与全量 CSV 同源，14 个分区各占一个工作表，首行冻结、列宽按内容自适应。\n- CSV 继续生成，与 xlsx 内容同源。\n\n### 移除 · 看板内联上传 xlsx\n\n- 看板顶部筛选栏的「上传用量导出 xlsx」按钮已移除，功能收归命令行 `--credit-xlsx`。该按钮原为替代命令行操作而设，但 credit 现已逐次精确，它只在本地缺少明细的日期上起作用，留在看板上容易被误读为必需步骤。\n\n## [1.4.1] - 2026-09-17\n\n### 修复 · 安全审计增强\n\n- 修正文档与实现不一致：读写边界、数据源数量、抽取器模块说明按实际行为更新。\n- 补充用户警告：产物含会话标题与提问原文摘要的敏感性提醒；token 参数只传本地路径、凭证不会进入命令行参数。\n- 收紧触发边界：新增触发词表与典型触发说明。\n\n## [1.4.0] - 2026-09-16\n\n### 新功能 · 随报告生成全量CSV\n\n- 每次运行时，会同步在工作区目录生成包含全量数据的CSV文件，适配系统语种。\n- 之前错误明细独立导出文件功能移除，合并至全量CSV中。\n\n### 新功能 · 缓存命中率面板\n\n- 新增缓存命中率卡片：整体命中率 + 每日趋势 + 按模型排行。\n\n### 新功能 · 产物自动存档复用\n\n- 现Workbuddy只会自动保存最近30天的Trace记录，Skill机制相应修改为会自动归档数据文件，且首次运行后，每次生成会调用之前文件补全数据，界面中加入“安装后每三十天内需运行一次“提醒。\n\n### 改进 · 数据明细按钮显示\n\n- Top10会话和用量高峰显示添加明细按钮，展开可查看更多细节。\n- 提问列默认隐藏，由顶部「显示提问」开关控制。\n\n### 修复 · 文案界面调整\n\n- 优化部分界面布局和文档内容。\n\n## [1.3.3] - 2026-09-09\n\n### 修复 · Bug fix\n\n- 修复 Workbuddy新版导致的生成物在Workbuddy内置浏览器中无法正确渲染内联Chart.js问题，并调整相应文案说明。\n\n### 修复 · 文案调整\n\n- 优化部分文案显示和文档内容。\n\n## [1.3.2] - 2026-09-06\n\n### 修复 · Bug fix\n\n- 修复 `--billing-token-file` 调用官方用量 API 时误引用尚未构建的 `summary` 导致运行时报错。\n\n### 修复 · 文案调整\n\n- 优化部分文案显示和文档内容。\n\n## [1.3.0] - 2026-09-04\n\n### 修复 · 日期范围校验\n\n- 起始日期晚于结束日期时，看板**报错提示**（「起始日期不能晚于结束日期，请修正」）。\n\n### 新功能 · 精确积分统计入口更新\n\n- 新增 `--billing-token-file <路径>`：用户从浏览器 DevTools 手动复制用量 API 的鉴权头（如 `Cookie: ...` 整行，或 `Authorization: Bearer ...`）后，skill 以该 凭证调用官方用量 API 精确 credit，效果与 `--credit-xlsx` 一致。\n- 顶部筛选栏新增「上传用量导出 xlsx」按钮：在浏览器里直接选文件即可覆盖每日 credit，**效果与 `--credit-xlsx` 完全一致**，无需跑命令。\n\n### 新功能 · 错误明细 CSV 导出\n\n- 错误明细卡片新增「导出 CSV」按钮：将 6 类分类统计（高频错误信息 / 按类型 / 按工具 / 按模型 / 按会话 / 近期错误样本"},{"path":"DATA-GUIDE.md","content":"# 数据与方法说明\r\n\r\n本文档解释 `workbuddy-usage-status` 看板里每一个数字是怎么算出来的、数据从哪来、各个阈值和参数的含义。\r\n\r\n> **English note:** This document is written in Chinese. An English overview of the skill is at the top of `README.md`. The dashboard itself supports both Chinese and English, and CSV headers follow the operating system UI language.\r\n\r\n---\r\n\r\n## 1. 数据来源\r\n\r\n看板只读本地文件，有三个数据源：\r\n\r\n| 数据源  | 路径（默认 `~/.workbuddy/`）                           | 提供什么                                                                                     |\r\n| ---- | ------------------------------------------------ | ---------------------------------------------------------------------------------------- |\r\n| 会话库  | `workbuddy.db`（`sessions` 表 + `session_usage` 表） | 会话标题/状态/模型；会话级 credit 账本，用于本地无明细时的回退                                                     |\r\n| 调用轨迹 | `traces/*/trace_*.json`，每个文件对应一次请求               | 每次请求的时长、token 拆分、思考用时、模型、工具调用数、错误数                                                       |\r\n| 会话文件 | `projects/<工作区>/<sessionId>.jsonl`               | 用户提问摘要 `<user_query>`，截 300 字，展示默认脱敏；每次模型调用的模型名与精确 credit `providerData.rawUsage.credit` |\r\n\r\n三个口径的相互关系：\r\n\r\n- Token / 思考用时 / 错误 / 工具调用：来自 `traces/`，按\"一次请求\"逐条统计。\r\n- Credit（积分）：来自 `projects/*/*.jsonl` 里**每一次模型调用**的 `providerData.rawUsage.credit`，带该次调用的时间戳，按调用时间归日。`workbuddy.db` 的 `session_usage.credit_json` 只作为本地无明细会话的兜底来源。\r\n\r\n因此\"某个会话 token 很多但 credit=0\"是正常现象，它是限免模型，见第 6 节。\r\n\r\n---\r\n\r\n## 2. 基础指标口径\r\n\r\n### 2.1 一次请求记录了什么\r\n\r\n每条 trace 对应一次请求。\r\n\r\n- Token 总量 `tokens` = trace 顶层 `totalTokens`。\r\n- 输入 / 输出 / 缓存 token = `modelInfo.totalInputTokens` / `totalOutputTokens` / `totalCachedTokens`。\r\n- 思考用时 `thinking_sec` = 该 trace 里所有 `type=generation`（模型推理）的 span 时长之和，毫秒转秒；工具调用（tool/mcp/function）时长不计入，它是\"模型推理/思考\"的代理指标。\r\n- 工具调用次数 `calls` = `modelInfo.callCount`。\r\n- 错误数 `errors` = trace 里 `status=error` 或带 `error` 字段的 span 数量，按 span 级统计，一次请求可能多个 span 报错。\r\n- 模型名 `model` = `modelInfo.models` 拼接；无则记 `unknown`。\r\n- 会话归属 `session_id` = trace 的 `sessionId`。统计仅计入有实际 token 消耗的 trace；无 token 的工作流记账记录不进入用量基数。在有效 trace 上，`sessionId` 与 `workbuddy.db` 的 `sessions` 表 100% 对应，所有真实用量都能精确归到某个会话。\r\n\r\n### 2.2 聚合口径\r\n\r\n- 按天：以请求 `startedAt` 转本地时区的日期（`%Y-%m-%d`）分组。\r\n- 按模型：以 trace 的 `model` 字段聚合。\r\n- 按会话：以 `session_id` 聚合；会话标题/状态/模型取自 `sessions` 表（`custom_title` 优先于 `title`）。会话集合包含三类：本次扫描到的 trace 所属会话、从归档恢复的已清理 trace 所属会话、只有逐次明细而没有 trace 的会话。后两类补齐后，看板顶部按会话累加的用量合计才与总量字段一致；其中第三类只有 credit，请求数与 token 均为 0。\r\n- Credit **按调用归日**：每一次模型调用的 `providerData.rawUsage.credit` 带该次调用的时间戳，归入当日；`by_day[d].pc` 为真表示该日 credit 来自逐次实测。本地没有对话文件可解析的历史会话，其 credit 无法归日，单列提示。\r\n\r\n---\r\n\r\n## 3. 顶部 KPI\r\n\r\n| KPI       | 计算方式                          |\r\n| --------- | ----------------------------- |\r\n| 总请求数      | `traces` 文件总数                 |\r\n| 总 Token   | 所有请求 `tokens` 之和              |\r\n| 思考用时      | 所有请求 `thinking_sec` 之和，换算成小时  |\r\n| 平均效率      | `总输出 token / 总思考秒数`，单位 tok/s  |\r\n| Credit 消耗 | 每日 credit 之和，每日值来自逐次实测，见 §4.1 |\r\n| 错误数       | 所有请求 `errors` 之和              |\r\n\r\n---\r\n\r\n## 4. 各图表 / 卡片的计算方法与参数\r\n\r\n### 4.1 每日积"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1560,"uniquenessScore":39,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T17:10:16.560Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T17:10:16.560Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T21:46:31.699Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}