Pi: o agente de código que não esconde nada
Pi é um agente de código open source, com a sua própria API key, quatro ferramentas e um system prompt de 150 palavras. Sem MCP, sem planner oculto, sem subagents invisíveis. Só um loop que você enxerga por inteiro.
Todo agente de código popular acrescentou mais coisa em 2025. O pi foi na direção contrária, e esse é o ponto.
A indústria entregou planners ocultos, subagents em paralelo, integrações MCP e milhares de tokens de andaime no system prompt. Os agentes ficaram mais capazes no papel e mais difíceis de entender na prática. O pi coding agent é a aposta oposta: quatro ferramentas, um system prompt de 150 palavras, nenhuma camada oculta e transparência total por padrão.
Não é um brinquedo minimalista. O pi, criado por Mario Zechner sob a earendil-works, se sai bem no Terminal-Bench 2.0 e roda com qualquer modelo de fronteira: Anthropic, OpenAI, Gemini ou local. Ele faz parte da minha stack diária. Coloquei 13 apps em produção numa fintech cripto, sozinho, com agentes de IA, em 70 dias. O pi fazia parte daquele harness.
Se você leu harness engineering, já conhece a ideia: Agente = Modelo + Harness. O pi é a demonstração mais clara que existe de que o harness pode ser menor do que você imagina e ainda aguentar uma carga de trabalho séria.
A aposta nas quatro ferramentas é o argumento inteiro
A maioria dos agentes de código entrega ao modelo um kit enorme de ferramentas. Comandos de shell, automação de navegador, busca em arquivos, utilitários de diff, stores de memória, dezenas de serviços conectados via MCP. A premissa é que mais ferramentas significam mais capacidade.
O pi vem com quatro:
- read. Lê um arquivo.
- write. Escreve um arquivo.
- edit. Aplica uma edição pontual num arquivo existente.
- bash. Roda um comando de shell.
Grep, find e ls estão disponíveis, mas desligados por padrão. A lista é essa. O argumento é que quatro ferramentas bem descritas geram chamadas de ferramenta mais confiáveis do que quarenta mal descritas, porque o modelo não precisa atravessar ruído para decidir qual usar. Um modelo que sempre escolhe certo entre quatro ganha de um modelo que às vezes escolhe errado entre quarenta.
Tem um ponto mais forte por baixo disso. Quatro ferramentas cobrem quase toda tarefa real de código: ler o repositório, escrever código, editar código existente, rodar testes e builds. Se você quer uma quinta ferramenta, já tem: bash. A superfície é pequena não porque faltaram ideias no design, mas porque o problema de fato não pede mais.
Um system prompt de 150 palavras é uma decisão de orçamento
Cada palavra do system prompt é um custo fixo que você paga em todo turno de toda sessão, para sempre. Um system prompt longo não expira. Ele fica na context window ao lado do seu código, do seu histórico e da sua pergunta, disputando atenção.
O system prompt do pi tem cerca de 150 palavras. A lógica por trás é direta: um modelo de fronteira já sabe ser um agente de código. Sabe o que é code review. Sabe para que servem testes. Sabe que deve perguntar antes de apagar coisas. Você não precisa ensinar. Precisa sair da frente.
A economia do system prompt
- ~150
- palavraso system prompt inteiro do pi
- 13k a 18k
- tokensum MCP server popular antes de você digitar
- 4
- ferramentasread, write, edit, bash
- 0
- camadas ocultassem planner, sem agentes invisíveis
Compare com agentes que carregam o prompt logo de cara com descrições de ferramentas, instruções de persona, camadas de segurança e lógica de orquestração. Um MCP server popular, sozinho, adiciona de 13.000 a 18.000 tokens antes da sua primeira mensagem. Esses tokens não desaparecem. Ficam em todo turno, espremendo o espaço que sobra para o trabalho de verdade. Se você quer a versão longa sobre para onde vão os tokens, o detalhamento do custo em tokens cobre tudo.
Um system prompt de 150 palavras não significa um agente sem restrições. Significa que as restrições estão no lugar certo: no pré-treino do modelo, não num prompt que você precisa manter.
O que o pi se recusa a entregar, e por que cada recusa está certa
Sem MCP por padrão. O Model Context Protocol permite que agentes se conectem a serviços externos. A ideia é razoável. O custo, não. Um MCP server típico registra de 13.000 a 18.000 tokens de descrições de ferramentas na context window em toda sessão, antes de o modelo ler uma linha do seu código. O pi deixa o MCP de fora por padrão. Se você quer uma integração específica, liga ela deliberadamente e o custo fica explícito. Veja MCP vs CLI para os tradeoffs completos.
Sem modo de planejamento oculto. Alguns agentes rodam uma etapa interna de planejamento antes de mostrar a resposta. Você vê a saída; não vê o raciocínio. No pi, o planejamento mora no PLAN.md e no AGENTS.md, em disco, onde você colocou. O agente lê esses arquivos como qualquer outro. Se você quer entender o que o agente sabe sobre o projeto, abre o arquivo AGENTS.md. Não existe abstração entre você e o plano.
Sem subagents invisíveis. Subagents em paralelo melhoram de verdade o desempenho em algumas cargas de trabalho. Também são um pesadelo para depurar quando algo dá errado e você não sabe qual agente fez o quê. A resposta do pi: chamar o pi a partir de um comando bash. O subagent é uma chamada de bash. Você vê a invocação, vê a saída, pode ler o arquivo da sessão depois. A orquestração é visível porque foi você quem escreveu.
Um loop, qualquer modelo
O pi não te amarra a um provedor. Funciona com Anthropic, OpenAI, Gemini e endpoints de modelos locais. Você fornece a API key. Escolhe o modelo no início da sessão ou troca com /model no meio dela. O loop do agente é idêntico, seja lá o que estiver do outro lado.
Isso importa mais pelo custo do que por fidelidade a fornecedor. Quando a tarefa pede raciocínio forte, rode o melhor modelo disponível. Quando a tarefa é mecânica (renomear, reformatar, boilerplate), rode um menor e mais barato. O loop não muda. A conta muda.
Agente gerenciado (provedor fixo)
- 01Modelo amarrado à stack do fornecedor
- 02Preço definido pela plataforma
- 03Trocar de modelo significa migrar o workflow
- 04Sem otimização de custo por tarefa
Pi (com a sua API key)
- 01Anthropic, OpenAI, Gemini ou local
- 02Você paga direto o preço da API
- 03Troca com /model, sem migração
- 04Modelo sob medida para a tarefa
Dê a cada fase o seu próprio modelo e esforço
Tem uma coisa que o OpenCode acertou e que o pi deixa com você: modos. No OpenCode você muda para um modo explore ou um modo build, e cada um carrega o seu próprio modelo, o seu próprio orçamento de raciocínio e as suas próprias permissões. O explore roda um modelo barato e abrangente. O build roda um modelo preciso de código. O review roda um cuidadoso. O pi não tem nada disso embutido. Tem um loop e um comando /model que você opera na mão.
Então escrevi a peça que faltava como um pacote, o pi-skill-model-handoff, e expliquei como ele funciona num texto à parte. Ele lê dois campos de uma skill e os aplica no momento em que a skill carrega: o modelo e o nível de thinking. Carregue a sua skill de explore e o pi desce para um modelo barato e abrangente. Carregue a skill de build e ele troca para um modelo preciso de código, com raciocínio baixo. O modo acompanha o trabalho, e você para de mexer no /model.
Instale com uma linha e aponte as suas skills para os modelos que quiser:
pi install npm:@felipefontoura/pi-skill-model-handoff
---
name: review
description: Review code changes.
model: openai/gpt-5.5
thinking: high
---
Essa é a interface inteira. Dois campos opcionais no frontmatter da skill, model e thinking (off, minimal, low, medium, high, xhigh). Quando a skill carrega, o pi imprime handoff active: review e a troca está feita.
Um exemplo de mapa de handoff
| Skill / fase | Modelo | Esforço |
|---|---|---|
| explore | opencode-go/glm-5.1 | high |
| plan | anthropic/claude-sonnet-4-5 | high |
| build | anthropic/claude-sonnet-4-5 | minimal |
| review | openai/gpt-5.5 | high |
| fix | openai/gpt-5.5 | medium |
Seja honesto sobre o que ele não faz. Ele é passivo. Quem decide qual skill carrega continua sendo o pi, e o pacote não lê o seu prompt para escolher uma fase por você. Ele aplica o modelo e o esforço depois que a skill foi escolhida. Isso é recurso, não lacuna. Roteamento que tenta adivinhar a sua intenção é exatamente a mágica oculta que o pi existe para evitar. Você escolhe a fase, o harness cuida do handoff.
Esse é o retorno de um harness pequeno e transparente, num único exemplo. Os modos do OpenCode são um recurso que você espera um fornecedor lançar e moldar. Aqui, a mesma capacidade é um pacote que dá para ler de uma sentada, instalar com uma linha e adaptar às suas próprias fases. O harness mínimo não perdeu para o cheio de recursos. Ele me deixou adicionar o único controle que eu queria e pular os vinte que eu não queria.
Um histórico que não some
O pi salva cada sessão como um arquivo JSONL. Abra em qualquer editor de texto e você tem o registro completo: cada chamada de ferramenta, cada resposta do modelo, cada ramificação. A auto-compactação roda quando a context window chega perto do limite. Dispare manualmente com /compact se quiser reduzir o consumo de tokens no meio da sessão.
Os comandos de sessão: /resume continua uma sessão anterior, /fork ramifica a partir de um ponto específico do histórico, /tree mostra a estrutura de ramificações. O loop em si não tem limite arbitrário de passos. Ele roda até o modelo parar de chamar ferramentas. Em tarefas longas, isso significa que você não precisa reiniciar porque o agente bateu num limite que você não definiu.
Pi vs Claude Code
Os dois são harnesses de agente, e os dois estão na minha stack. Fazem apostas opostas. O Claude Code é o harness da Anthropic, construído em volta do Claude e coberto por um plano Claude. O pi é um harness que você lê numa tarde, com qualquer modelo por trás. Se a palavra harness está carregando peso demais nessa frase, comece por ali.
Pi vs Claude Code, outubro de 2026
| Dimensão | Pi | Claude Code |
|---|---|---|
| Ferramentas embutidas | Quatro: read, write, edit, bash | Muitas, mais MCP servers |
| System prompt | Cerca de 150 palavras | Longo, mantido pela Anthropic |
| Para estender | Extensões e pacotes que você lê | Skills, hooks, subagents, plugins |
| Planejamento | Um PLAN.md em disco, sem modo oculto | Plan mode embutido |
| Sessões | Arquivos JSONL, /fork e /tree | Resume e compactação automática |
| Modelos | Qualquer provedor, sua key | Claude, ou um endpoint compatível com Anthropic |
| Como você paga | API key, ou um plano ChatGPT Plus ou Pro desde 29 de setembro de 2026 | Claude Pro ou Max cobre |
A divisão honesta: o Claude Code te dá mais pronto de fábrica e os tokens de fronteira mais baratos se você programa o dia inteiro, por isso ele voltou a ser o meu agente do dia a dia. O pi te dá um loop que você enxerga, pode fazer fork e mudar na fonte, e é onde eu construo ideias de harness antes de confiar nelas em qualquer outro lugar. O lado financeiro dessa escolha está em se vale a pena o Claude Max.
Quem deveria usar o pi
O pi serve se
- Obrigatório:Você trabalha no terminal.O pi não tem GUI. Se o seu workflow é teclado e shell, isso não te custa nada. Se não é, é atrito de verdade.
- Obrigatório:Você quer ver o que o agente está fazendo.Transparência é o valor central do pi. Se você quer automação e guardrails e não faz questão de inspecionar o loop, um agente gerenciado com ferramentas mais ricas é uma escolha razoável.
- Obrigatório:Você controla o próprio gasto com tokens.Usar a própria API key significa pagar direto o preço da API e poder otimizar por tarefa. Num plano de assinatura fixa, em que o custo não é uma variável que você controla, essa vantagem desaparece.
- Opcional:Você quer trocar de modelo conforme a tarefa.Usar um único provedor o tempo todo está ótimo. O comando /model é útil se você faz trabalho com vários modelos ou quer comparar saídas na mesma tarefa.
- Anti-pattern:Você precisa de ferramentas corporativas gerenciadas.O pi é uma CLI open source. Não é um SaaS gerenciado com logs de auditoria, controle de acesso por papéis ou SLAs de fornecedor. Ferramenta errada para esse contexto.
- Anti-pattern:Você quer uma IDE com painel de gestão de projeto.Cursor, Windsurf, Kiro. Todos são respostas melhores se você quer a experiência de GUI. O pi é um loop no seu terminal e nada mais.
Os 13 apps que coloquei em produção em 70 dias usaram o pi como parte do harness. Isso é um dado real, de uma pessoa, com um workflow centrado no terminal e motivos específicos para manter o loop visível. A sua situação pode ser diferente.
Transparência é o que você está comprando de fato
As quatro ferramentas e o system prompt de 150 palavras não são o produto. São consequências de uma decisão: fazer do agente algo que um programador consiga entender por completo.
Quando o pi faz algo errado, você tem quatro lugares para olhar. Uma leitura de arquivo ruim. Uma escrita no caminho errado. Um comando bash que devolveu ruído. Uma resposta do modelo que entendeu mal a instrução. A superfície de depuração é exatamente a superfície de ferramentas.
Parece óbvio. A maioria dos agentes torna isso quase impossível. A camada de MCP tem 18.000 tokens de descrições de ferramentas que você não escreveu. O planner oculto rodou três passos antes de você ver a primeira saída. O pool de subagents despachou trabalho que você não observou. Quando algo quebra, a falha fica dentro de uma caixa que você não consegue abrir.
O pi abre a caixa. Se quiser rodar, ele está no GitHub, sob a earendil-works. Instale, acompanhe as chamadas de ferramenta, leia os arquivos de sessão. O que você vê é o que roda.
Perguntas frequentes
Como instalo o pi coding agent?
O pi é distribuído como pacote npm. Instale globalmente com npm i -g @mariozechner/pi e rode pi para iniciar uma sessão. Você vai precisar de uma API key do provedor que usar: Anthropic, OpenAI, Gemini ou um endpoint de modelo local.
O pi coding agent suporta MCP?
Não por padrão. O pi exclui o MCP de propósito porque um MCP server típico adiciona de 13.000 a 18.000 tokens de descrições de ferramentas a toda sessão antes de você digitar um único caractere. Se você quer uma integração MCP específica, pode ligá-la manualmente. O custo fica explícito, não escondido.
Dá para usar o pi com o Claude Sonnet ou o Opus, da Anthropic?
Sim. O pi é agnóstico de provedor. Funciona com Anthropic (incluindo Sonnet e Opus), OpenAI, Gemini e endpoints de modelos locais. Você fornece a sua própria API key. Troque o modelo ativo durante a sessão com o comando /model.
Como o pi lida com sessões longas que chegam perto do limite de contexto?
O pi compacta automaticamente quando a context window chega perto do limite, mantendo a sessão viva sem forçar um reinício. Você também pode disparar a compactação manualmente com /compact a qualquer momento.
O histórico completo da sessão fica salvo em arquivos JSONL. Use /resume para continuar uma sessão anterior, /fork para ramificar a partir de um ponto específico do histórico e /tree para ver a estrutura completa de ramificações. Nada se perde.
O pi coding agent está pronto para produção?
O pi se sai bem no Terminal-Bench 2.0, que é uma medida objetiva. A resposta mais útil: usei o pi como parte do harness que colocou 13 apps em produção numa fintech cripto em 70 dias, sozinho. É uma carga de trabalho real, sustentada ao longo do tempo, não uma rodada de benchmark. Se ele serve para o seu workflow de produção depende da sua tolerância a uma ferramenta só de terminal, sem GUI. A capacidade está lá.
Qual a diferença entre o pi e o Claude Code?
O pi é mínimo e open source: quatro ferramentas, um system prompt curto, sem MCP por padrão e transparência total da sessão via JSONL. O Claude Code é um produto de agente gerenciado da Anthropic, com ferramentas embutidas mais ricas, suporte nativo a MCP, um sistema de permissões e hooks, e desenvolvimento contínuo de features pelo time da Anthropic. Se você quer a superfície completa de recursos e já está no ecossistema da Anthropic, o Claude Code é a escolha natural. Se você quer um loop que dá para inspecionar, fazer fork e modificar no código-fonte, o pi é a melhor opção.
A cobrança também é diferente. Um plano Claude Pro ou Max cobre o Claude Code, mas não o pi. O pi roda com uma API key de qualquer provedor ou, desde 29 de setembro de 2026, com um plano ChatGPT Plus ou Pro.
A newsletter
Don’t Code, Specify. Toda semana, agentes de IA em produção de verdade. Sem hype: o que funcionou e o que quebrou.
Assinar no Substack (abre em nova aba)