Об этом проекте
claudit — это self-hosted веб-приложение для визуализации использования по транскриптам сессий AI-кодинга. Сервис на FastAPI загружает транскрипты из одного или нескольких бакетов Cloudflare R2 либо из локального зеркала file://, разбирает их в Postgres и отдаёт данные дашборда вместе с исходными транскриптами в интерфейс на React, который использует Babel в браузере и не требует шага сборки фронтенда.
Поддерживаемые входные форматы включают JSONL сессий Claude Code, rollout-файлы Codex и оба wire-формата Kimi CLI. Из одного развёртывания можно обслуживать несколько бакетов и форматов. Загрузка выполняется по расписанию раз в час и также может запускаться через admin-эндпоинт. Ключи файлов квалифицируются по бакету, а инкрементальная загрузка использует проверки etag и версии парсера.
Дашборд намеренно количественный. Он показывает расходы, объёмы токенов, уровни prompt-кэша, задержку ответа, использование инструментов, ошибки инструментов, оценки изменения строк, время активности и рост контекста, но не даёт коучинга, качественного разбора сессий, агента-аудитора или AI-нарратива. Панели стоимости скрываются, когда в выбранном диапазоне времени не было расходов, а панели токенов остаются доступными для использования с нулевой ценой.
Панели метрик включают стоимость и токены по моделям, разбивку токенов на input/output/cache, разделение ephemeral cache-create с TTL 5 минут и 1 час, токены thinking-output, перцентили размера ответа, рост контекста по сессиям, скорость сжигания сессии, соотношения использования инструментов, тренды ошибок инструментов, задержку ответа, тепловую карту активности по времени Europe/Prague, стоимость и токены по размеру контекста, стоимость по типу агента и добавленные или удалённые строки. Диапазоны времени охватывают от 24 часов до всех доступных данных, а server-sent events запускают live-обновления после загрузки.
Стоимость предвычисляется во время загрузки из версионированного файла цен. Ценообразование cache-create различает уровни TTL 5 минут и 1 час, а long-context запросы Codex сохраняются с собственной корректировкой биллинга. Межфайловая дедупликация по UUID помечает канонические записи, чтобы транскрипты субагентов сворачивались в родительские сессии без двойного учёта. Псевдонимы проектов могут объединять идентификаторы worktree или scratch-проектов в проект репозитория с помощью строк базы данных, а не изменений кода.
Аутентификация может использовать числовые user ID и хэши PBKDF2 из внешней auth-базы данных, с cookie-сессиями, подписанными HMAC, и ограничением частоты входов. Также доступен гостевой режим только для чтения, без фильтрации проектов и доступа к транскриптам отдельных сессий. Операторы могут переименовать приложение через переменные окружения для развёртываний, ориентированных на Codex или Kimi. Экспорт PNG использует настроенный интерпретатор Python с установленными matplotlib и psycopg; API возвращает 503, если эти зависимости недоступны.
Репозиторий включает backend-парсер и схему, фронтенд на React, пример systemd, фикстуры парсера, набор pytest, скрипт бенчмаркинга и CI-workflows. Браузер должен иметь возможность загружать React, ReactDOM и Babel с unpkg.com; Google Fonts опциональны. Проект лицензирован по MIT.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.