Sobre el proyecto

lore es una herramienta de línea de comandos local y un explorador web para todo lo que Claude Code escribe en una máquina. Claude Code mantiene transcritos de sesiones, memoria e historial de prompts bajo un directorio de datos, fragmentado por proyecto, y su retención predeterminada elimina los transcritos después de aproximadamente 30 días. lore mantiene un espejo aditivo de esos datos brutos, los indexa y proporciona una superficie de consulta sobre su propio historial de sesiones. Instalación y plataformas: el proyecto requiere Bun y nada más, sin dependencias de rsync o de toolchain. Su integración continua ejecuta la suite de pruebas e instala el binario en macOS, Linux y Windows. Todos los verbos funcionan en las tres plataformas, incluido el explorador. La excepción es el supervisor del servidor de lore, que mantiene el explorador ejecutándose en segundo plano a través de un agente de usuario launchd, por lo que es exclusivo de macOS y, en otros casos, redirige a los usuarios a lore serve. El script de instalación construye un binario congelado, rechaza un árbol de trabajo sucio, y cada invocación reporta su versión y commit en stderr. Un script harness-corpus toma instantáneas de las formas del daemon en fixtures de prueba después de una actualización de Claude Code. Modelo de datos e indexación: un well es el almacenamiento de un directorio bajo la ruta de proyectos de Claude, nombrado a partir de su ruta absoluta con los caracteres no alfanuméricos aplanados, por lo que el nombre es con pérdida. Cada sesión es un registro de eventos JSONL en lugar de un registro de chat, principalmente tráfico de herramientas, envoltorios de pensamiento y eventos de harness, junto con transcritos de subagentes hermanos y scripts de flujo de trabajo. El comando index escanea los wells, analiza el JSONL y construye un índice SQLite FTS5 con carriles de spawns y workflows, de forma incremental por tiempo de modificación y tamaño. El índice es un artefacto derivado y reconstruible que incrementa la versión en lugar de migrar y se niega a abrir una base de datos escrita por una versión más reciente de lore. Comandos: archive refleja el directorio de datos de Claude en un archivo de lore sin propagar las eliminaciones ascendentes; wells enumera los almacenamientos con rutas reales des-sluggeadas y flags; sessions y session recorren el arco cronológico de un well o vuelcan una sesión por carril; search consulta FTS5 a través de los carriles y puede incluir la columna vertebral del historial de prompts; spawns reporta el modelo por subagente verificado frente al solicitado con flags de deriva y costo de arranque; workflows resume las ejecuciones de orquestación; polls marca las sesiones que vuelven a leer un archivo de salida de tarea en segundo plano en cada turno, con precio; tools cuenta las invocaciones de herramientas, habilidades y comandos; usage perfila las clases de tokens facturados más el pensamiento por well, sesión, modelo, día, semana o mes con un equivalente de precio de lista fechado; trace renderiza una sesión como transacciones, pasos, llamadas a herramientas y anotaciones; agents une la lista activa al índice; stats reporta totales del corpus, carriles y advertencias. Cada comando admite salida de ayuda, y muchos aceptan un filtro de well que coincide con subcadenas más un flag para coincidencia exacta de valor completo. Explorador: lore serve renderiza el índice como páginas HTML renderizadas en el servidor para sesiones y wells recientes, uso de tokens, wells y sesiones individuales, resultados de búsqueda y trailers de sesión escritos en mensajes de commit. Cada página también puede responder en JSON, los verbos de lectura están montados bajo una ruta de comando con una especificación OpenAPI, y el verbo api expone los mismos manejadores que los comandos. El puerto predeterminado es 4949 y las opciones de host controlan la vinculación, incluyendo una dirección de Tailscale cuando existe una. Capa de juicio: por encima de la CLI determinista y libre de modelos se encuentra un flujo de trabajo de wiki opcional. wiki init crea un repositorio git de markdown a partir de una plantilla integrada y skills add instala habilidades por comando para que las sesiones de Claude Code descubran la CLI. La ingesta de material bruto en la wiki, la graduación de páginas de la wiki a documentos comprometidos en git y el linting de cánones obsoletos son protocolos que una sesión interactiva de Claude realiza impulsando la CLI; están documentados en las notas de diseño en lugar de enviarse como comandos, por lo que la herramienta en sí no necesita ninguna clave de API. Un verbo docs indexa el markdown comprometido en los repositorios, leído desde objetos git en lugar de árboles de trabajo. Manejo de datos: lee el directorio de datos de Claude y, para docs, los almacenes de objetos git bajo una raíz de código; escribe en el directorio home de lore, un repositorio de wiki opcional y, solo para el supervisor de macOS, un plist de launchd. No hay actividad de red más allá de un git fetch explícito cuando se solicita para la indexación de docs y el puerto en el que escucha el explorador; nada se sube y no hay llamadas a modelos, telemetría ni cuentas. La configuración se realiza a través de variables de entorno validadas como el dir de Claude, home de lore, dir de código, dir de wiki y las listas de exclude y assisted de docs. Un script de Python independiente y sin dependencias lee el JSONL del transcrito directamente y reporta las llamadas a herramientas denegadas divididas por motivo y por lo que la sesión hizo a continuación, con un runbook que describe cómo revisarlas. Estado: una herramienta personal temprana publicada tal cual, solo local, bajo la licencia MIT, sin plan de convertirse en un producto.