Sobre el proyecto

claude-code-rlm es un hook para Claude Code que realiza una pre-investigación en una base de código antes de que el modelo principal gestione un prompt. En lugar de permitir que el modelo primario (Opus o Sonnet) gaste sus primeras llamadas a herramientas orientándose, el hook despacha primero el modelo Haiku, más rápido y económico, para explorar el repositorio y entrega los resultados al modelo principal como contexto inyectado. Cómo funciona 1. Claude Code invoca rlm-hook.mjs a través del hook UserPromptSubmit, pasando un JSON por stdin con campos como prompt, cwd y transcript_path. 2. Las entradas triviales se omiten inmediatamente: prompts más cortos que una longitud mínima configurada, comandos de shell simples (ls, pwd, cat, echo, git status, npm, yarn), afirmaciones de una sola palabra, comandos de barra como /help, /clear y /compact, y pegados con mucha carga de código donde más de la mitad de la entrada son bloques de código. 3. Se verifica un hash SHA-256 del prompt y del directorio de trabajo contra un caché de archivos con un TTL predeterminado de una hora. 4. En caso de fallo de caché, se inicia la CLI de Claude con el modelo Haiku configurado, restringido a Read, Glob, Grep y git Bash, y se le asigna un prompt de sistema que le instruye a explorar la base de código dentro de un número configurable de llamadas a herramientas. 5. Haiku escribe sus hallazgos en un archivo JSON temporal; el hook los formatea en un bloque rlm_preresearch estructurado que contiene la intención, resumen, archivos relevantes, patrones existentes, cambios recientes, enfoque sugerido, tareas y advertencias, y luego lo imprime en stdout para que Claude Code lo inyecte antes del prompt del usuario. 6. Cualquier fallo, incluyendo tiempos de espera, errores de API y errores de análisis de JSON, finaliza sin salida, por lo que el hook no bloquea ni corrompe una conversación. Modos y configuración Todo se configura a través de variables de entorno. El modo Agentic (por defecto) habilita la exploración basada en herramientas y se describe con una duración de aproximadamente 20 segundos en caso de fallo de caché; el modo fast realiza un análisis conciso sin llamadas a herramientas en aproximadamente 4 segundos. Otros ajustes cubren el nombre del modelo, el tiempo de espera total, el TTL del caché, las longitudes mínimas y máximas de entrada, los turnos máximos de herramientas, las rutas de caché y registro, y un archivo de métricas. Un modo SDK-Direct opcional utiliza el SDK de Anthropic con una clave de API en lugar de un subproceso. Características adicionales descritas en el README incluyen un caché semántico opcional que compara embeddings contra un umbral de similitud de coseno configurable, reutilización de contexto que revisa bloques RLM recientes para evitar re-analizar la misma intención o archivos, y un registro de métricas JSONL con un tablero incluido (servido localmente en el puerto 9876) que muestra la distribución de latencia, la tasa de aciertos de caché, el rendimiento por modo y el costo estimado de Haiku. Cifras de latencia reportadas: unos 27 ms al omitir, unos 37 ms en un acierto de caché, aproximadamente 20 s en modo agentic en un fallo, y aproximadamente 4 s en modo fast. Requisitos e instalación: Node.js 18 o posterior y la CLI de Claude Code en el PATH. El script de instalación proporcionado copia el hook en el directorio de hooks de Claude y lo hace ejecutable; se debe añadir una entrada de hook con un comando y un tiempo de espera al archivo de configuración de Claude Code. Las pruebas y el benchmarking se ejecutan mediante scripts de npm, y las pruebas de integración requieren un binario de claude activo. El proyecto se publica bajo la licencia MIT.