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.

Key Takeaway

La elección entre Open Code y Pi depende de si se busca un entorno 'con baterías incluidas' que integra LSP, MCP y permisos complejos de inmediato, o un núcleo minimalista de alto rendimiento diseñado para ser extendido mediante TypeScript.

Highlights

  • Open Code utiliza Bun para acelerar el arranque y la ejecución junto con el AI SDK versión 5 para soportar más de 20 proveedores de LLM.

  • Pi implementa un sistema de gestión de sesiones en formato JSONL que permite crear ramas de conversación y navegar por el historial mediante una estructura de árbol.

  • Open Code integra el protocolo LSP para proporcionar al modelo inteligencia de código real como definiciones y referencias de símbolos en lenguajes como Rust, Go y TypeScript.

  • Pi reduce el parpadeo en la terminal utilizando el protocolo CSI 2026 y un motor de renderizado diferencial denominado pi2e.

  • Open Code gestiona la persistencia de sesiones, permisos y credenciales mediante una base de datos SQLite con el modo WAL activado para optimizar lecturas concurrentes.

  • Pi prescinde deliberadamente de sistemas de permisos y soporte MCP integrados para favorecer una API de extensión donde los usuarios construyen funciones a medida.

  • Open Code incluye cuatro agentes especializados por defecto: un agente de construcción con acceso total, uno de planificación de solo lectura, un explorador ligero y un subagente general.

Timeline

Divergencia filosófica en agentes de terminal

  • Open Code y Pi funcionan como agentes de código abierto que ejecutan comandos y editan archivos directamente desde la terminal.
  • Open Code ofrece un enfoque de funcionalidades completas integradas desde la instalación inicial.
  • Pi prioriza un diseño minimalista donde casi todas las funciones avanzadas son opcionales y extensibles.

Ambas herramientas están escritas en TypeScript bajo licencia MIT y sirven como alternativas a Claude Code. Open Code incluye sistemas multiagente, bases de datos SQLite y aplicaciones de escritorio Tauri de forma nativa. Por el contrario, Pi evita dictar el flujo de trabajo del desarrollador eliminando subagentes y sistemas de permisos del núcleo, proporcionando en su lugar una API potente para que la comunidad construya lo que necesite.

Arquitectura y capacidades de Open Code

  • La ejecución sobre Bun y el uso de Vercel AI SDK garantizan rapidez y compatibilidad con múltiples proveedores.
  • El sistema granular de permisos permite autorizar lecturas generales mientras se bloquean ediciones en archivos críticos como los directorios de producción.
  • El soporte nativo de LSP eleva la precisión de la IA al proporcionar contexto técnico real más allá del simple reconocimiento de patrones de texto.

Open Code organiza su motor en un monorepo de 21 paquetes que separan la lógica del agente de la interfaz web y de escritorio. El sistema multiagente permite alternar entre roles de desarrollo, planificación y exploración con la tecla Tab. La integración con Model Context Protocol (MCP) incluye soporte para transportes STDIO e HTTP y manejo de autenticación OAuth para servidores remotos.

Minimalismo y extensibilidad en Pi

  • Pi utiliza una capa de abstracción de LLM propia llamada Pi-I que soporta proveedores específicos como Minimax y Kimi.
  • La interfaz de usuario emplea renderizado diferencial para minimizar las actualizaciones de pantalla y eliminar el parpadeo.
  • Las extensiones de Pi se cargan directamente mediante jiti sin necesidad de pasos de compilación previos.

La gestión de sesiones mediante archivos JSONL facilita la inspección con herramientas estándar de Unix y la creación de bifurcaciones de chat con el comando fork. El sistema de extensiones permite a los desarrolladores suscribirse a eventos del ciclo de vida y renderizar componentes TUI personalizados. Aunque solo incluye siete herramientas básicas, Pi soporta ejecución paralela y sandboxing opcional en Docker para comandos bash.

Comparativa directa y criterios de elección

  • Open Code es la opción superior para flujos de trabajo que dependen de servidores MCP y lenguajes tipados.
  • Pi resulta ideal para usuarios que operan en entornos de contenedores y prefieren personalizar cada aspecto de su herramienta.
  • La madurez de Open Code ofrece una barrera de entrada más baja para la mayoría de los desarrolladores.

La decisión se reduce a la preferencia entre conveniencia y personalización. Open Code proporciona seguridad inmediata con sus diálogos de aprobación y reglas por archivo, mientras que Pi delega la seguridad en el entorno de ejecución o en extensiones personalizadas. La navegación de árbol de sesiones de Pi destaca como la mejor de su clase para quienes exploran múltiples soluciones de código simultáneamente.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video