npx skills add ...
npx skills add anthropics/claude-plugins-public --skill session-report
npx skills add anthropics/claude-plugins-public --skill session-report
Generate an explorable HTML report of Claude Code session usage (tokens, cache, subagents, skills, expensive prompts) from ~/.claude/projects transcripts.
The same skill content is published under more than one repo. The install counts are split across them; any of these commands works.
Produce a self-contained HTML report of Claude Code usage and save it to the current working directory.
Get data. Run the bundled analyzer (default window: last 7 days; honor a different range if the user passed one, e.g. 24h, 30d, or all). The script analyze-sessions.mjs lives in the same directory as this SKILL.md — use its absolute path:
For all-time, omit --since.
Read /tmp/session-report.json. Skim overall, by_project, by_subagent_type, by_skill, cache_breaks, top_prompts.
Copy the template (also bundled alongside this SKILL.md) to the output path in the current working directory:
Edit the output file (use Edit, not Write — preserve the template's JS/CSS):
<script id="report-data" type="application/json"> with the full JSON from step 1. The page's JS renders the hero total, all tables, bars, and drill-downs from this blob automatically.<!-- AGENT: anomalies --> block with 3–5 one-line findings. Express figures as a % of total tokens wherever possible (total = overall.input_tokens.total + overall.output_tokens). One line per finding, exact markup:
.take bad for waste/anomalies (red), .take good for healthy signals (green), .take info for neutral facts (blue). The .fig is one short number (a %, a count, or a multiplier like 12×). The .txt is one plain-English sentence naming the project/skill/prompt; wrap the subject in <b>. Look for: a project or skill eating a disproportionate share, cache-hit <85%, a single prompt >2% of total, subagent types averaging >1M tokens/call, cache breaks clustering.<!-- AGENT: optimizations --> block (at the bottom of the page) with 1–4 <div class="callout"> suggestions tied to specific rows (e.g. "/weekly-status spawned 7 subagents for 8.1% of total — scope it to fewer parallel agents").Report the saved file path to the user. Do not open it or render it.
top_prompts already includes subagent tokens and rolls task-notification continuations into the originating prompt.top_prompts to 100 entries and cache_breaks to 100 before embedding (they should already be capped).