关于 analytics
用于查询本地 Claude Code 分析数据并生成 Agent、技能、钩子、团队、会话、令牌、成本和趋势报告的 Skill。它强调数据质量限制,并依据本地文件而非猜测提供统计。
主要功能
- 01多类别分析报告
- 02回放会话时间线
- 03令牌与成本分析
- 04每日活动和趋势报告
- 05有数据时呈现 OTEL 面板
- 06数据质量保护
适用场景
- 01查看 Agent 和技能的使用情况
- 02找出运行缓慢或失败的钩子
- 03估算令牌成本与缓存节省
- 04检查会话活动趋势
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ yonatangross/ orchestkit --skill analytics安装后在 Claude Code 中输入/analytics确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
test-cases.jsonreferences/data-locations.mdtrends-analysis.mdsession-replay.mdotel-gateway-source.mdjq-queries.mdcost-estimation.mdotel-fields.mdrules/_template.md_sections.mddata-privacy.mdlarge-file-streaming.mdcost-calculation.mdvisualization-dashboards.mdvisualization-recharts.md详细介绍
跨项目分析
从 ~/.claude/analytics/ 查询本地分析数据。所有数据仅保存在本地,注重隐私保护(项目 ID 已哈希处理,不包含个人身份信息)。
根据本地文件回答使用情况问题,绝不猜测:Agent 使用情况(使用了哪些 Agent 以及使用频率——不包括使用了哪个模型,详见注意事项)保存在 ~/.claude/analytics/agent-usage.jsonl 中;钩子性能和失败情况保存在 ~/.claude/analytics/hook-timing.jsonl 中;令牌和成本总计保存在 ~/.claude/stats-cache.json 中。使用 jq 单行命令(见下文)查询,并提供实际计数,而不是指向仪表板。
子命令
解析用户的参数,确定要显示的报告。如果未提供参数,请使用 AskUserQuestion 让用户选择。
| 子命令 | 说明 | 数据源 | 参考 |
|---|---|---|---|
agents | 按频率和成功率排列的热门 Agent(无法获取持续时间和模型信息——#3034) | agent-usage.jsonl | references/jq-queries.md |
models | 根据 stats-cache.json 中的令牌总数统计模型委派情况。无法按单次启动归属模型(#3034) | stats-cache.json | references/jq-queries.md |
skills | 按调用次数排列的热门技能 | skill-usage.jsonl | references/jq-queries.md |
hooks | 耗时最长的钩子和失败率 | hook-timing.jsonl | references/jq-queries.md |
teams | 团队启动次数、空闲时间、任务完成情况 | team-activity.jsonl | references/jq-queries.md |
session | 回放包含工具、令牌和时间信息的会话时间线 | CC 会话 JSONL | references/session-replay.md |
cost | 估算令牌成本和缓存节省 | stats-cache.json | references/cost-estimation.md |
trends | 每日活动、模型委派情况、活跃高峰时段 | stats-cache.json | references/trends-analysis.md |
summary | 所有类别的综合视图 | 所有文件 | references/jq-queries.md |
otel | CC 2.1.117 + 2.1.122 + 2.1.126 OTEL 增强:热门斜杠命令(用户与模型)、按 effort 统计的成本、effort 与成功率的相关性、按触发类型统计的技能激活情况、最常被提及的 @ 目标 | ~/.claude/otel/*.jsonl,或完成架构发现后由用户指定的 Loki + Prometheus 端点 | references/otel-fields.md、references/otel-gateway-source.md |
快速入门示例
# Top agents by spawn frequency. Excludes phantom rows (see caveat below).
jq -s 'map(select(.agent != "unknown")) | group_by(.agent) | map({agent: .[0].agent, count: length}) | sort_by(-.count)' ~/.claude/analytics/agent-usage.jsonl
# Cost per model: input + output token counts (multiply by per-model pricing;
# count cache-read tokens separately — prompt-cache hits are ~90% cheaper, so
# cache savings materially lower the real total)
jq '.modelUsage | to_entries | map({model: .key, input: .value.inputTokens, output: .value.outputTokens, cacheRead: .value.cacheReadInputTokens})' ~/.claude/stats-cache.json
# Slowest hooks by average duration, and failure rate as a percentage
jq -s 'group_by(.hook) | map({hook: .[0].hook, avg_ms: (map(.duration_ms) | add / length), fail_pct: (100 * (map(select(.ok != true)) | length) / length)}) | sort_by(-.avg_ms)' ~/.claude/analytics/hook-timing.jsonl
子命令速查指南
agents、models、skills、hooks、teams、summary — 运行与相应子命令匹配的 Read("references/jq-queries.md") 中的 jq 查询。以 Markdown 表格呈现结果。
session — 按照 Read("references/session-replay.md") 中的 4 步流程操作:定位会话文件、解析引用(最新/部分/完整 ID)、解析 JSONL、呈现时间线。
cost — 根据 Read("references/cost-estimation.md") 中的模型专属定价,计算 CC 的 stats-cache.json。显示各模型明细、总计和缓存节省额。对于 CC >= 2.1.174,还需与 CC 原生 /usage 的分组件归因交叉核对(见下文“CC 原生 /usage 归因”)。
trends — 按照 Read("references/trends-analysis.md") 中的 4 步流程操作:每日活动、模型委派、活跃高峰时段、历史统计。
summary — 运行所有子命令并呈现统一视图:会话总数、排名前 5 的 Agent、排名前 5 的技能、团队活动、唯一项目。如果 ~/.claude/otel/*.jsonl 存在且内容非空,则附加 otel-fields.md 中的 3 个 OTEL 面板;否则省略这些面板(不要渲染空面板)。
otel — 渲染 OTEL 面板:CC 2.1.117 的 3 个面板(用户与模型使用斜杠命令的排名、按工作量划分的成本、工作量与成功率的相关性),CC 2.1.119 的 3 个面板(超大输入、前置/后置延迟,见 otel-fields.md),CC 2.1.122 的 1 个面板(被提及次数最多的 @ 目标),以及 CC 2.1.126 的 1 个面板(按触发类型划分的技能激活情况)。查询、优雅降级规则和面板含义请参阅 Read("references/otel-fields.md")。如果某个面板对应的文件缺失或为空,该面板会自动显示“no OTEL data available (upgrade to CC ≥ X)”;只渲染有数据的面板。
数据质量注意事项 — 报告任何数字前请先阅读
agent-usage.jsonl 中测得的两项缺陷会影响该文件能够如实回答的问题。这些缺陷已于 2026-07-20 根据 11,249 条真实记录验证。
1. 8 个字段中有 4 个字段在 100% 的记录中均无效(#3034)。 每条记录的 model 都是字面字符串 "unknown",agent_name 都是 null,output_len 都是 0,且完全没有 duration_ms。只有 ts、pid、agent 和 success 有效。不要根据此文件报告模型委派、Agent 耗时或输出大小 — 按 .model 分组只会得到一个 unknown 分组,而不是明细。如果用户询问这些信息,请说明数据不可用,并引用 #3034;不要把单一分组的结果当作答案。
2. 约 38% 的记录是虚假事件,并非 Agent 启动记录(#3035)。 agent == "unknown" 的记录没有 SubagentStart,没有可读取的转录内容,其 Agent ID 也不会出现在 Claude Code 自身的会话数据中。它们会虚增分母:根据整个文件计算的任何激活率都是错误的。计算任何占比、百分比或排名前,请先筛选 select(.agent != "unknown")。 基于原始文件进行专用型与通用型的划分,会使专用型的占比低估约三分之一。
这两项都是写入端缺陷,并非查询错误 — 更好的 jq 表达式无法恢复缺失的数据。
数据文件
加载 Read("references/data-locations.md"),查看完整的数据源文档。
| 文件 | 内容 |
|---|---|
agent-usage.jsonl | Agent 启动记录 — 仅 ts、pid、agent、success 字段可用。model/agent_name/output_len/duration_ms 无效(#3034),且约 38% 的记录是虚假记录(#3035) |
skill-usage.jsonl | 技能调用 |
hook-timing.jsonl | Hook 执行耗时和失败率 |
session-summary.jsonl | 会话结束摘要 |
task-usage.jsonl | 任务完成情况 |
team-activity.jsonl | 团队启动和空闲事件 |
规则
每个类别都有单独的规则文件,按需从 rules/ 加载:
| 类别 | 规则 | 影响 | 关键模式 |
|---|---|---|---|
| 数据完整性 | rules/data-privacy.md | CRITICAL | 对项目 ID 进行哈希处理,绝不记录 PII,仅限本地 |
| 成本与 Token | rules/cost-calculation.md | HIGH | 按 Token 类型分别定价,计算缓存节省 |
| 性能 | rules/large-file-streaming.md | HIGH | 对 >50MB 文件使用流式 jq,查询时考虑文件轮转 |
| 可视化 | rules/visualization-recharts.md | HIGH | Recharts 图表、ResponsiveContainer、工具提示 |
| 可视化 | rules/visualization-dashboards.md | HIGH | 仪表板网格、统计卡片、组件注册表 |
共计:4 个类别下的 5 条规则
参考资料
| 参考资料 | 内容 |
|---|---|
references/jq-queries.md | 适用于所有 JSONL 子命令、可直接运行的 jq 查询 |
references/session-replay.md | Session JSONL 解析、时间线提取与呈现 |
references/cost-estimation.md | 定价表、成本公式、每日成本查询 |
references/trends-analysis.md | 每日活动、模型委派、峰值时段查询 |
references/data-locations.md | 所有数据源、文件格式、CC session 结构 |
references/otel-fields.md | CC 2.1.117 OTEL 字段(command_name、command_source、effort)、查询与仪表板面板 |
重要说明
- 所有文件均为 JSONL(以换行符分隔的 JSON)格式
- 对于大型文件(>50MB),使用不带
-s的流式jq——加载Read("rules/large-file-streaming.md") - 轮转文件:
<name>.<YYYY-MM>.jsonl——历史查询时请一并纳入 team字段仅在 team/swarm 会话期间存在pid是一个 12 位 SHA256 哈希值——不可逆,仅用于分组
CC 原生 /usage 归因(2.1.174+)
CC 2.1.174 为 /usage 添加了按组件归因的功能:缓存未命中、长上下文用量、子 Agent 成本,以及过去 24h / 7d 内按 skill / agent / plugin / MCP 划分的成本明细。目前,该功能显示在 VSCode 的“Account & usage”对话框中;在终端中运行 /usage。
当用户询问“哪个 skill/agent 实际成本最高”或质疑 ork 的本地估算时,请引导他们使用 /usage 作为权威数据源——对于其覆盖的时间范围,CC 自身的归因数据优先于 ork 基于启发式方法得出的 cost 估算。若要查看 CC 的 7 天窗口之外的历史数据或按项目进行切分,请使用 ork 的 cost/otel 视图;若要获取过去 24h/7d 的真实数据,请使用 /usage。
输出格式
以简洁的 Markdown 表格呈现结果。包含数量、百分比和平均值。如果文件不存在,请注明该类别尚未收集任何数据。
相关 Skills
ork:explore- 探索和分析代码库ork:remember- 存储项目知识ork:doctor- 健康检查诊断ork:prompt-focus- 根据用户自己的提示词,了解用户本人将注意力放在了哪里(用户自己的提示词,而非工具遥测)