15 de agosto de 2026 · Por YasKad
earendil-works/pi

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.md avisa 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.

Cubo diminuto y brillante que representa un núcleo mínimo, con líneas de neón que se ramifican hacia módulos flotantes.

  • 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.

Terminal holográfica encerrada en un contenedor translúcido de neón, con procesos no confiables rebotando fuera de la barrera.

  • Revisión de código y dependencias. El repositorio fija versiones directas, usa --ignore-scripts en 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

Centro de mando futurista con paneles de árbol de archivos, diferencias de código y salidas de bash, con las herramientas read, write, edit y bash activas.

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.

Árbol de conversación ramificándose en un vacío oscuro, con nodos brillantes que representan sesiones JSONL que se pueden bifurcar y clonar.

La personalización se organiza por archivos y módulos:

  • AGENTS.md, CLAUDE.md y AGENTS.override.md aportan contexto desde el directorio actual y sus ancestros.
  • ~/.pi/agent/settings.json y .pi/settings.json guardan 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:nombre o cargarse automáticamente.

Caja de herramientas holográfica flotante con iconos de habilidades modulares que se cargan en una terminal transparente.

  • 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.

Cursor de terminal brillante emitiendo haces de luz hacia logotipos holográficos de Claude, ChatGPT y 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-hf y el conjunto badlogic/pi-mono en 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-pi aparece enlazado por el usuario theturtletalks como una alternativa que estaba probando junto a Pi. La fuente no basta para afirmar compatibilidad completa ni mantenimiento oficial.
  • gitsense/pi-brains fue presentado por sdesol como 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étricaValor visible
Estrellas84,2 mil
Bifurcaciones10,4 mil
Commits5.488
Ramas50
Etiquetas308
Incidencias abiertas visibles65
Solicitudes de cambios abiertas visibles16
LicenciaMIT
Última versiónv0.83.0, publicada la semana anterior
Descargas npm de la última semana1.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.

Puerta de neón futurista que filtra un flujo de envíos de código; algunos bloques verdes pasan la revisión lgtm y otros son desviados.

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

  1. Examinar y corregir un proyecto. Inicie pi, escriba una tarea y deje que use read, write, edit y bash. Para pedir una comprobación concreta desde la sesión, use !npm run lint; !!npm run lint ejecuta el comando sin incorporar su salida al contexto del modelo.
  2. Revisar archivos concretos. Use pi @README.md "Resume este archivo" o pi @src/app.ts @src/app.test.ts "Revisa ambos". En el editor interactivo, @ abre una búsqueda difusa de archivos.

Terminal oscura donde el usuario escribe una búsqueda difusa con @ para seleccionar README.md y app.ts, con resaltados holográficos.

  1. Retomar o bifurcar una investigación. pi -c continúa la sesión reciente, pi -r permite elegir una anterior y pi --session <ruta|id> abre una específica. Dentro de la interfaz, /tree, /fork y /clone conservan ramas del historial.
  2. Automatizar una llamada. pi -p "Resume esta base de código" produce una ejecución puntual; pi --mode json ofrece eventos JSON y pi --mode rpc integra 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.md o CLAUDE.md: instrucciones de proyecto que Pi carga al inicio; AGENTS.override.md reemplaza los de esa carpeta.
  • ~/.pi/agent/skills/ o .pi/skills/: habilidades locales con SKILL.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 .pi no se activan. Revise el código y apruebe con /trust, o ajuste defaultProjectTrust segú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, como pi 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 /compact y /tree para 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

PropuestaCoincidencia verificableDiferencia documentada
Claude CodeAmbos 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 CLIAmbos 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.
OpenCodeUn 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-piDerivado 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 y llama.cpp para 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.md o CLAUDE.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


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