Generated banner for Session Report
Generated logo for Session Report

Session Report

AnthropicOfficialPublished by Anthropic

  • Skill
  • Content generator
  • Agent tooling
  • Apache-2.0
  • Low risk
  • Has scripts

From the author

Generate an explorable HTML report of Claude Code session usage (tokens, cache, subagents, skills, expensive prompts) from ~/.claude/projects transcripts.
— the description by Anthropic

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The Session Report skill provides a structured way to visualize and audit Claude Code usage patterns. By analyzing session transcripts, it produces a self-contained, interactive HTML report that highlights token consumption, cache efficiency, subagent activity, and expensive prompts. It is designed to help users identify anomalies, optimize agent performance, and understand resource allocation across different projects.

What it does

  • Analyzes Claude Code session transcripts to extract usage metrics.
  • Generates a self-contained HTML report with interactive tables and charts.
  • Identifies high-consumption projects, skills, and individual prompts.
  • Highlights performance anomalies like low cache-hit rates or excessive subagent spawning.
  • Provides actionable optimization suggestions based on session data.
  • Supports configurable time ranges for historical analysis.

When to use it

  • When you need to audit token usage and costs across multiple Claude Code projects.
  • When investigating why a specific project or skill is consuming a disproportionate amount of resources.
  • When optimizing agent workflows to improve cache-hit rates.
  • When preparing a summary of agent activity for project management or cost-tracking purposes.

Advantages

  • Provides a clear, visual breakdown of complex session data.
  • Enables drill-down analysis into specific projects and subagents.
  • Offers automated identification of performance bottlenecks and anomalies.
  • Produces a portable, single-file HTML report for easy sharing and review.

Usage examples

“Generate a session report for the last 30 days.”
The agent analyzes the last month of Claude Code activity and saves a timestamped HTML report to the current directory.
“Create a report of all my Claude Code usage.”
The agent processes all available session transcripts and generates a comprehensive, interactive usage report.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/anthropics/session-report/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip session-report.zip -d .agents/skills

Documentation by Anthropic

Session Report

Produce a self-contained HTML report of Claude Code usage and save it to the current working directory.

Steps

  1. 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.

  2. Read /tmp/session-report.json. Skim overall, by_project, by_subagent_type, by_skill, cache_breaks, top_prompts.

  3. 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
  4. Edit the output file (use Edit, not Write — preserve the template's JS/CSS):

    • Replace the contents of <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.

    • Fill the <!-- 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:

      <div class="take bad"><div class="fig">41.2%</div><div class="txt"><b>cc-monitor</b> consumed 41% of the week across just 3 sessions</div></div>

      Classes: .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.

    • Fill the <!-- 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").

    • Do not restructure existing sections.

  5. 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).

Files

SKILL.md

Session Report

Produce a self-contained HTML report of Claude Code usage and save it to the current working directory.

Steps

  1. 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.

  2. Read /tmp/session-report.json. Skim overall, by_project, by_subagent_type, by_skill, cache_breaks, top_prompts.

  3. 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
  4. Edit the output file (use Edit, not Write — preserve the template's JS/CSS):

    • Replace the contents of <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.

    • Fill the <!-- 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:

      <div class="take bad"><div class="fig">41.2%</div><div class="txt"><b>cc-monitor</b> consumed 41% of the week across just 3 sessions</div></div>

      Classes: .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.

    • Fill the <!-- 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").

    • Do not restructure existing sections.

  5. 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).

Requirements and compatibility

Written for: Claude Code, Claude apps

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Node.js

Security

What our scanner noticed· Low risk

  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Anthropic
Publisher
Anthropic (Official)
Source
anthropics/claude-plugins-official · plugins/session-report/skills/session-report · commit 0412be7
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from plugins/session-report/LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Also distributed in
cline/skills

AutoGineer is not affiliated with or endorsed by Anthropic.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download session-report.zip