Blog / ia

OpenHands está en el top de tendencias de GitHub esta semana, y no es casualidad

OpenHands está en el top de tendencias de GitHub esta semana, y no es casualidad

OpenHands está en el top de tendencias de GitHub esta semana, y no es casualidad. Mientras los agentes de IA de paga dominan la conversación, este proyecto de código abierto llegó a hacer lo que muchos creían reservado para los gigantes: escribir, ejecutar y depurar código de forma autónoma. Lo probé estos días y quiero documentar mi proceso, porque esto es exactamente el tipo de herramienta que me hubiera gustado tener documentada cuando empecé a jugar con agentes de código.

¿Qué es OpenHands exactamente?

OpenHands (antes OpenDevin) es un agente de IA de código abierto que no solo te sugiere código: lo escribe, lo ejecuta en un sandbox, ve los errores y los corrige solo. Piensa en él como un desarrollador junior que trabaja en tu máquina, pero que nunca se cansa y puede iterar cientos de veces sin quejarse.

La diferencia clave con otros agentes es que no es solo un chat con acceso a archivos. Tiene un runtime completo donde puede ejecutar comandos, instalar dependencias, correr tests y ver los resultados. Eso cambia todo: no te da código que “debería funcionar”, te da código que verificó que funciona.

Cómo lo instalé y lo puse a trabajar

La instalación es directa si ya estás acostumbrado a Docker:

docker run -it \
  -v ~/.openhands:/.openhands \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/ghcr.io/all-hands-ai/runtime:0.51 \
  -e LOG_ALL_EVENTS=true \
  -p 3000:3000 \
  --add-host host.docker.internal:host-gateway \
  --name openhands-app \
  docker.all-hands.dev/all-hands-ai/openhands:0.51

Eso te levanta la interfaz web en localhost:3000. Ahí eliges tu proveedor de IA (soporta OpenAI, Anthropic, Gemini, y modelos locales vía Ollama), y listo.

Lo que hice: migrar un script de Python a TypeScript

Para probarlo de verdad, le di una tarea real: migrar un script de Python que usaba para procesar logs de Apache a TypeScript, con la misma funcionalidad y tests.

Le di el archivo original y le pedí la migración. Lo que pasó después fue revelador:

  1. Leyó el archivo Python y entendió la lógica de parsing de logs.
  2. Creó el proyecto TypeScript con package.json, tsconfig.json y las dependencias necesarias.
  3. Escribió el código de migración.
  4. Ejecutó los tests que él mismo escribió.
  5. Encontró un bug en su propia implementación (un edge case con líneas malformadas) y lo corrigió sin que yo dijera nada.

El proceso tomó unos 10 minutos. Yo solo le di la instrucción inicial y revisé el resultado final.

La arquitectura que lo hace posible

OpenHands usa una arquitectura de agente-ambiente que es elegante en su simplicidad:

┌─────────────────┐
│   OpenHands UI  │
└────────┬────────┘
         │
┌────────▼────────┐
│  Agent (LLM)    │  ← decide qué hacer
└────────┬────────┘
         │
┌────────▼────────┐
│   Action Space  │  ← ejecuta comandos, edita archivos
└────────┬────────┘
         │
┌────────▼────────┐
│  Sandbox (Docker)│  ← ambiente aislado con el runtime
└─────────────────┘

El agente (el LLM) genera acciones, el action space las ejecuta en el sandbox, y el resultado regresa al agente como observación. Ese ciclo continúa hasta que la tarea se completa o el agente decide que necesita ayuda.

Comparativa rápida con otras opciones

Herramienta Código abierto Ejecuta código Depura autónomamente Costo
OpenHands Gratis (solo pagas el LLM)
Claude Code Suscripción + uso
Cursor Agent Parcial Suscripción
Aider Parcial Gratis (solo pagas el LLM)

La ventaja real de OpenHands es que no te ata a un proveedor. Puedes usar Claude, GPT-4, Gemini, o un modelo local con Ollama. Yo lo probé con Claude Sonnet y con un modelo local (Qwen 2.5 Coder), y aunque la calidad del código varía, la mecánica de ejecutar y depurar funciona igual.

Limitaciones que encontré

No todo es miel sobre hojuelas. En mis pruebas encontré:

  • El sandbox es un arma de doble filo: si tu proyecto necesita acceso a servicios locales (bases de datos, APIs internas), configurar el sandbox para que los alcance requiere trabajo extra.
  • El consumo de tokens es alto: cada iteración de ejecución y depuración gasta tokens. Una tarea “sencilla” puede consumir 200K+ tokens. Con modelos caros, el costo se dispara rápido.
  • Proyectos grandes lo confunden: le di un repo con varios módulos interconectados y empezó a “explorar” demasiado, gastando tiempo y tokens en entender la estructura antes de tocar código.
  • La interfaz web es básica: funcional, pero le falta el pulido de herramientas comerciales como Cursor.

¿Vale la pena?

Depende de tu caso. Si trabajas con proyectos medianos, tareas bien definidas y quieres un agente que realmente ejecute y verifique su código, OpenHands es una opción sólida. Si necesitas integración profunda con tu IDE o trabajas en codebases enormes, quizá una herramienta comercial te dé mejor experiencia.

Lo que me queda claro es que la era de los agentes de código abierto que ejecutan y depuran ya llegó. OpenHands no es una demo: es una herramienta que usé para una migración real y el resultado fue código funcional, testeado y documentado. Y eso, hace un año, sonaba a ciencia ficción.

Anterior OpenCode + OmniRoute: probé la combinación que promete… Siguiente itsfree.dev — el directorio de herramientas gratuitas que no…