12 pontos por GN⁺ 2026-02-25 | 2 comentários | Compartilhar no WhatsApp
  • Pi é um agente de programação minimalista baseado em terminal, com uma estrutura expansível que se adapta ao fluxo de trabalho do usuário
  • É possível montar seu próprio ambiente de desenvolvimento combinando extensões TypeScript, skills, templates de prompt e temas, e compartilhá-lo como pacote npm ou git
  • Suporta mais de 15 provedores de IA e centenas de modelos, com troca de modelo durante a sessão e adição de modelos personalizados
  • As sessões são salvas com histórico em árvore, permitindo voltar a pontos anteriores ou exportar para HTML e GitHub gist
  • Mantém os recursos centrais no mínimo e uma filosofia de design centrada em extensibilidade, para que desenvolvedores implementem apenas o que precisam ou adicionem via pacotes

Visão geral do Pi

  • Pi é um harness de programação em terminal, com uma estrutura que permite personalizar ferramentas sem mudar o fluxo de trabalho do usuário
    • Como componentes extensíveis, oferece suporte a extensões TypeScript, skills, templates de prompt e temas
    • Um pacote pi que reúne esses elementos pode ser instalado e compartilhado via npm ou git
  • A configuração padrão é poderosa, mas não inclui recursos como subagentes ou modo de planejamento
  • Oferece quatro modos (interativo, print/JSON, RPC, SDK), e é possível ver um caso real de integração no clawdbot

Modelos e provedores

  • Suporte a mais de 15 provedores e centenas de modelos, incluindo Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi, MiniMax, OpenRouter, Ollama
  • Autenticação via chave de API ou OAuth
  • Troca de modelo durante a sessão com o comando /model ou Ctrl+L, e alternância entre modelos favoritos com Ctrl+P
  • É possível adicionar modelos personalizados por meio de models.json ou extensões

Gerenciamento de sessões

  • As sessões são armazenadas em estrutura de árvore, permitindo voltar a pontos anteriores com o comando /tree
  • Todos os ramos são salvos em um único arquivo, com suporte a filtragem por tipo de mensagem e marcação com bookmarks
  • Com /export, é possível exportar para HTML; com /share, enviar para GitHub gist e gerar uma URL de compartilhamento

Engenharia de contexto

  • Com um prompt de sistema mínimo e extensibilidade, é possível controlar a janela de contexto com granularidade
    • AGENTS.md: carrega automaticamente instruções do projeto no início
    • SYSTEM.md: substitui ou adiciona o prompt de sistema padrão por projeto
    • Compaction: ao atingir o limite de contexto, resume automaticamente mensagens anteriores; por extensões, é possível implementar resumo por tópico ou com reconhecimento de código
    • Skills: pacotes de funcionalidades carregados quando necessário, mantendo o cache de prompts e oferecendo recursos de forma gradual
    • Prompt templates: prompts reutilizáveis e expansíveis com o comando /name
    • Dynamic context: por extensões, permite inserir mensagens, filtrar histórico, implementar RAG e construir memória de longo prazo

Enfileiramento de mensagens

  • É possível enviar mensagens mesmo enquanto o agente está trabalhando
    • Enter: mensagem de steering enviada após a execução atual da ferramenta
    • Alt+Enter: mensagem de follow-up enviada após a conclusão da tarefa

Estrutura de extensões

  • Pi foi projetado em torno de componentes primitivos (Primitives), e não de funcionalidades prontas, permitindo que o usuário implemente os recursos diretamente
    • As extensões têm formato de módulo TypeScript, com acesso a ferramentas, comandos, atalhos, eventos e à TUI completa
    • Exemplos de extensões: subagentes, modo de planejamento, gate de permissões, proteção de caminhos, execução via SSH, sandboxing, integração com MCP, editor customizado, overlays etc.
    • Existe até uma extensão de overlay de jogo, como no exemplo “Yes, Doom runs.”
  • Quem não quiser implementar tudo diretamente pode adicionar recursos instalando pacotes pi
  • Mais de 50 exemplos de extensões estão disponíveis publicamente no GitHub

Gerenciamento de pacotes

  • Extensões, skills, prompts e temas podem ser empacotados em bundles e instalados via npm ou git
    • Exemplo:
      $ pi install npm:@foo/pi-tools  
      $ pi install git:github.com/badlogic/pi-doom  
      
    • Suporta fixação de versão (@1.2.3 ou @tag), atualização geral com pi update, listagem com pi list e configuração com pi config
    • O comando pi -e permite testar sem instalar
  • É possível descobrir e compartilhar pacotes pela busca no npm por pi-package ou em canais do Discord

Modos de integração

  • Interactive: ambiente TUI completo
  • Print/JSON: pi -p "query" para scripts, --mode json para fluxo de eventos
  • RPC: suporte à integração em ambientes que não usam Node por meio de protocolo JSON baseado em stdin/stdout
  • SDK: pode ser embutido em aplicações, com exemplo real de uso no clawdbot

Filosofia de design

  • Pi foi projetado para maximizar a extensibilidade, minimizando o núcleo e permitindo que o usuário defina diretamente seu fluxo de trabalho
    • MCP, subagentes, pop-ups de permissão, modo de planejamento, TODO embutido e bash em segundo plano não estão incluídos
    • Em vez disso, as mesmas funções podem ser implementadas via extensões, skills e pacotes, ou integradas com ferramentas externas
    • Há suporte a execução paralela e observação por meio do tmux
  • Essa abordagem permite uma composição de ambiente de desenvolvimento orientada pelo usuário
  • A filosofia completa é explicada em mais detalhes em um post de blog relacionado

2 comentários

 
qodot 2026-02-26

Gostei muito do pi

 
GN⁺ 2026-02-25
Comentários do Hacker News
  • O que acho interessante no Pi e no fenômeno do "claw" é que isso mostra o futuro do open source
    Agora, em vez de enviar pedidos de funcionalidade ou PRs, estamos entrando numa era em que se baixa um arquivo de skill que ensina o agente de código a adicionar a funcionalidade
    O software deixa de ser um produto fixo e passa a ser uma ferramenta viva diferente para cada usuário
    Fico curioso para ver que tipo de tooling vai surgir nesse novo paradigma de colaboração

    • Também estou vendo esse mesmo movimento
      O software atual faz o usuário se sentir alienado porque não permite controlar o ambiente
      Mas software personalizado, barato e flexível pode dar uma verdadeira sensação de propriedade
      Se antes o desktop Linux dava essa liberdade, agora parece que todo mundo poderá aproveitar esse benefício
      Estou otimista com esse futuro
    • Também tenho pensado muito nisso ultimamente
      Acho que no futuro haverá mais software extremamente personalizado — num nível que só uma pessoa específica ou um pequeno grupo consegue entender
      Recentemente usei Claude para criar várias ferramentas que só eu e algumas outras pessoas usamos
      Por exemplo, um app para agendar DnD, um verificador de notícias de Formula E sem spoilers e um site de votação para uma cooperativa de escalada
      Antes não havia motivo para criar esse tipo de coisa, mas agora isso se tornou possível
      Escrevi sobre isso em Releasing Software Now
    • Concordo com a ideia de uma "ferramenta viva diferente da cópia de outra pessoa", mas acho que esse modelo terá dificuldade de adoção institucional
      Não dá para imaginar grandes empresas ou governos permitindo sistemas tão inconsistentes
    • Não entendo por que esse paradigma geraria tooling interessante
      Pelo contrário, acho que vão surgir ferramentas piores
    • Só de imaginar como a resolução de problemas vai ficar complexa quando cada pessoa estiver usando uma versão diferente do software já dá arrepios
  • Estou acostumado com o OpenCode, então estou pensando em usá-lo como workspace pessoal de IA
    O ecossistema do Pi é menor, mas ele parece ter mais flexibilidade e extensibilidade, e dá para sentir o entusiasmo da comunidade
    Queria saber se vale mais a pena usar o Pi em vez do OpenCode e quais opções de UI existem

    • Estou com a mesma dúvida
      Usei o OpenCode com arquivos .md para escrita e organização, e funcionou bem
      Agora estou procurando um novo harness mais adequado para esse tipo de trabalho
    • Você entendeu a proposta corretamente
  • É o meu harness favorito no momento
    O fato de poder estendê-lo diretamente o torna muito eficiente, e eu o integrei ao projeto vibes
    É bem mais rápido que o ACP

    • Fiquei curioso sobre por que existe essa diferença de velocidade entre a integração direta e o ACP
      Eu estava procurando um protocolo genérico para interação entre agentes, e o ACP parecia ser esse candidato
      Mas, vendo que nem o OpenCode usa ACP na UI, parece que há algum problema ali
      Também queria saber se existe alguma alternativa melhor
    • Quais harnesses você comparou?
    • Gostei muito disso! Parece que alguém já implementou exatamente o que eu estava tentando criar
    • O que significa “harness”? Não é só um agente de código?
  • Nunca vi alguém que usou o Pi por alguns dias e depois deixou de usá-lo no dia a dia
    Depois de provar a liberdade de ajustar a ferramenta ao próprio gosto, é difícil voltar atrás
    E ainda dá para criar extensões incríveis em cima dele

    • Pelo que ouvi, o Pi é como o Neovim ou Emacs dos agentes de código
    • Legal, mas para mim Claude CLI e OpenCode foram muito mais produtivos que o Pi
      A extensibilidade do Pi é interessante, mas a qualidade real do trabalho ficou aquém
    • Queria saber quais funcionalidades feitas por você você mais gosta e que não existem no Claude Code
  • Não entendo por que alguém faria questão de programar com um app de terminal
    Uma extensão de IDE poderia fazer exatamente a mesma coisa, e até melhor, e o VSCode também consegue restaurar o layout das janelas

    • Quando uso um agente de CLI, não preciso de IDE nenhuma
      É como dar instruções a um colega desenvolvedor por chat de texto
      Por exemplo, deixo o Claude cuidar de um programa de manutenção de servidores, vou fazer outra coisa e depois só confiro o resultado
      Se os testes passarem, não importa muito como o código ficou
      Na prática, consegui tocar várias coisas em paralelo com só uns 15 minutos de trabalho ativo
  • Eu uso o Pi no Emacs com o pacote pi-coding-agent
    No modo RPC, ele cria buffers Markdown para entrada e saída, o que é muito mais confortável que outros TUIs
    Também integrei facilmente com o issue tracker e redefini os comandos read e write para usarem buffers do Emacs
    Também quero tentar melhorar o comando edit usando queries tree-sitter do Emacs
    E com o comando emacs_eval, passei a permitir navegação em documentação via EWW

    • Muito bom! Fiquei curioso sobre como você mapeou read e write para buffers do Emacs
      Aliás, o modo Emacs do Pi pode ser instalado aqui
      Também estou adicionando uma função para abrir o arquivo correspondente diretamente a partir do resultado das chamadas read, write e edit
      Em breve o Pi também deve oferecer navegação de sessão e árvore com integração ao Magit
  • Comecei com o Pi e nas últimas duas semanas tenho usado o oh-my-pi
    O repositório do oh-my-pi é uma versão com tudo incluído do Pi

    • Queria saber como foi sua experiência usando o oh-my-pi
    • Também queria saber se você roda isso em ambiente sandbox ou se há algum recurso de isolamento
  • Também estou pensando em clonar um projeto existente e lançar com outro nome
    Algo como "Waterfox — o consumidor web minimalista"

  • Versão pré-configurada do Pi: oh-my-pi

    • Esse fork parece legal, mas sair adicionando ferramentas de qualquer repositório parece arriscado em termos de segurança
      É preciso um ambiente isolado onde dê para instalar e testar isso com segurança, como se fosse um app
    • Sou super fã desse fork
      Passei de codex/claude code → opencode → pi → oh-my-pi
    • Excelente fork! Também tentei contribuir, mas a comunidade me pareceu um pouco fechada
    • Seria legal separar a ferramenta web do oh-my-pi como um plugin comum do Pi
      Talvez eu tente isso algum dia
    • Mas acho que isso perde a essência do Pi
      O charme do Pi está na leveza e autonomia, enquanto o oh-my-pi tem tantas funcionalidades que acaba trazendo um peso parecido com o do OpenCode
  • O Pi fez escolhas de design realmente excelentes
    Meus parabéns ao Mario e ao Armin — bom gosto sempre aparece no fim

    • Mas eu realmente não entendo por que alguém implementaria isso em JavaScript