12 puntos por GN⁺ 2026-02-25 | 2 comentarios | Compartir por WhatsApp
  • Pi es un agente de programación minimalista basado en terminal, que ofrece una estructura extensible para adaptarse al flujo de trabajo del usuario
  • Puedes armar tu propio entorno de desarrollo combinando extensiones en TypeScript, skills, plantillas de prompts y temas, y compartirlo como paquetes de npm o git
  • Soporta más de 15 proveedores de IA y cientos de modelos, y permite cambiar de modelo durante la sesión o agregar modelos personalizados
  • Las sesiones se guardan con un historial en estructura de árbol, por lo que puedes volver a puntos anteriores o exportarlas a HTML o GitHub gist
  • Mantiene las funciones centrales al mínimo y una filosofía de diseño centrada en la extensibilidad, para que los desarrolladores implementen solo lo que necesiten o lo agreguen como paquetes

Resumen de Pi

  • Pi es un arnés de programación en terminal con una estructura que permite personalizar las herramientas sin cambiar el flujo de trabajo del usuario
    • Soporta componentes extensibles como extensiones en TypeScript, skills, plantillas de prompts y temas
    • Los paquetes de pi que agrupan estos elementos pueden instalarse y compartirse mediante npm o git
  • La configuración predeterminada es potente, pero no incluye funciones como subagentes o modo de planificación
  • Ofrece cuatro modos (interactivo, print/JSON, RPC y SDK), y clawdbot muestra un caso real de integración

Modelos y proveedores

  • Soporta más de 15 proveedores y cientos de modelos, entre ellos Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi, MiniMax, OpenRouter y Ollama
  • La autenticación puede hacerse con API key u OAuth
  • Puedes cambiar de modelo durante la sesión con el comando /model o Ctrl+L, y recorrer modelos favoritos con Ctrl+P
  • Se pueden agregar modelos personalizados mediante models.json o extensiones

Gestión de sesiones

  • Las sesiones se guardan en una estructura de árbol, y puedes volver a puntos anteriores con el comando /tree
  • Todas las ramas se guardan en un solo archivo, y se admite filtrado por tipo de mensaje y etiquetado con marcadores
  • Con /export puedes exportar a HTML, y con /share subir a GitHub gist y generar una URL para compartir

Ingeniería de contexto

  • Un prompt de sistema mínimo y la extensibilidad permiten controlar con precisión la ventana de contexto
    • AGENTS.md: carga automáticamente las instrucciones del proyecto al iniciar
    • SYSTEM.md: reemplaza o agrega el prompt de sistema base por proyecto
    • Compaction: cuando se alcanza el límite de contexto, resume automáticamente mensajes anteriores; mediante extensiones pueden implementarse resúmenes por tema o resúmenes con reconocimiento de código
    • Skills: paquetes de funcionalidad que se cargan cuando hacen falta, mantienen la caché de prompts y ofrecen funciones de manera gradual
    • Prompt templates: prompts reutilizables y extensibles con el comando /name
    • Dynamic context: mediante extensiones se pueden insertar mensajes, filtrar historial, implementar RAG y construir memoria de largo plazo

Encolado de mensajes

  • Puedes enviar mensajes incluso cuando el agente está trabajando
    • Enter: mensaje de steering que se entrega después de la ejecución actual de la herramienta
    • Alt+Enter: mensaje de follow-up que se entrega al terminar la tarea

Estructura de extensiones

  • Pi está diseñado en torno a primitivas, no a funciones cerradas, para que el usuario pueda implementar capacidades por su cuenta
    • Las extensiones toman la forma de módulos TypeScript y pueden acceder a herramientas, comandos, atajos, eventos y a toda la TUI
    • Ejemplos de extensiones: subagentes, modo de planificación, puertas de permisos, protección de rutas, ejecución por SSH, sandboxing, integración con MCP, editor personalizado y overlays
    • Incluso existe una extensión de overlay de juego, como muestra el ejemplo “Yes, Doom runs.”
  • Si no quieres implementarlo tú mismo, puedes agregar funciones instalando paquetes de pi
  • En GitHub hay disponibles más de 50 ejemplos de extensiones

Gestión de paquetes

  • Las extensiones, skills, prompts y temas pueden agruparse en paquetes e instalarse desde npm o git
    • Ejemplo:
      $ pi install npm:@foo/pi-tools  
      $ pi install git:github.com/badlogic/pi-doom  
      
    • Se puede fijar la versión (@1.2.3 o @tag), actualizar todo con pi update, ver la lista con pi list y configurar con pi config
    • El comando pi -e permite probar sin instalar
  • Puedes descubrir y compartir paquetes con la búsqueda de npm pi-package o en el canal de Discord

Modos de integración

  • Interactive: entorno TUI completo
  • Print/JSON: pi -p "query" para scripts, --mode json para flujo de eventos
  • RPC: protocolo JSON sobre stdin/stdout para integraciones en entornos que no usan Node
  • SDK: permite incrustarlo dentro de aplicaciones; clawdbot ofrece un ejemplo de uso real

Filosofía de diseño

  • Pi está diseñado para maximizar la extensibilidad, reducir el núcleo al mínimo y permitir que el usuario defina su propio flujo de trabajo
    • No incluye funciones como MCP, subagentes, ventanas emergentes de permisos, modo de planificación, TODOs integrados o bash en segundo plano
    • En su lugar, esas mismas capacidades pueden implementarse mediante extensiones, skills y paquetes, o integrarse con herramientas externas
    • Soporta ejecución y observación en paralelo mediante tmux
  • Este enfoque permite una configuración del entorno de desarrollo guiada por el propio usuario
  • La filosofía completa se explica con más detalle en la publicación del blog correspondiente

2 comentarios

 
qodot 2026-02-26

Me encanta muchísimo pi

 
GN⁺ 2026-02-25
Comentarios en Hacker News
  • Lo que me parece interesante de Pi y del fenómeno de “claw” es que muestra el futuro del software de código abierto
    Ahora estamos entrando en una era en la que, en vez de enviar solicitudes de funciones o PRs, descargas un archivo de skill que le dice al agente de código cómo agregar la funcionalidad
    El software ya no es un producto fijo, sino una herramienta viva distinta para cada usuario
    Me da curiosidad qué tipo de tooling surgirá en este nuevo paradigma de colaboración

    • Yo también veo esa misma tendencia
      El software actual hace que los usuarios no puedan controlar su entorno, y eso genera una sensación de alienación
      Pero un software personalizado, barato y flexible puede dar una verdadera sensación de propiedad
      Antes los escritorios Linux ofrecían esa libertad; ahora parece que todos podrán disfrutar de ese beneficio
      Soy optimista sobre ese futuro
    • Yo también he estado pensando mucho en esto últimamente
      Creo que vamos hacia un aumento del software extremadamente personalizado — hasta el punto de que solo una persona o un grupo pequeño pueda entenderlo
      Últimamente he usado Claude para crear muchas herramientas que solo usamos yo y unas cuantas personas
      Por ejemplo, una app para programar partidas de DnD, un visor de noticias de Formula E sin spoilers y un sitio de votación para una cooperativa de escalada
      Antes no había razón para hacer algo así, pero ahora sí es posible
      Lo resumí en Releasing Software Now
    • Estoy de acuerdo con eso de “una herramienta viva distinta de la copia de los demás”, pero creo que este modelo será difícil de adoptar institucionalmente
      No veo a grandes empresas ni gobiernos permitiendo sistemas tan inconsistentes
    • No entiendo por qué este paradigma produciría tooling interesante
      Más bien creo que va a generar herramientas peores
    • Solo de imaginar lo complejo que será el troubleshooting cuando todos usen versiones distintas del software ya me da vértigo
  • Estoy acostumbrado a OpenCode, así que he estado pensando si usar Pi como espacio de trabajo personal con IA
    Pi tiene un ecosistema más pequeño, pero parece ofrecer más flexibilidad y extensibilidad, y también se siente el entusiasmo de la comunidad
    Me pregunto si valdrá más la pena usar Pi en lugar de OpenCode y qué opciones de UI existen

    • Yo también me hago la misma pregunta
      He usado OpenCode con archivos .md para escribir y organizar cosas, y me ha funcionado bastante bien
      Ahora estoy buscando un nuevo harness que se adapte mejor a ese trabajo
    • La dirección que entendiste es la correcta
  • Es mi harness favorito en estos días
    Como se puede ampliar directamente, es muy eficiente, y lo integré en el proyecto vibes
    Es mucho más rápido que ACP

    • Me intriga por qué hay esa diferencia de velocidad entre una integración directa y ACP
      Yo estaba buscando un protocolo genérico para la interacción entre agentes, y ACP parecía una opción
      Pero viendo que ni siquiera OpenCode usa ACP en la UI, parece que algo pasa
      También me gustaría saber si hay opciones mejores para reemplazarlo
    • Me gustaría saber con qué otros harnesses lo comparaste
    • ¡Esto realmente me encanta! Se siente como si ya hubieran implementado lo que yo quería construir
    • ¿Qué significa exactamente “harness”? ¿No es simplemente un agente de código?
  • No he visto a nadie que, después de usar Pi unos días, dejara de usarlo en su día a día
    Una vez que pruebas la libertad de configurar la herramienta a tu gusto, es difícil volver atrás
    Además, encima puedes crear extensiones geniales

    • Por lo que escucho, Pi es como el Neovim o Emacs de los agentes de código
    • Me alegra, pero para mí Claude CLI y OpenCode fueron mucho más productivos que Pi
      La extensibilidad de Pi es interesante, pero la calidad del trabajo real se quedó corta
    • Me gustaría saber cuál es la función hecha por ti mismo que más te gusta y que Claude Code no tiene
  • No entiendo por qué habría que programar a la fuerza en una app de terminal
    Como extensión del IDE se puede hacer lo mismo y mejor, y en VSCode también se puede restaurar exactamente la disposición de ventanas

    • Cuando uso agentes de CLI, no necesito el IDE para nada
      Se siente como dar instrucciones por chat de texto a un compañero desarrollador
      Por ejemplo, le dejo a Claude un programa de mantenimiento de servidores, me pongo a hacer otra cosa y luego solo reviso el resultado
      Si las pruebas pasan, no me importa cómo quedó el código
      En la práctica, he podido llevar varias tareas en paralelo con solo unos 15 minutos de trabajo activo
  • Yo uso Pi con el paquete pi-coding-agent para Emacs
    Con el modo RPC crea buffers Markdown para entrada/salida, así que se siente mucho más cómodo que otros TUI
    También integré fácilmente el rastreador de issues y redefiní los comandos read y write para que se basen en buffers de Emacs
    También quiero mejorar el comando edit usando consultas de tree-sitter de Emacs
    Además, con el comando emacs_eval también hice posible explorar documentación mediante EWW

    • ¡Buenísimo! Me da curiosidad cómo mapeaste read y write a los buffers de Emacs
      Por cierto, el modo Emacs de Pi se puede instalar aquí
      También estoy agregando una función para abrir directamente ese archivo desde el resultado de las llamadas a read, write y edit
      Pronto también planeo dar soporte a la navegación de sesiones y árbol de Pi, además de la integración con Magit
  • Empecé con Pi y en las últimas dos semanas he estado usando oh-my-pi
    El repositorio de oh-my-pi es una versión con baterías incluidas de Pi

    • Me gustaría saber cómo ha sido tu experiencia usando oh-my-pi
    • También quiero saber si lo estás ejecutando en un entorno sandbox o si tiene alguna función de aislamiento
  • Yo también estoy pensando en clonar un proyecto existente y publicarlo con otro nombre
    Algo como “Waterfox — consumidor web mínimo”

  • Versión preconfigurada de Pi: oh-my-pi

    • Este fork se ve genial, pero agregar herramientas de cualquier repositorio sin control parece riesgoso en términos de seguridad
      Haría falta un entorno aislado donde se pueda instalar y probar de forma segura, como si fuera una app
    • Soy un fan absoluto de este fork
      Fui pasando de codex/claude code → opencode → pi → oh-my-pi
    • ¡Es un gran fork! Yo también quise contribuir, pero la comunidad me pareció algo cerrada
    • Creo que estaría bien separar la herramienta web de oh-my-pi y usarla como un plugin normal de Pi
      Algún día quiero intentar hacerlo yo mismo
    • Pero creo que eso pierde la esencia de Pi
      El atractivo de Pi está en su ligereza y autonomía, mientras que oh-my-pi, con tantas funciones, termina sintiéndose pesado como OpenCode
  • Pi realmente tomó decisiones de diseño excelentes
    Mis respetos a Mario y Armin — el buen gusto siempre termina notándose

    • Pero no entiendo por qué alguien implementaría algo así en JavaScript