Перейти к содержимому
Борис Новичков
РезюмеGitHub ↗
ENRU
Все работы

Session Timeline

Живая диаграмма Ганта по всем сессиям Claude Code, прямо из локальных транскриптов

Браузерная панель, которая укладывает все сессии Claude Code на одну общую ось времени — когда работал агент, когда читал человек, каждый вызов инструмента и каждый запуск субагента. Она читает транскрипты, которые и так лежат на диске, поэтому ставить хуки, менять конфиги и проверять зависимости не нужно.

В работе
Роль
Автор
Период
июль 2026 — н. в.
localhost — таймлайн сессий
Панель таймлайна сессий — параллельные сессии Claude Code как дорожки Ганта, с графиком параллелизма и тепловой картой

Проблема

Начните работать с кодовым агентом всерьёз — и быстро потеряете нить собственного процесса. Сколько сессий на самом деле шло параллельно? Куда ушло календарное время — на работу агента или на ваше чтение? Какие запуски порождали субагентов и надолго ли?

Данные уже есть: Claude Code пишет транскрипт каждой сессии в ~/.claude/. Никто их не читает обратно.

Что она делает

Каждая сессия становится строкой на одной общей оси времени, сгруппированной по рабочему каталогу, с четырьмя дорожками: работа агента, чтение или ввод пользователя, каждый вызов инструмента и каждый запуск субагента. Над таймлайном — график среднего параллелизма; под ним — панель со статистикой: максимальный и средний параллелизм, календарное время, когда был активен хотя бы один агент, агенто-часы и то, что идёт прямо сейчас. Тепловая карта месяца даёт по квадрату на день, тем ярче, чем больше времени агенты были активны.

Всё пересчитывается для того окна, на которое вы смотрите, или для любого диапазона, который вы выделите.

Как она остаётся честной

Живая, но без хуков. Сервер следит за ~/.claude/{projects,sessions,jobs} и шлёт событие изменения по SSE, поэтому доска перерисовывается по ходу сессий. В сам Claude Code ничего не внедряется — поставьте инструмент, удалите его, ваша конфигурация не изменится ни в ту, ни в другую сторону.

Оценочное время помечено как оценочное. Claude Code не пишет сигналов с клавиатуры, поэтому интервалы чтения и набора моделируются из длины запроса и объёма вывода агента, а затем разводятся так, чтобы две параллельные сессии никогда не претендовали на одного человека в один момент. Это модель, и README об этом говорит.

Об остальном она отказывается гадать. Пассивная прокрутка и переключение между чатами без действий не оставляют следа нигде в транскриптах — поэтому паузы между ходами остаются пустыми, а не заполняются правдоподобным интервалом. Панель, которая выдумывает данные, хуже панели с дырками.

Заметки о сборке

Ноль рантайм-зависимостей — это осознанное ограничение, а не бравада: инструмент читает каталог с вашей собственной рабочей историей, и такой инструмент должен быть достаточно маленьким, чтобы его успели прочитать перед запуском. Отрисовка таймлайна, зум и панорамирование, выделение диапазона и тепловая карта написаны руками поверх браузерных API. Необязательный LaunchAgent для macOS поднимает сервер при входе в систему и перезапускает его при падении.