Dirge: El coding assistant en Rust que tiene memoria de elefante
Dirge: El Agente de Código que No Olvida
Hablemos claro: la mayoría de los agentes de IA para programación se sienten como contratar a un desarrollador nuevo cada vez que abres una sesión. Llegan, hacen algo de trabajo, y cuando cierras la conversación, se olvidan de todo. Tú terminas explicando tu codebase, tus preferencias, tus patrones — una y otra vez. Es agotador. Y sí, es una completa pérdida de tiempo.
Ahí es donde entra Dirge.
Esta herramienta no es otro wrapper más alrededor de un LLM. Es un sistema pensado desde cero para tratar el contexto como algo que vale la pena preservar.
Nacido en Rust, Construido para la Velocidad
Lo primero que llama la atención de Dirge es lo ligero que es. Estamos hablando de aproximadamente 8MB de RAM en reposo, un binario de 36MB, y cero dependencias en tiempo de ejecución. Eso es todo.
Compáralo con alternativas basadas en Electron que happily se comen gigabytes de tu RAM antes de que hayas escrito ni una sola línea de código. No tiene sentido.
Y es que las herramientas de IA para código no deberían ser divas. Tienen que ser silenciosas, eficientes, y estar listas cuando las necesitas — no bestias hambrientas que destrozan el rendimiento de tu máquina apenas abres la terminal.
La interfaz TUI centrada en la terminal (construida con ratatui y crossterm) mantiene todo ligero y controlado por teclado. Tienes streaming de tokens en vivo, un árbol de sesiones ramificado para seguir tu historial de conversación, y paneles de información configurables. Es la interfaz que los desarrolladores realmente quieren: rápida, densa en información, y sin mouse.
Un Agente que No Entra en Pánico
Aquí es donde Dirge se pone interesante. El bucle del agente no es simplemente "envía prompt, recibe respuesta, ejecuta herramientas". Está diseñado para manejar la realidad.
Los modelos alucinan llamadas a herramientas. Generan JSON malformados. Malinterpretan rutas. Los agentes estándar se rompen aquí — o crashean, o hacen bucles infinitos, o producen basura que tienes que limpiar manualmente.
Dirge repara llamadas malformadas, valida cada escritura de archivo con tree-sitter antes de que toque el disco, y tiene circuit breakers para bucles repetitivos.
¿La característica killer? Cuando un modelo sigue fallando, Dirge no simplemente se rinde. Inyecta un checkpoint de recuperación, sugiere lo que probablemente quería hacer el modelo (la herramienta o ruta), y si eso no funciona, escala automáticamente a un modelo más fuerte. Es la diferencia entre un agente que se estrella contra un muro y uno que realmente termina el trabajo.
Memoria que Persiste
El nombre "dirge" no es casualidad. Por si no lo sabes, un dirge es una canción que se canta para guiar a los muertos — para evitar que se pierdan. En el contexto de los agentes de IA, eso es exactamente lo que Dirge hace con el contexto de tu proyecto.
Dirge implementa un sistema de memoria de dos niveles. El nivel "caliente" mantiene hechos inline donde el modelo puede acceder inmediatamente. El resto va a un índice de migas de pan buscable. Y hay un nivel global entre proyectos para tus preferencias personales — cómo te gusta formatear el código, tus patrones preferidos, tus quejas recurrentes. Esto persiste entre sesiones, entre proyectos.
Entre sesiones, un orquestador post-sesión extrae aprendizajes y cura la memoria y las habilidades. Así que si pasaste 20 minutos depurando un problema tricky de lifetimes en Rust con un patrón específico, Dirge lo recuerda. La próxima vez que te encuentres con algo similar, tiene contexto.
Las sesiones de largo horizonte usan checkpoints duraderos que se actualizan de forma incremental, anclados a una identidad estable. Reanudar una sesión compactada recupera su estado vivo — no una instantánea obsoleta. Si alguna vez has intentado retomar una tarea de código de hace una semana y pasaste 30 minutos reorientándote, entenderás por qué esto importa.
Routing Inteligente y Soporte Multi-Provider
Dirge no te encadena a un solo proveedor de IA. Soporta OpenAI, Anthropic, DeepSeek, Gemini, Ollama, OpenRouter, y GLM — además de cualquier endpoint compatible con OpenAI. OpenRouter es el valor por defecto, así que funciona out of the box para la mayoría de usuarios.
Pero aquí está la parte sofisticada: puedes enrutar diferentes tareas a diferentes modelos. El bucle principal, revisión, escalación, resumido, y roles de subagente pueden apuntar cada uno a modelos distintos. ¿Quieres usar un modelo barato y rápido para ediciones rutinarias pero escalar a algo más potente para refactorizaciones complejas? Dirge hace esa configuración trivial.
Seguridad Sin Compromisos
Dirge se toma la seguridad en serio con un motor de permisos unificado — un Policy Decision Point con cuatro modos, reglas basadas en operaciones, y allowlists de sesión. El comando /why traza exactamente qué política tomó una decisión y por qué. Sin cajas negras.
Para los paranoicos (y deberías serlo), hay modo sandbox. Ejecuta comandos bash en aislamiento usando bubblewrap para una jail con namespaces, o aprovecha microVMs libkrun aislados por hardware. Defensa en profundidad encima del motor de permisos.
Construido para Desarrollo Serio
Más allá del bucle del agente central, Dirge viene cargado con características que los desarrolladores serios necesitan:
El workflow de planificación por fases ejecuta explore → plan → implement → review como fases aisladas por contexto. Un agente de solo lectura mapea el código, un segundo redacta el plan, luego un revisor con escritura deshabilitada ejecuta el código y alimenta los gaps de vuelta para un retry limitado. Es como tener una revisión arquitectónica integrada en tu flujo.
El workflow dirigido por specs rastrea cambios como filas SQLite (no archivos markdown frágiles). Propuestas, deltas de requisitos, y checklists de tareas con estado real — el cambio activo siempre se inyecta en contexto, y archivar forma una memoria duradera.
La inteligencia de código viene de la integración con tree-sitter, con diagnósticos LSP inline para más de 10 lenguajes mostrados directamente en la salida de herramientas para que el agente corrija errores de compilación en el mismo turno. Adiós a los bucles de "intenta esta solución... el build falla... intenta de nuevo".
¿Necesitas depurar? Dirge tiene un cliente Debug Adapter Protocol integrado que controla depuradores reales — pon breakpoints, ejecuta paso a paso, inspecciona stacks y variables — directo desde el bucle del agente.
Extensible por Diseño
El sistema de plugins Janet engancha todo el ciclo de vida: intercepta herramientas, reescribe prompts, registra comandos. También hay skills compatibles con Claude cargados on demand. Y soporte MCP/ACP significa que Dirge puede ser tanto proveedor como consumidor de herramientas — podrías tener a Claude Code delegando tareas de implementación a Dirge y revisándolas, por ejemplo.
La Línea de Fondo
Dirge no está intentando ser la herramienta de IA para código más llamativa. Está intentando ser la más confiable.
La persistencia de memoria, la recuperación de errores, el I/O eficiente en tokens (los archivos se leen como esqueletos cuando es posible, salidas sobredimensionadas se rellean a disco con resúmenes), la flexibilidad multi-provider — todo suma para crear un agente que realmente trabaja contigo a lo largo del tiempo en lugar de resetearse cada sesión.
Para desarrolladores hartos de partir de cero, startups que necesitan asistencia de IA consistente sin vendor lock-in, y cualquiera que haya sido quemado por una IA que olvidó todo lo importante — Dirge merece una mirada.
Instálalo en una línea desde crates.io (cargo install dirge-agent), configura tu API key, y empieza a programar. Es así de simple.
El dirge fúnebre era una canción para recordar a los muertos. Dirge, el agente de código, es un sistema para asegurarse de que tu IA nunca olvide lo que han construido juntos.