Об этом проекте
lore представляет собой локальный инструмент командной строки и веб-обозреватель для всего, что Claude Code записывает на машине. Claude Code хранит транскрипты сессий, память и историю промптов в каталоге данных, разделенном по проектам, при этом по умолчанию транскрипты удаляются примерно через 30 дней. lore создает аддитивное зеркало этих необработанных данных, индексирует их и предоставляет интерфейс для запросов по собственной истории сессий.
Установка и платформы: проекту требуется только Bun, без зависимостей от rsync или цепочки инструментов. Непрерывная интеграция запускает набор тестов и устанавливает бинарный файл на macOS, Linux и Windows. Все команды работают на всех трех платформах, включая обозреватель. Исключением является супервизор сервера lore, который поддерживает работу обозревателя в фоновом режиме через пользовательский агент launchd, поэтому он доступен только для macOS; в остальных случаях пользователям предлагается использовать lore serve. Скрипт установки собирает «замороженный» бинарный файл, отклоняет грязное рабочее дерево, и каждый вызов выводит версию и коммит в stderr. Скрипт harness-corpus создает снимки структур демона в виде тестовых фикстур после обновления Claude Code.
Модель данных и индексация: «колодец» (well) — это хранилище одного каталога в пути проектов Claude, названное на основе его абсолютного пути с выравниванием неалфавитно-цифровых символов, поэтому именование является с потерями. Каждая сессия представляет собой лог событий JSONL, а не лог чата: в основном это трафик инструментов, оболочки размышлений (thinking envelopes) и события harness, наряду с транскриптами дочерних агентов и скриптами рабочих процессов. Команда index сканирует колодцы, парсит JSONL и создает индекс SQLite FTS5 с дорожками для spawns и workflows, инкрементально, по времени модификации и размеру. Индекс является производным, восстанавливаемым артефактом, который обновляет версию вместо миграции и отказывается открывать базу данных, созданную более новой версией lore.
Команды: archive зеркалирует каталог данных Claude в архив lore без распространения удалений из основного источника; wells выводит список хранилищ с реальными путями и флагами; sessions и session проходят по хронологической дуге колодца или выгружают одну сессию по дорожке; search выполняет запросы FTS5 по дорожкам и может включать основной стержень истории промптов; spawns сообщает о верифицированных и запрошенных моделях для каждого субагента с флагами дрейфа и стоимостью загрузки; workflows суммирует запуски оркестрации; polls помечает сессии, которые на каждом шаге перечитывают выходной файл фоновой задачи (платно); tools подсчитывает вызовы инструментов, навыков и команд; usage профилирует классы тарифицируемых токенов, включая размышления, по колодцу, сессии, модели, дню, неделе или месяцу с эквивалентом стоимости по прайс-листу; trace отображает одну сессию в виде транзакций, шагов, вызовов инструментов и аннотаций; agents объединяет живой список агентов с индексом; stats сообщает об общих итогах корпуса, дорожках и предупреждениях. Каждая команда поддерживает вывод справки, и многие принимают фильтр колодца, который ищет подстроки, а также флаг для точного совпадения значения.
Обозреватель: lore serve отрисовывает индекс в виде HTML-страниц (server-rendered) для последних сессий и колодцев, использования токенов, отдельных колодцев и сессий, результатов поиска и трейлеров сессий, записанных в сообщениях коммитов. Каждая страница также может отвечать в формате JSON; глаголы чтения смонтированы под путем команд с OpenAPI-спецификацией, а глагол api предоставляет те же обработчики, что и команды. Порт по умолчанию — 4949, а опции хоста управляют привязкой, включая адрес Tailscale, если он существует.
Слой суждений: над детерминированным CLI без использования моделей находится опциональный рабочий процесс wiki. wiki init создает git-репозиторий из markdown на основе встроенного шаблона, а skills add устанавливает навыки для каждой команды, чтобы сессии Claude Code могли обнаруживать CLI. Поглощение сырого материала в wiki, перевод страниц wiki в закоммиченные документы и линтинг устаревших канонов — это протоколы, которые интерактивная сессия Claude выполняет, управляя CLI; они описаны в заметках по дизайну, а не реализованы как команды, поэтому самому инструменту не нужен API-ключ. Команда docs индексирует markdown, закоммиченный в репозиториях, считывая его из объектов git, а не из рабочих деревьев.
Обработка данных: инструмент читает каталог данных Claude и (для docs) хранилища объектов git в корне кода; он пишет в домашний каталог lore, опциональный репозиторий wiki и (только для супервизора macOS) один plist launchd. Сетевая активность отсутствует, за исключением явного git fetch при запросе индексации документов и порта, на котором слушает обозреватель; ничего не загружается, нет вызовов моделей, телеметрии или аккаунтов. Конфигурация осуществляется через проверенные переменные окружения, такие как каталог Claude, дом lore, каталог кода, каталог wiki, а также списки исключений и помощи для docs.
Отдельный Python-скрипт без зависимостей напрямую читает JSONL транскриптов и сообщает об отклоненных вызовах инструментов с разделением по причинам и последующим действиям сессии, с руководством по их анализу.
Статус: ранний персональный инструмент, опубликованный «как есть», только для локального использования под лицензией MIT, без планов превращения в коммерческий продукт.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.