Pi vs OpenCode: ¿Qué agente de IA para programar deberías usar?
KKTG Analysis
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00Ahora hay dos serios agentes de codificación de IA de código abierto luchando por la terminal
00:00:04y elegir el equivocado podría significar reconstruir todo tu flujo de trabajo más tarde.
00:00:10Uno de ellos viene con todo lo que podrías desear listo para usar, el otro
00:00:14viene casi sin nada y argumenta que ese es exactamente el punto; hoy,
00:00:19enfrentamos a Open Code y Pi cara a cara.
00:00:21Así que al final de este video, sabrás exactamente cuál pertenece a tu terminal.
00:00:27Empecemos con qué son realmente estas herramientas.
00:00:30Porque resuelven el mismo problema central de formas fundamentalmente diferentes, tanto
00:00:34Open Code como Pi son agentes de codificación de IA basados en la terminal; se ejecutan en tu
00:00:40terminal, se conectan a modelos de lenguaje grandes como Claude o GPT, y pueden
00:00:45leer tu código, editar archivos, ejecutar comandos y tener conversaciones extensas
00:00:50sobre tu base de código, piensen en ellos como alternativas de código abierto a Claude Code.
00:00:55Ambos están escritos en TypeScript, tienen licencia MIT y ambos soportan más de 20
00:01:01proveedores de LLM, pero ahí es donde terminan las similitudes; Open Code fue construido
00:01:06por los creadores de terminal.shop y una comunidad de entusiastas de Neovim.
00:01:11Adopta lo que yo llamaría un enfoque con “baterías incluidas” desde el inicio.
00:01:15Obtienes un sistema multiagente con agentes especializados para diferentes tareas, un
00:01:20sistema de permisos integrado con diálogos de aprobación, integración con
00:01:24protocolos de servidor de lenguaje para inteligencia de código, soporte completo de MCP
00:01:29para conectar herramientas externas, una base de datos SQLite para persistencia de sesiones, e
00:01:34incluso una aplicación de escritorio basada en Tauri junto con la interfaz de terminal.
00:01:40La filosofía de Open Code es que un agente de codificación debería funcionar bien de inmediato
00:01:45con valores predeterminados sensatos e integraciones profundas. Pi, creado por Mario Zechner,
00:01:51toma el enfoque opuesto. Su filosofía se establece claramente en el README: Pi es
00:01:56agresivamente extensible, por lo que no tiene que dictar tu flujo de trabajo. Pi
00:02:00deliberadamente se distribuye sin subagentes, sin soporte para MCP, sin un sistema de
00:02:05permisos, sin modo de planificación y sin seguimiento de tareas integrado. En cambio,
00:02:11proporciona una potente API de extensión y dice: construye exactamente lo que necesites o
00:02:17instala un paquete de la comunidad que lo haga a tu manera. El núcleo permanece mínimo.
00:02:22Todo lo demás es opcional. Así que estos dos proyectos representan una división filosófica real
00:02:27en cómo se deben diseñar las herramientas para desarrolladores. Profundicemos en los
00:02:32detalles técnicos de cada uno y luego los compararemos directamente. Empezando con
00:02:36la arquitectura de Open Code. Es un monorepo con unos 21 paquetes. El
00:02:42motor central vive en un solo paquete, pero hay paquetes separados para la
00:02:46consola web, la app de escritorio, el SDK de TypeScript, el sistema de plugins,
00:02:52componentes de interfaz compartidos y documentación. Bajo el capó, corre sobre Bun, que es
00:02:57significativamente más rápido que Node para el arranque y la ejecución. Para su capa de
00:03:02abstracción de LLM, Open Code utiliza el versátil AI SDK versión 5. Esta es una
00:03:08biblioteca bien mantenida y ampliamente adoptada que ofrece una interfaz unificada entre
00:03:13docenas de proveedores. El beneficio práctico es que Open Code hereda
00:03:18el soporte de proveedores casi gratis a medida que el SDK de Vercel añade nuevas integraciones.
00:03:24Una de las características destacadas de Open Code es su sistema multiagente. Viene con varios
00:03:30agentes especializados. El agente de construcción es el predeterminado, un agente de desarrollo
00:03:35con acceso total que puede leer, escribir y ejecutar cualquier cosa. El agente de planificación es de solo lectura,
00:03:40diseñado para explorar y analizar código sin hacer cambios. Solo puede
00:03:45escribir en un directorio de planes específico. El agente Explorador es un especialista
00:03:50rápido y ligero para navegar por el código, restringido a operaciones de búsqueda y lectura.
00:03:55Y hay un agente general para tareas complejas de varios pasos que actúa como un
00:04:00subagente. Los usuarios cambian entre estos agentes con la tecla Tab, y cada agente tiene su
00:04:05propio conjunto de reglas de permisos. También puedes definir agentes personalizados
00:04:09en tu archivo de configuración, especificando qué modelo usan, qué permisos
00:04:14tienen y qué dice su prompt del sistema. Para la persistencia de datos, Open Code usa
00:04:19SQLite con el ORM Drizzle; sesiones, mensajes, permisos y credenciales de MCP,
00:04:25todo vive en un solo archivo de base de datos. Esta es una elección arquitectónica
00:04:30significativa. SQLite te da integridad transaccional, consultas eficientes
00:04:35entre sesiones y un solo archivo fácil de respaldar. Open Code
00:04:41lo ejecuta en modo WAL para un mejor rendimiento de lectura concurrente. El sistema de permisos
00:04:46de Open Code es estratificado y granular. Cada invocación de herramienta pasa por
00:04:52controles de permisos. Puedes establecer reglas por herramienta y por patrón de archivo. Por ejemplo,
00:04:57podrías permitir todas las lecturas de archivos pero requerir aprobación para editar archivos .env y
00:05:03negar completamente comandos de shell que toquen directorios de producción. Los permisos se aplican en cascada
00:05:08a través de múltiples niveles de configuración, desde la configuración global del usuario hasta
00:05:13anulaciones específicas del proyecto. Cuando el agente necesita aprobación, muestra un diálogo interactivo
00:05:18justo en la terminal, y puedes elegir permitir una vez o permitir siempre esa acción.
00:05:24La integración con MCP tiene todas las funciones. Open Code puede conectarse a servidores MCP
00:05:30locales y remotos. Soporta transportes STDIO e HTTP, maneja autenticación OAuth
00:05:37para servidores remotos y registra automáticamente herramientas de servidores MCP
00:05:42conectados. Si ya estás usando servidores MCP con otras herramientas, Open Code
00:05:47funcionará con ellos de inmediato. Otra característica notable es el soporte LSP integrado.
00:05:53Open Code puede iniciar servidores de protocolo de lenguaje para TypeScript, Python,
00:05:58Go, Rust y otros idiomas. Esto le da al modelo de IA acceso a inteligencia
00:06:04de código real como información al pasar el cursor, ir a la definición y referencias de símbolos en lugar de
00:06:10depender puramente de la coincidencia de patrones de texto. Es una ventaja sutil pero significativa
00:06:15para la precisión de la comprensión del código. Open Code también tiene un sistema de habilidades que es
00:06:20compatible con el formato de habilidades de Claude Code. Las habilidades son archivos Markdown con
00:06:25front matter que define comportamientos especializados, y hay un sistema de plugins
00:06:30basado en paquetes NPM que pueden conectarse a casi cualquier parte del ciclo de vida, desde la
00:06:35carga de configuración, hasta la transformación de mensajes y la ejecución de herramientas.
00:06:40Ahora veamos la arquitectura de Pi. Pi también es un monorepo, pero con una estructura
00:06:45diferente. Los paquetes clave son el agente de codificación en sí, Pi-I para la capa
00:06:51de abstracción de LLM, Pi-agent-core para el entorno de ejecución del agente con estado, y Pi-2e para el
00:06:57agente de renderizado de terminal. También existe PiMom, un compañero bot de Slack, y PiPods
00:07:02para el despliegue en GPU. La decisión técnica más significativa en Pi es que construyó
00:07:08su propia capa de abstracción de LLM desde cero en lugar de usar el
00:07:12AI SDK de Vercel. Pi-I es una API de LLM unificada para múltiples proveedores que soporta más de 30
00:07:20proveedores, incluidos algunos que el SDK de Vercel no cubre, como
00:07:24Minimax y Kimi. Construir su propia capa le da al equipo de Pi control total sobre
00:07:30el comportamiento de streaming, el parseo de llamadas a herramientas y optimizaciones específicas del proveedor.
00:07:35La desventaja es la carga de mantenimiento, pero también significa que Pi puede implementar funciones
00:07:40como el parseo parcial de JSON durante el streaming de argumentos de herramientas exactamente como
00:07:44ellos quieren. La gestión de sesiones de Pi usa un formato JSONL, que es un archivo plano donde cada
00:07:50línea es un objeto JSON. Cada entrada tiene un ID y un ID de padre, lo que permite una estructura
00:07:56de árbol dentro de un solo archivo. Esto es ingenioso. Significa que puedes crear
00:08:00ramas de conversaciones, navegar por el árbol histórico completo y saltar entre ramas, todo dentro
00:08:06de un archivo fácil de inspeccionar con herramientas estándar de Unix. El comando “tree” te
00:08:12permite visualizar todo tu historial de conversaciones y navegar a cualquier punto. El
00:08:17comando “fork” crea una nueva rama desde cualquier mensaje. Es genuinamente una de las
00:08:23mejores interfaces de gestión de conversaciones que he visto en un agente de codificación.
00:08:28El sistema de extensiones de Pi es donde la filosofía realmente cobra vida. Las extensiones son
00:08:33archivos TypeScript cargados directamente por jiti, por lo que no hay paso de compilación. Una
00:08:38extensión puede registrar herramientas, comandos y atajos de teclado personalizados. Puede
00:08:44suscribirse a eventos del ciclo de vida como inicio de sesión, inicio de agente, llamadas a herramientas y
00:08:49selección de modelo. Puede interactuar con el usuario mediante diálogos de confirmación, menús
00:08:55de selección e indicaciones de entrada de texto. Incluso puede renderizar componentes TUI personalizados.
00:09:01La API de extensión te da acceso al gestor de sesiones, registro de modelos, almacenamiento
00:09:06de autenticación y bus de eventos. En otras palabras, las extensiones pueden hacer esencialmente cualquier
00:09:11cosa que el núcleo puede hacer. Aquí es donde las omisiones deliberadas de Pi empiezan a cobrar
00:09:16sentido. ¿Sin sistema de permisos integrado? Escribe una extensión que muestre un diálogo de
00:09:20confirmación antes de comandos peligrosos. ¿Sin subagentes? Lanza instancias de Pi vía tmux o
00:09:27escribe una extensión que coordine múltiples bucles de agentes. ¿Sin MCP? Construye una
00:09:33habilidad con una herramienta CLI y un README, o escribe una extensión que añada soporte MCP.
00:09:40¿Sin modo plan? Escribe planes en archivos markdown o crea una extensión que gestione
00:09:45planes como prefieras. El renderizado de terminal de Pi también es a medida. El paquete
00:09:51pi2e implementa renderizado diferencial con tres estrategias para minimizar las
00:09:56actualizaciones de pantalla y usa el protocolo CSI 2026 para actualizaciones atómicas que eliminan el parpadeo.
00:10:02Tiene su propio sistema de componentes con contenedores, editores, renderizado de texto,
00:10:07visualización de markdown, soporte de imágenes y listas de selección. El TUI del agente de codificación se basa
00:10:13enteramente en este framework. Para el manejo de herramientas, Pi viene con siete herramientas
00:10:18integradas: READ, bash, edit, write, grep, find y ls. Es un conjunto deliberadamente mínimo.
00:10:25La herramienta bash soporta sandboxing opcional en Docker y salida de streaming
00:10:30en tiempo real. La herramienta edit usa el formato unified diff. Todas las herramientas validan sus
00:10:36argumentos con AJV antes de la ejecución y soportan ejecución paralela por defecto,
00:10:42lo que significa que múltiples llamadas a herramientas del LLM se ejecutan concurrentemente en lugar de
00:10:48una a la vez. Ahora comparémoslos directamente en las dimensiones que más importan.
00:10:53Soporte de proveedores. Ambos soportan más de 20 proveedores y funcionan con cualquier API
00:10:59compatible con OpenAI. Open Code usa el AI SDK de Vercel, lo que significa que hereda
00:11:06nuevos proveedores a medida que ese ecosistema crece. Pi construyó su propia librería Pi-I, lo cual
00:11:12le da más control pero requiere integración manual de nuevos proveedores. En la práctica,
00:11:18ambos cubren a los principales proveedores que es probable que uses. El modelo de agente:
00:11:22Open Code incluye múltiples agentes especializados y te permite cambiar entre ellos
00:11:27con pulsar una sola tecla. Pi incluye un solo agente y dice: si quieres subagentes,
00:11:33constrúyelos con extensiones o lanza instancias separadas. Si quieres
00:11:37modos especializados de inmediato, Open Code gana aquí. Si prefieres construir
00:11:42tu propia topología de agentes, Pi te da las herramientas para hacerlo. Open Code usa SQLite.
00:11:47Pi usa archivos JSONL. SQLite te da integridad transaccional y consultas
00:11:53eficientes. JSONL te da archivos legibles por humanos que puedes inspeccionar con cat o grep,
00:11:58y la estructura de árbol de Pi dentro de un solo archivo es elegante. Ambos soportan
00:12:04ramas de sesión y bifurcaciones; la interfaz de navegación de árbol de Pi está particularmente
00:12:08bien diseñada para explorar el historial de conversaciones. Open Code tiene un sistema
00:12:13integrado completo con diálogos de aprobación, reglas por archivo y memoria de
00:12:19permisos persistente. Pi no tiene sistema de permisos en su núcleo y espera que las extensiones
00:12:25lo manejen. Si quieres barreras de seguridad de inmediato, Open Code es la opción más segura. Si lo ejecutas
00:12:30en contenedores o quieres control total sobre tu modelo de seguridad, el enfoque de Pi te
00:12:35da más flexibilidad. Soporte de MCP. Open Code tiene soporte completo de MCP con OAuth,
00:12:41múltiples transportes y registro automático de herramientas. Pi rechaza explícitamente MCP
00:12:48en su núcleo a favor de las habilidades, que son herramientas CLI documentadas con readmes.
00:12:54Mario Zechner escribió un post argumentando que MCP añade complejidad donde una simple
00:13:00herramienta CLI con un readme logra el mismo objetivo. Si tu flujo de trabajo ya
00:13:04depende de servidores MCP, Open Code es la opción clara. Si prefieres la filosofía
00:13:10Unix de herramientas pequeñas y combinables, el enfoque de Pi podría resonar más. Inteligencia
00:13:16de código. Open Code tiene integración LSP integrada que le da al modelo de IA
00:13:22acceso a información de tipos, definiciones y referencias. Pi no incluye LSP
00:13:28en su núcleo. Esto le da a Open Code una ventaja significativa para trabajar en lenguajes
00:13:32fuertemente tipados donde el contexto de tipos mejora la comprensión de la IA. La
00:13:37interfaz de terminal. Ambos tienen implementaciones TUI personalizadas sofisticadas,
00:13:42pero construidas de forma distinta. Open Code usa solid.js con el framework OpenID. Pi
00:13:48usa su propio framework Pi2E con renderizado diferencial. Ambos se ven genial
00:13:53y se sienten receptivos. Open Code además ofrece una aplicación de escritorio
00:13:58basada en Tauri y una consola web. Pi es solo para terminal, aunque ofrece una librería
00:14:03de componentes web que los desarrolladores pueden incrustar en sus propias aplicaciones. Ambos usan
00:14:07configuración basada en JSON con niveles de proyecto y globales. Open Code usa JSONC,
00:14:14que es JSON con comentarios. Un buen detalle de calidad de vida. Pi usa
00:14:19JSON estándar. Ambos soportan una personalización extensiva de modelos, herramientas y comportamiento. La
00:14:26configuración de Open Code es más compleja porque hay más que configurar. La de Pi es
00:14:31más simple porque hay menos superficie integrada. Entonces, ¿cuál deberías
00:14:35elegir? Aquí están las preguntas que debes hacerte. ¿Quieres una herramienta que funcione con todas sus
00:14:39funciones listas para usar? ¿O prefieres armar tu propio flujo de trabajo? Si
00:14:45quieras instalar un agente de codificación y tener todo funcionando en cinco minutos con
00:14:49permisos, múltiples agentes, MCP, LSP y una experiencia pulida, Open Code está
00:14:56diseñado para eso. Si quieres un núcleo mínimo que personalices exactamente según tus
00:15:01necesidades y te sientes cómodo escribiendo extensiones en TypeScript, Pi está hecho para
00:15:06ti. ¿Qué tan importante es MCP para tu flujo de trabajo? Si ya usas servidores MCP
00:15:11o planeas hacerlo, Open Code los soporta de forma nativa. Pi deliberadamente no lo hace,
00:15:16favoreciendo integraciones más simples basadas en CLI. ¿Trabajas principalmente en lenguajes
00:15:22fuertemente tipados? El soporte LSP integrado de Open Code le da al modelo de IA una comprensión
00:15:28más rica del código, lo cual importa más para TypeScript, Go, Rust y lenguajes similares.
00:15:34Si trabajas principalmente en Python o lenguajes de tipado dinámico, esta
00:15:39ventaja es menor. ¿Quieres una aplicación de escritorio o interfaz web? Open Code
00:15:44ofrece ambas junto a la terminal. Pi es solo para terminal y está orgulloso de ello. ¿Cómo te
00:15:51sientes respecto a la confianza y el sandboxing? Si quieres que el agente pregunte antes de hacer
00:15:55cualquier cosa peligrosa, el sistema de permisos de Open Code maneja esto de inmediato. Si
00:16:00prefieres ejecutar todo el agente en un contenedor Docker y dejar que haga lo que
00:16:04quiera dentro de ese entorno seguro, el enfoque sin permisos de Pi combina bien con
00:16:10flujos de trabajo basados en contenedores. ¿Eres un usuario experto que quiere personalizarlo todo?
00:16:15El sistema de extensiones de Pi es notablemente potente. Puedes modificar virtualmente cada
00:16:20aspecto del comportamiento del agente, desde la ejecución de herramientas hasta la gestión de sesiones o la
00:16:25propia TUI. Open Code también tiene un sistema de plugins, pero está más enfocado en
00:16:30ganchos específicos en lugar de la anulación total del comportamiento. Aquí está la conclusión
00:16:34honesta. Open Code es el producto más maduro y con más funciones hoy en día. Te
00:16:40ofrece más de entrada. Se integra con más sistemas externos y
00:16:44tiene una barrera de entrada más baja. Para la mayoría de desarrolladores que quieren un agente
00:16:49de codificación de IA de código abierto, Open Code es la apuesta segura. Pi tiene el diseño más interesante. Su
00:16:55minimalismo agresivo y su filosofía de extensiones primero lo hacen excepcionalmente adaptable. Si
00:17:01eres el tipo de desarrollador que personaliza su config de Neovim durante semanas
00:17:05antes de escribir nada de código, si quieres un agente que funcione exactamente como
00:17:09tú crees que debería, Pi recompensa la inversión y su navegación de árbol de sesiones es
00:17:14genuinamente la mejor en su clase. Ambos proyectos tienen licencia MIT, ambos están mantenidos activamente
00:17:20y ambos soportan el mismo amplio conjunto de proveedores de LLM. Puedes probar ambos en una
00:17:27tarde. El código está en GitHub y ninguno requiere una suscripción para
00:17:31empezar. Instálalos, ejecútalos en la misma base de código y mira cuál encaja con
00:17:37tu forma de trabajar. Esa es la única comparación que realmente importa.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video