HTML-отчёт по сессиям Claude Code
Строит интерактивный отчёт об использовании Claude Code за период: токены, кэш, субагенты, скиллы, самые дорогие запросы и выводы.
СкиллAnthropicClaudeApache-2.0Нужен терминалПроверка не требуется
- Что делает
- Строит интерактивный отчёт об использовании Claude Code за период: токены, кэш, субагенты, скиллы, самые дорогие запросы и выводы.
- Когда брать
- Когда нужно понять, на какие проекты, скиллы и запросы уходит больше всего токенов, и найти, где можно сэкономить.
- Когда не брать
- Если Claude Code не установлен или журналов сессий в ~/.claude/projects нет.
- Пример запроса
- Сделай отчёт по использованию Claude Code за последние 30 дней.
- Нужно подключить
- терминал, Node.js, журналы сессий Claude Code на этом компьютере
Входит в плагин session-report. В Cowork и Claude Code можно поставить плагин целиком.
Как включить
- Скачайте архив и распакуйте его.
- Положите папку
session-reportв~/.claude/skills/. - Откройте Claude Code и опишите задачу своими словами: Claude подхватит скилл по описанию.
Текст
---
name: session-report
description: Создаёт интерактивный HTML-отчёт об использовании сессий Claude Code (токены, кэш, субагенты, скиллы, дорогие запросы) по журналам из ~/.claude/projects.
---
Отчёт по сессиям
Создай самодостаточный HTML-отчёт об использовании Claude Code и сохрани его в текущий рабочий каталог.
Шаги
- Получи данные. Запусти входящий в комплект анализатор (окно по умолчанию — последние 7 дней; если пользователь указал другой период, например
24h,30dилиall, используй его). Скриптanalyze-sessions.mjsлежит в том же каталоге, что и этот SKILL.md, — используй его абсолютный путь: ``sh node <skill-dir>/analyze-sessions.mjs --json --since 7d > /tmp/session-report.json`Для всего времени опусти--since`.
- Прочитай
/tmp/session-report.json. Просмотриoverall,by_project,by_subagent_type,by_skill,cache_breaks,top_prompts.
- Скопируй шаблон (он тоже лежит рядом с этим SKILL.md) по пути результата в текущем рабочем каталоге: ``
sh cp <skill-dir>/template.html ./session-report-$(date +%Y%m%d-%H%M).html``
- Отредактируй файл результата (используй Edit, а не Write — сохрани JS/CSS шаблона):
- Замени содержимое
<script id="report-data" type="application/json">полным JSON с шага 1. JS страницы сам отрисует по этому блоку общий итог в шапке, все таблицы, столбики и детализации. - Заполни блок
<!-- AGENT: anomalies -->3–5 выводами по одной строке. Выражай цифры как % от общего числа токенов везде, где возможно (общее =overall.input_tokens.total + overall.output_tokens). Один вывод — одна строка, разметка в точности такая: ``html <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>`Классы:.take bad— для потерь и аномалий (красный),.take good— для здоровых сигналов (зелёный),.take info— для нейтральных фактов (синий)..fig— одно короткое число (процент, счётчик или множитель вроде12×)..txt— одно предложение простым языком, называющее проект, скилл или запрос; выдели предмет тегом<b>`. Ищи: проект или скилл, съедающий непропорциональную долю; попадания в кэш <85%; один запрос, занимающий >2% от общего; типы субагентов со средним расходом >1M токенов на вызов; скопления сбросов кэша. - Заполни блок
<!-- AGENT: optimizations -->(он находится внизу страницы) 1–4 подсказками в<div class="callout">, привязанными к конкретным строкам (например, «/weekly-statusзапустил 7 субагентов и занял 8,1% от общего — ограничь число параллельных агентов»). - Не перестраивай существующие разделы.
- Сообщи пользователю путь к сохранённому файлу. Не открывай и не отрисовывай его.
Примечания
- Источник интерактивности (сортировка, сворачивание и разворачивание, столбики из блочных символов) — шаблон. Твоя задача — данные и текст, а не разметка.
- Комментируй коротко и конкретно — ссылайся на реальные названия проектов, числа и метки времени из JSON.
top_promptsуже включает токены субагентов и сворачивает продолжения task-notification в исходный запрос.- Если JSON больше 2 МБ, перед встраиванием сократи
top_promptsдо 100 записей иcache_breaksдо 100 (они и так должны быть ограничены).
Перевод: iiuniversitet. Оригинал: https://github.com/anthropics/claude-plugins-official/tree/main/plugins/session-report/skills/session-report, лицензия Apache-2.0. Изменения: перевод на русский язык.
Оригинал на английском
---
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
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:
```sh
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:
```sh
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:
```html
<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).
Источник: anthropics/claude-plugins-official / session-report / session-report ↗. Ссылка проверена 2026-10-10.