| name | session-report |
| description | Generate an explorable HTML report of Claude Code session usage (tokens, cache, subagents, skills, expensive prompts) from ~/.claude/projects transcripts. |
Session Report
Produce a self-contained HTML report of Claude Code usage and save it to the current working directory.
Steps
-
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:
node <skill-dir>/analyze-sessions.mjs --json --since 7d > /tmp/session-report.json
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:
cp <skill-dir>/template.html ./session-report-$(date +%Y%m%d-%H%M).html
-
Edit the output file (use Edit, not Write — preserve the template's JS/CSS):
-
Report the saved file path to the user. Do not open it or render it.
Notes
- The template is the source of interactivity (sorting, expand/collapse, block-char bars). Your job is data + narrative, not markup.
- Keep commentary terse and specific — reference actual project names, numbers, timestamps from the JSON.
top_prompts already includes subagent tokens and rolls task-notification continuations into the originating prompt.
- If the JSON is >2MB, trim
top_prompts to 100 entries and cache_breaks to 100 before embedding (they should already be capped).