ctrlb-decompose es una herramienta de código abierto, escrita en Rust, que condensa grandes volúmenes de registros (logs) en un número reducido de patrones accionables, enriquecidos con estadísticas, anomalías y correlaciones. Procesa los registros en una sola pasada de tipo streaming, con un uso de memoria mínimo, y puede ejecutarse como binario de línea de comandos, dentro del navegador mediante WebAssembly o como biblioteca.
Su funcionamiento se basa en una canalización (pipeline) de dos fases: primero, una etapa de normalización y codificación al estilo CLP (Compressed Log Processor) sustituye valores como enteros, direcciones IP, números en coma flotante y cadenas por marcadores compactos, de modo que líneas estructuralmente idénticas produzcan el mismo "logtype". A continuación, un algoritmo de clustering (Drain3) agrupa esos logtypes en un árbol de prefijos: donde los tokens divergen, la plantilla gana un comodín <*>. El proceso es incremental, así que no requiere una segunda pasada.
Después, la herramienta extrae las variables en posiciones con comodín y las clasifica en tipos semánticos como IPv4/IPv6, UUID, Duration (duración), HexID, Integer, Float, Enum, Timestamp o String, usando reglas como coincidencia con patrones CIDR, formato RFC 3339 o cardinalidad baja. Sobre cada patrón acumula estadísticas: cuantiles DDSketch (p50/p99), cardinalidad aproximada con HyperLogLog++, valores más frecuentes y ejemplos mediante reservoir sampling. Además aplica detección de anomalías (picos de frecuencia, cascadas de errores, distribuciones bimodales, valores numéricos agrupados) y una puntuación de severidad basada en palabras clave.
El usuario puede elegir entre salida humana (terminal con colores), LLM (markdown compacto y eficiente en tokens) o JSON estructurado. Se ofrece un plugin para Claude Code que permite analizar registros describiendo la tarea en lenguaje natural. La instalación está disponible vía Homebrew, paquete .deb o compilación con Cargo.
