jsongrep: Una Herramienta de Consulta JSON Basada en DFA que Supera a jq en Puntos de Referencia

Qué hace jsongrep
jsongrep (binario jg) toma una consulta y una entrada JSON e imprime cada valor cuya ruta a través del documento coincida con la consulta. Trata los documentos JSON como árboles donde los objetos y arreglos se ramifican, los escalares son hojas, y las claves e índices etiquetan los bordes. El lenguaje de consulta es un lenguaje regular sobre el alfabeto de claves e índices.
Características del lenguaje de consulta
Las rutas con punto seleccionan campos anidados por nombre: jg 'roommates[0].name' devuelve roommates.[0].name: "Alice".
Los comodines coinciden con cualquier clave única (*) o cualquier índice de arreglo ([*]): jg 'favorite_drinks[*]' devuelve todos los elementos del arreglo.
La alternancia (|) coincide con cualquiera de las ramas: jg 'name | roommates' devuelve ambos campos.
El descenso recursivo usa * y [*] dentro de una estrella de Kleene para recorrer arbitrariamente profundo: jg '(* | [*])*.name' encuentra cada campo de nombre en cualquier profundidad. La bandera -F proporciona una forma abreviada: jg -F name hace lo mismo.
El opcional (?) coincide con cero o una ocurrencia: jg 'roommates[0].favorite_food?' devuelve tanto el objeto padre como el valor del campo.
Enfoque técnico
jsongrep compila consultas en autómatas finitos deterministas (DFA) utilizando una canalización que incluye: analizar la consulta, tratar JSON como un árbol, construir un NFA usando el algoritmo de Glushkov, determinizar mediante construcción de subconjuntos y buscar usando DFS con transiciones DFA. Esto permite procesar en una sola pasada con trabajo O(1) por símbolo de entrada, evitando retroceso, pilas de recursión y explosión exponencial en consultas patológicas.
El autor señala que esto difiere fundamentalmente de herramientas como jq, jmespath o jsonpath-rust, que interpretan expresiones de ruta, evalúan consultas en cada nodo, verifican predicados y descienden recursivamente, potencialmente revisitando subárboles o manteniendo listas de trabajo con consultas de descenso recursivo.
Instalación y disponibilidad
Instalar desde crates.io: cargo install jsongrep. Como ripgrep (que inspiró el proyecto), jsongrep es multiplataforma con binarios disponibles y escrito en Rust.
La herramienta detecta si la salida se canaliza a comandos como less o sort y omite las rutas JSON por defecto (anular con la opción --with-path).
📖 Leer la fuente completa: HN LLM Tools
👀 Ver también
Usar un chat adversarial de Claude para detectar ambigüedades iniciales antes de que te cuesten caro
Un desarrollador añadió un segundo chat de Claude cuya única función es revisar de manera adversaria los kickoffs en busca de especificaciones ambiguas y fallos silenciosos, ahorrando un estimado de $150-400 en retrabajo de Claude Code en una fase del proyecto.

Capa de Enrutamiento de Contexto Reduce el Uso de Tokens de Código de Claude mediante el Segimiento de Archivos Accedidos
Un desarrollador ahorró aproximadamente $80 por mes en el uso de Claude Code al agregar una capa de enrutamiento de contexto que evita que la IA vuelva a leer los mismos archivos del repositorio en turnos posteriores. La herramienta rastrea qué archivos ya se han accedido para reducir el consumo redundante de tokens.
Uso de Claude 3.0.0: Rastreador de barra de menú de código abierto para macOS para Claude y Codex
Usage4Claude 3.0.0 añade soporte opcional para Codex, inicio de sesión integrado en el navegador para Claude, cambio entre múltiples cuentas y notificaciones localizadas.

Pruebas de δ-Mem en Apple Silicon: Implementación MLX y Benchmarks
El artículo δ-mem implementado vía mlx en una MacMini 64GB muestra resultados mixtos pero prometedores en benchmarks locales, con ganancias en escenarios realistas de replay.