- 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
- É 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
Gostei muito do pi
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
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
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
Não dá para imaginar grandes empresas ou governos permitindo sistemas tão inconsistentes
Pelo contrário, acho que vão surgir ferramentas piores
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
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
É 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
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
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
A extensibilidade do Pi é interessante, mas a qualidade real do trabalho ficou aquém
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
É 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
readewritepara usarem buffers do EmacsTambém quero tentar melhorar o comando
editusando queries tree-sitter do EmacsE com o comando
emacs_eval, passei a permitir navegação em documentação via EWWreadewritepara buffers do EmacsAliá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,writeeeditEm 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
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
É preciso um ambiente isolado onde dê para instalar e testar isso com segurança, como se fosse um app
Passei de codex/claude code → opencode → pi → oh-my-pi
Talvez eu tente isso algum dia
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