Pi: un arnés mínimo y extensible para agentes de programación
earendil-works/pi · 109.302★ · 13.892 forks
Todo lo que hay que saber sobre earendil-works/pi: un monorrepositorio MIT que reúne una CLI de programación interactiva, un bucle de agente, una API de modelos y una interfaz de terminal extensible.
Qué es Pi
Pi es un arnés de programación para terminal. Su paquete principal, @earendil-works/pi-coding-agent, ofrece una conversación interactiva con herramientas de lectura, escritura, edición y ejecución de comandos; el mismo repositorio publica el tiempo de ejecución pi-agent-core, la API multiproveedor pi-ai, la biblioteca de interfaz pi-tui y contratos de telemetría.
No pretende ser un entorno cerrado que imponga una metodología. La documentación oficial lo define como un núcleo pequeño que se amplía con extensiones TypeScript, habilidades, plantillas de instrucciones, temas y paquetes Pi compartibles por npm o Git. También expone cuatro formas de uso: interfaz interactiva, salida de impresión o JSON, RPC y SDK para incrustarlo en otra aplicación.
El origen: minimalismo deliberado de Mario Zechner
La documentación del paquete enlaza el ensayo de Mario Zechner, «What if you don’t need MCP?», y su entrada «Pi Coding Agent» del 30 de noviembre de 2025. Ese material explica la tensión fundacional: en vez de acumular dentro de la CLI funciones que otros agentes traen de serie, Pi conserva un núcleo reducido y deja que la persona usuaria construya o instale lo que necesite.
La postura se ve en lo que el proyecto decide no incluir en el núcleo: MCP, subagentes, ventanas de permisos, modo de planificación, listas de tareas y comandos de fondo. No significa que esas capacidades sean imposibles: el README indica alternativas explícitas, como extensiones, paquetes externos, tmux, archivos TODO.md y contenedores. Es una decisión de arquitectura y gobernanza, no una afirmación de que tales funciones carezcan de utilidad.
Filosofía y principios
- Núcleo mínimo, extensión máxima.
CONTRIBUTING.mdavisa que una función que no pertenezca al núcleo debería ser una extensión y que las solicitudes que lo hinchen probablemente se rechazarán.

- Adaptar la herramienta al flujo. La propuesta oficial es adaptar Pi a los procesos existentes mediante módulos TypeScript, habilidades y paquetes, no obligar al equipo a adoptar una secuencia predeterminada.
- Responsabilidad del operador. Pi no incorpora permisos para limitar archivos, procesos, red o credenciales: se ejecuta con los permisos del proceso que lo inicia. La documentación recomienda contenedor, OpenShell o la extensión Gondolin cuando se requieran límites más fuertes.

- Revisión de código y dependencias. El repositorio fija versiones directas, usa
--ignore-scriptsen instalaciones compatibles y comprueba el bloqueo de dependencias; además, exige que quien contribuya entienda el código, aunque haya usado IA para escribirlo.
Cómo funciona

La CLI usa el directorio actual como espacio de trabajo y entrega al modelo las herramientas read, write, edit y bash; hay utilidades de solo lectura adicionales configurables. Los proveedores se autentican con /login o con una clave de API, y /model cambia el modelo. Las sesiones se guardan como JSONL en ~/.pi/agent/sessions/, con árbol de mensajes para reanudar, bifurcar o clonar ramas de conversación.

La personalización se organiza por archivos y módulos:
AGENTS.md,CLAUDE.mdyAGENTS.override.mdaportan contexto desde el directorio actual y sus ancestros.~/.pi/agent/settings.jsony.pi/settings.jsonguardan configuración global y por proyecto.- Las extensiones TypeScript pueden registrar herramientas, comandos, manejadores de eventos y componentes de interfaz; con ellas se puede añadir integración MCP, puertas de permisos, subagentes o puntos de control Git.
- Las habilidades siguen el estándar Agent Skills y pueden instalarse como
/skill:nombreo cargarse automáticamente.

- Los paquetes Pi distribuyen extensiones, habilidades, instrucciones y temas mediante npm o Git.
El proyecto admite suscripciones de Claude, ChatGPT/Codex y GitHub Copilot, además de una lista amplia de proveedores por API y llama.cpp. La publicación v0.83.0 añadió exportación de credenciales con renovación OAuth, finalización de inicio de sesión de OpenRouter a través de SSH y soporte de Claude Opus 5 por GitHub Copilot.

Estado oficial y semioficial
Pi es un proyecto mantenido por Earendil Inc., con sitio y documentación oficiales en pi.dev, paquete oficial en npm y comunidad oficial en Discord. No se recuperó evidencia de que sea un producto oficial de Anthropic, OpenAI, GitHub o de algún mercado de esos proveedores: las suscripciones de esos servicios son opciones de autenticación compatibles, no una certificación del producto.
Su uso como arnés extensible es visible en los paquetes y proyectos relacionados enumerados por la propia documentación y en conversaciones externas, pero no se halló una designación formal de estándar de facto. Conviene distinguir esa adopción abierta de un aval de un proveedor de modelos.
El ecosistema
Componentes y proyectos del mismo ámbito
earendil-works/pi-chat: el README raíz lo enlaza para automatización de Slack, chat y flujos de trabajo.- Gondolin: extensión indicada por el README para dejar Pi y la autenticación en el anfitrión y enviar herramientas y comandos
!a una micro-VM Linux local. Un comentario de Hacker News atribuye Gondolin al mismo creador de Pi. earendil-works/absurd: proyecto relacionado mencionado en comentarios de Hacker News como otro desarrollo del equipo; el comentario lo describe como minimalista y controlable, pero esa caracterización es la opinión de su autor, no una prueba independiente.badlogic/pi-share-hfy el conjuntobadlogic/pi-monoen Hugging Face: vías oficiales enlazadas por el README para publicar sesiones abiertas de programación y reunir datos de tareas, herramientas, fallos y correcciones.
Extensiones y derivados comunitarios recuperados
can1357/oh-my-piaparece enlazado por el usuariotheturtletalkscomo una alternativa que estaba probando junto a Pi. La fuente no basta para afirmar compatibilidad completa ni mantenimiento oficial.gitsense/pi-brainsfue presentado porsdesolcomo una extensión de enrutamiento y contexto para Pi. Es un proyecto comunitario, no un componente de Earendil.- El hilo «I Built a Telegram Client for Pi» acredita al menos una extensión de cliente Telegram publicada por
atharva-again; la conversación no permitió recuperar con seguridad su repositorio, por lo que no se inventa un nombre ni métricas.
Se consultó la búsqueda de bifurcaciones mediante la API de GitHub, pero la cuota pública fue rechazada durante esta ejecución. Por ello no se ofrece una lista de bifurcaciones ni traducciones como si fuera exhaustiva. Tampoco se recuperó una traducción no inglesa verificable.
Números del repo
Medición: 5 de agosto de 2026, página pública de GitHub y npm.
| Métrica | Valor visible |
|---|---|
| Estrellas | 84,2 mil |
| Bifurcaciones | 10,4 mil |
| Commits | 5.488 |
| Ramas | 50 |
| Etiquetas | 308 |
| Incidencias abiertas visibles | 65 |
| Solicitudes de cambios abiertas visibles | 16 |
| Licencia | MIT |
| Última versión | v0.83.0, publicada la semana anterior |
| Descargas npm de la última semana | 1.613.282 |
GitHub mostraba como último commit 6b461b7, de badlogic, dos horas antes de la consulta. La página de versiones sitúa v0.83.0 como la más reciente; la noticia oficial la fecha el 29 de julio de 2026. La API de GitHub devolvió límite de cuota, así que no se pudieron verificar suscriptores reales, lenguaje principal, fechas exactas ni una clasificación de contribuidores. Las 65 incidencias y 16 solicitudes son contadores de página separados, no el campo agregado open_issues_count de la API.
Cómo contribuir
El proceso es intencionadamente selectivo. Las incidencias y solicitudes de cambios de contribuyentes nuevos se cierran automáticamente y los mantenedores las revisan a diario. Para que futuras incidencias puedan permanecer abiertas se requiere una respuesta de mantenedor con lgtmi; para solicitudes de cambios, lgtm.

Antes de abrir una solicitud aprobada, la guía exige ejecutar:
npm run check
./test.sh
No se debe editar CHANGELOG.md. Las incidencias deben usar una de las dos plantillas, ser cortas, concretas y redactadas por quien las envía; la guía advierte que el envío masivo o repetidamente descuidado puede terminar en bloqueo. La justificación documentada es proteger el tiempo de mantenimiento frente a informes automatizados de baja calidad, no excluir contribuciones razonadas.
Guía rápida de uso
Instalación y primer arranque
Se necesita Node y npm para la vía principal. La documentación oficial recomienda:
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
cd /ruta/del/proyecto
pi
--ignore-scripts desactiva scripts del ciclo de vida de dependencias; Pi declara que no los necesita para una instalación npm normal. En Linux y macOS existe también curl -fsSL https://pi.dev/install.sh | sh. Al iniciar, ejecute /login y elija un proveedor de suscripción, o defina una clave, por ejemplo export ANTHROPIC_API_KEY=..., antes de lanzar pi.
En el primer inicio Pi puede preguntar si confía en recursos locales del proyecto. Esa decisión controla la carga de .pi/settings.json, extensiones y paquetes locales; no conviene aprobarla sin revisar el repositorio.
Flujos de trabajo habituales
- Examinar y corregir un proyecto. Inicie
pi, escriba una tarea y deje que useread,write,editybash. Para pedir una comprobación concreta desde la sesión, use!npm run lint;!!npm run lintejecuta el comando sin incorporar su salida al contexto del modelo. - Revisar archivos concretos. Use
pi @README.md "Resume este archivo"opi @src/app.ts @src/app.test.ts "Revisa ambos". En el editor interactivo,@abre una búsqueda difusa de archivos.

- Retomar o bifurcar una investigación.
pi -ccontinúa la sesión reciente,pi -rpermite elegir una anterior ypi --session <ruta|id>abre una específica. Dentro de la interfaz,/tree,/forky/cloneconservan ramas del historial. - Automatizar una llamada.
pi -p "Resume esta base de código"produce una ejecución puntual;pi --mode jsonofrece eventos JSON ypi --mode rpcintegra un proceso externo mediante JSONL por entrada y salida estándar.
Configuración esencial
~/.pi/agent/settings.json: opciones globales, incluida la confianza predeterminada del proyecto y telemetría..pi/settings.json: opciones que sobrescriben las globales en un repositorio confiado.AGENTS.mdoCLAUDE.md: instrucciones de proyecto que Pi carga al inicio;AGENTS.override.mdreemplaza los de esa carpeta.~/.pi/agent/skills/o.pi/skills/: habilidades locales conSKILL.md.~/.pi/agent/extensions/o.pi/extensions/: extensiones TypeScript para herramientas, eventos e interfaz.
Tras modificar recursos de contexto, ejecute /reload o reinicie Pi.
Trampas frecuentes y soluciones
- Permisos inesperados. Pi no tiene ventanas de permiso integradas y actúa con los privilegios del proceso. Para trabajo no confiable, use Docker, OpenShell o Gondolin; no suponga que la CLI aísla comandos por sí misma.
- Recursos locales no cargados. Si no se confía en el proyecto, la configuración y extensiones de
.pino se activan. Revise el código y apruebe con/trust, o ajustedefaultProjectTrustsegún la política del equipo. - Instalación de paquetes de terceros. Las extensiones pueden ejecutar código arbitrario y las habilidades pueden instruir acciones peligrosas. Revise el código antes de
pi install; para Git, fije una etiqueta o commit, comopi install git:github.com/usuario/repo@v1. - Incidencia o solicitud cerrada automáticamente. Siga
CONTRIBUTING.md, use una plantilla, describa una reproducción breve y espere la revisión; para casos urgentes la guía deriva a Discord. - Sesión demasiado larga. La compactación automática está activa y es deliberadamente con pérdida; el historial completo permanece en JSONL. Use
/compacty/treepara controlar el contexto y recuperar un punto anterior.
Integraciones y migración
Pi puede integrarse con aplicaciones mediante SDK o con otro proceso mediante pi --mode rpc. Para ampliar la CLI con MCP, subagentes, aprobaciones o herramientas de despliegue, el camino documentado es una extensión TypeScript; no hay un servidor MCP nativo. Los paquetes se instalan con pi install npm:@organizacion/paquete o desde Git, y -l los instala localmente en el proyecto. Quien llega desde una CLI con funciones integradas debe traducir esas expectativas a extensiones, habilidades o paquetes, en lugar de buscar banderas nativas equivalentes.
Cómo lo recibió la comunidad
La recepción verificable combina elogios a la simplicidad con objeciones sobre el alcance y la disciplina del proyecto:
- En Hacker News, el hilo 49176038, «Pi’s Minimalism Is Its Advantage», tenía 509 puntos y 275 comentarios. El usuario manoji afirmó que estaba construyendo un agente sobre el arnés y elogió su simplicidad. Es una experiencia personal, no una comparación controlada.
- El hilo 48804801, sobre un cliente Telegram para Pi, tenía 72 puntos y 44 comentarios. tough lo situó «en espíritu» junto a Claude Code, Codex y OpenCode y destacó que resulta fácil de ampliar; esa valoración es opinión de un comentarista, no respaldo de los proyectos citados.
- En 48865001, 154 puntos y 143 comentarios, theturtletalks dijo haber sustituido Codex CLI por Pi y estar probando
oh-my-pi. Constituye una señal de uso individual y de un derivado, no una prueba de superioridad. - También hay crítica operativa. En 48259192, con 196 puntos y 147 comentarios, the_mitsuhiko señaló una incidencia de Pi que no seguía la plantilla y la calificó como análisis generado de baja calidad. Esa queja encaja con la política estricta de contribución del repositorio, pero no demuestra que todos los informes sean así.
La consulta directa a Reddit en r/programming, r/selfhosted, r/LocalLLaMA, r/devops, r/netsec y r/MachineLearning fue bloqueada por el sitio, por lo que no se atribuyen hilos ni opiniones de esas comunidades. La API de Dev.to sí devolvió una reseña de andrew-ooo y un artículo de Cloudflare de harshil1712, pero no se usaron sus conclusiones sin recuperar sus textos completos. Product Hunt presentó una página de verificación y la búsqueda de X no permitió recuperar una conversación pública verificable; el README sí enlaza dos publicaciones de badlogic en X sobre compartir sesiones y un vídeo de demostración de esa publicación.
Pi frente a otras propuestas
| Propuesta | Coincidencia verificable | Diferencia documentada |
|---|---|---|
| Claude Code | Ambos son agentes de programación de terminal y Pi permite iniciar sesión con una suscripción Claude. | Pi no integra por defecto permisos, subagentes ni modo de planificación; su README propone extensiones o contenedores para esas funciones. |
| Codex CLI | Ambos pueden usarse como asistentes de programación; Pi acepta el inicio de sesión de ChatGPT/Codex. | Pi puede utilizar varios proveedores y expone paquetes, RPC y SDK; no se recuperó un benchmark que justifique una comparación de calidad. |
| OpenCode | Un comentario de Hacker News los agrupa como arneses de primera línea. | La única fuente recuperada es esa opinión; no se afirma equivalencia de funciones ni rendimiento. |
can1357/oh-my-pi | Derivado o extensión comunitaria citado por un usuario de Hacker News. | La fuente recuperada no documenta su diseño ni compatibilidad, así que debe evaluarse por separado antes de migrar. |
Casos de uso y a quién puede ayudar este repositorio
- Desarrolladores que quieren una CLI adaptable a varios proveedores pueden usar
/login,/model, claves de API yllama.cpppara trabajar desde una misma interfaz sin cambiar el arnés por cada proveedor. - Equipos con convenciones de repositorio pueden declarar comprobaciones y límites en
AGENTS.mdoCLAUDE.md, usar contexto global y de proyecto, y reanudar sesiones guardadas para conservar el trabajo de una tarea. - Personas que construyen herramientas de desarrollo pueden integrar el agente mediante SDK o RPC y crear extensiones TypeScript para registrar herramientas, UI, aprobaciones, telemetría, subagentes o conectores MCP.
- Organizaciones con requisitos de aislamiento pueden ejecutar Pi en Docker u OpenShell, o encaminar herramientas a Gondolin, siempre entendiendo que el aislamiento no forma parte de la CLI por defecto.
- Mantenedores que quieren compartir automatizaciones reutilizables pueden distribuir habilidades, plantillas, temas y extensiones como paquetes npm o Git, fijando referencias para reducir cambios imprevistos.
Recursos
- Repositorio: https://github.com/earendil-works/pi
- Documentación e instalación: https://pi.dev/docs/latest y https://pi.dev/docs/latest/quickstart
- Paquete npm: https://www.npmjs.com/package/@earendil-works/pi-coding-agent
- Novedades y cambios oficiales: https://pi.dev/news y https://github.com/earendil-works/pi/releases
- Guía para contribuir: https://github.com/earendil-works/pi/blob/main/CONTRIBUTING.md
- RFCs del proyecto: https://rfc.earendil.com/keyword/pi/
- Comunidad Discord: https://discord.com/invite/3cU7Bz4UPx
- Conversaciones y reseñas: https://news.ycombinator.com/item?id=49176038, https://news.ycombinator.com/item?id=48804801, https://news.ycombinator.com/item?id=48865001, https://news.ycombinator.com/item?id=48259192, https://dev.to/andrew-ooo/pi-coding-agent-review-the-minimal-terminal-harness-5b46, https://dev.to/cloudflare/how-i-run-the-pi-coding-agent-on-cloudflare-ld5
- Vídeo y sesiones abiertas enlazados por el proyecto: https://x.com/badlogicgames/status/2041151967695634619, https://github.com/badlogic/pi-share-hf, https://huggingface.co/datasets/badlogic/pi-mono
Nota: este artículo combina el README y CONTRIBUTING.md recuperados del repositorio, la documentación y noticias de pi.dev, las páginas públicas de GitHub, la API de npm y resultados de Hacker News consultados el 5 de agosto de 2026. Las cifras cambian con el tiempo; las métricas que la API de GitHub no entregó por límite de cuota se han señalado como tales.
Comentarios