Jorge Turbica / blog · Blog ← Todos los artículos EN · Read in English
IA

Repo del día: Memdoor, un agente de código en un binario Go para CI, cron y SSH

Agente de código headless en un binario Go: flujos YAML versionados, un modelo de decisión que recorta un 74 % los tokens, y BYOK o local.

Memdoor llegó a 308 puntos en Hacker News el 31 de octubre de 2026 con un titular provocador: cinco modelos Qwen3.8-27B coordinados superan a Fable 5 en los diez primeros problemas de LiveCodeBench Hard. Pero lo interesante del proyecto no es ese benchmark, sino lo que propone: un agente de código y automatización en un único binario de Go, pensado para ejecutarse sin ventana —en CI, en cron o por SSH— tanto como en el terminal.

Qué es

Memdoor es un binario estático (macOS, Linux, Windows; Apache 2.0, ~136 estrellas) sin Docker ni Python. Levanta un gateway local que mantiene cada ejecución como una conversación: la empiezas en el terminal, por memdoor run desde un script, por un cron o desde tu editor vía ACP, y la retomas desde cualquiera de esas vías con memdoor resume. BYOK: conectas tu clave de OpenRouter, Anthropic, OpenAI o Gemini, o un modelo local (Ollama, llama.cpp, vLLM) sin clave.

Tiene dos piezas que lo diferencian de un wrapper más sobre un LLM:

  • Un modelo de decisión delante del modelo de chat. Un clasificador rápido responde preguntas como «¿este resultado de búsqueda es relevante?» en menos de medio segundo, y el harness actúa en consecuencia: las lecturas de ficheros y logs devuelven solo lo que cuenta, y un turno que deja de avanzar termina en vez de iterar hasta el tope. En las 44 ejecuciones pareadas que publican, una consulta sobre el código pasó de 54.661 a 14.367 tokens de entrada (−74 %) manteniendo el resultado.
  • Flujos de trabajo como ficheros en tu repo. Dices los pasos y el agente los escribe como un YAML por paso, que un motor ejecuta como un grafo: los pasos independientes van en paralelo, un paso se da por hecho cuando pasa su check (no porque el modelo lo diga), una puerta espera tu aprobación con el diff delante, y un fallo reanuda desde el paso que falló.

Cómo se usa

La instalación es la típica curl … | bash, que conviene mirar antes de ejecutar; el instalador verifica el SHA-256 de lo que descarga. Un turno sin ventana, con el código de salida como recibo de sus checks:

bash
memdoor run "fix the failing test"     # 0 verificado, 2 falla un check, 3 pregunta sin responder
git diff | memdoor run "review this diff; one line per finding"

En GitHub Actions es un solo paso sobre tu clave, con nueve flujos integrados (pr-review, security-review, write-tests, fix-tests, explain-failure…):

yaml
on: pull_request
jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: guregodevo/memdoor-action@v1
        with:
          workflow: pr-review
          openrouter-api-key: ${{ secrets.OPEN_ROUTER_API_KEY }}

El propio README avisa de usar siempre pull_request y nunca pull_request_target, para que el código de un fork no se ejecute junto a tu clave.

Lo que me convence y lo que no

Me convence el enfoque headless-first: casi todas las herramientas de este tipo nacen como ventana interactiva y acaban pegando una API de CI encima; aquí el modelo es el gateway y el terminal es una puerta más, lo que encaja bien con cómo un SRE quiere disparar trabajo repetible. El modelo de decisión delante del LLM, con cifras de ahorro medidas y reproducibles, es la parte más seria del proyecto.

Lo que matizo: las 136 estrellas y el empuje de un hilo de Hacker News no son tracción consolidada, y el titular del benchmark —cinco agentes abiertos contra Fable 5 en diez problemas— es exactamente el tipo de comparación llamativa que conviene tomar como un experimento del propio autor, no como una verdad establecida; publican las 50 ejecuciones, lo cual es honesto, pero diez problemas son diez problemas.

Memdoor frente a los agentes en CI que ya usas

MemdoorClaude Code / Codex en Action oficialUn agente gestionado (API)
DespliegueUn binario Go, sin Docker ni PythonAction del proveedor sobre su runtimeServicio en la nube del proveedor
Dónde correTu máquina, tu CI o un box por SSHTu runnerInfraestructura del proveedor
ModeloBYOK o local, varios proveedoresEl del proveedorEl del proveedor
FlujosYAML en tu repo, con checks y gatesPrompt + configuración del ActionDefinidos por su API
MadurezMuy nuevo (oct. 2026)EstablecidoEstablecido

Si ya vives en un proveedor y te vale su Action, Memdoor no te aporta gran cosa. Donde encaja es cuando quieres un agente que corra igual en tu portátil, en un box por SSH y en CI, con tu clave o un modelo local, y los flujos versionados en el repo en lugar de atados a un servicio. Para eso, su novedad es más una razón para probarlo en un repo de pruebas que para meterlo en producción esta semana.

Fuentes

Jorge Turbica

Software Engineer y SRE. Escribo sobre los retos reales que me encuentro en producción.

Ver portfolio ↗