mcpField
A
analytics

analytics

github.com/yonatangross数据与数据库299204 次安装今天更新
代码仓库

关于 analytics

用于查询本地 Claude Code 分析数据并生成 Agent、技能、钩子、团队、会话、令牌、成本和趋势报告的 Skill。它强调数据质量限制,并依据本地文件而非猜测提供统计。

主要功能

  1. 01多类别分析报告
  2. 02回放会话时间线
  3. 03令牌与成本分析
  4. 04每日活动和趋势报告
  5. 05有数据时呈现 OTEL 面板
  6. 06数据质量保护

适用场景

  1. 01查看 Agent 和技能的使用情况
  2. 02找出运行缓慢或失败的钩子
  3. 03估算令牌成本与缓存节省
  4. 04检查会话活动趋势

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/yonatangross/orchestkit --skill analytics

安装后在 Claude Code 中输入/analytics确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

test-cases.json
references/
data-locations.md
trends-analysis.md
session-replay.md
otel-gateway-source.md
jq-queries.md
cost-estimation.md
otel-fields.md
rules/
_template.md
_sections.md
data-privacy.md
large-file-streaming.md
cost-calculation.md
visualization-dashboards.md
visualization-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.jsonlreferences/jq-queries.md
models根据 stats-cache.json 中的令牌总数统计模型委派情况。无法按单次启动归属模型(#3034)stats-cache.jsonreferences/jq-queries.md
skills按调用次数排列的热门技能skill-usage.jsonlreferences/jq-queries.md
hooks耗时最长的钩子和失败率hook-timing.jsonlreferences/jq-queries.md
teams团队启动次数、空闲时间、任务完成情况team-activity.jsonlreferences/jq-queries.md
session回放包含工具、令牌和时间信息的会话时间线CC 会话 JSONLreferences/session-replay.md
cost估算令牌成本和缓存节省stats-cache.jsonreferences/cost-estimation.md
trends每日活动、模型委派情况、活跃高峰时段stats-cache.jsonreferences/trends-analysis.md
summary所有类别的综合视图所有文件references/jq-queries.md
otelCC 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.jsonlAgent 启动记录 — 仅 ts、pid、agent、success 字段可用。model/agent_name/output_len/duration_ms 无效(#3034),且约 38% 的记录是虚假记录(#3035)
skill-usage.jsonl技能调用
hook-timing.jsonlHook 执行耗时和失败率
session-summary.jsonl会话结束摘要
task-usage.jsonl任务完成情况
team-activity.jsonl团队启动和空闲事件

规则

每个类别都有单独的规则文件,按需从 rules/ 加载:

类别规则影响关键模式
数据完整性rules/data-privacy.mdCRITICAL对项目 ID 进行哈希处理,绝不记录 PII,仅限本地
成本与 Tokenrules/cost-calculation.mdHIGH按 Token 类型分别定价,计算缓存节省
性能rules/large-file-streaming.mdHIGH对 >50MB 文件使用流式 jq,查询时考虑文件轮转
可视化rules/visualization-recharts.mdHIGHRecharts 图表、ResponsiveContainer、工具提示
可视化rules/visualization-dashboards.mdHIGH仪表板网格、统计卡片、组件注册表

共计:4 个类别下的 5 条规则

参考资料

参考资料内容
references/jq-queries.md适用于所有 JSONL 子命令、可直接运行的 jq 查询
references/session-replay.mdSession JSONL 解析、时间线提取与呈现
references/cost-estimation.md定价表、成本公式、每日成本查询
references/trends-analysis.md每日活动、模型委派、峰值时段查询
references/data-locations.md所有数据源、文件格式、CC session 结构
references/otel-fields.mdCC 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 - 根据用户自己的提示词,了解用户本人将注意力放在了哪里(用户自己的提示词,而非工具遥测)

评论

支持 Markdown