Pi vs OpenCode - Qual Agente de IA para Programação Você Deve Usar?

KKTG Analysis
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00Existem agora dois sérios agentes de codificação de IA de código aberto lutando pelo terminal
00:00:04e escolher o errado pode significar reconstruir todo o seu fluxo de trabalho mais tarde.
00:00:10Um deles vem com tudo o que você poderia desejar pronto para o uso, o outro
00:00:14vem com quase nada e argumenta que esse é exatamente o ponto; hoje, vamos
00:00:19colocar o Open Code e o Pi frente a frente.
00:00:21Assim, ao final deste vídeo, você saberá exatamente qual deles pertence ao seu terminal.
00:00:27Vamos começar com o que essas ferramentas realmente são.
00:00:30Porque elas resolvem o mesmo problema central de formas fundamentalmente diferentes; ambos
00:00:34Open Code e Pi são agentes de codificação de IA baseados em terminal, você os executa em seu
00:00:40terminal, eles se conectam a grandes modelos de linguagem como Claude ou GPT, e podem
00:00:45ler seu código, editar arquivos, executar comandos shell e ter conversas extensas
00:00:50sobre sua base de código; pense neles como alternativas de código aberto ao Claude Code.
00:00:55Ambos são escritos em TypeScript, ambos têm licença MIT e ambos suportam mais de 20
00:01:01provedores de LLM, mas as semelhanças param por aí; o Open Code foi construído
00:01:06pelos criadores do terminal.shop e uma comunidade de entusiastas do NeoVim.
00:01:11Ele adota o que eu chamaria de uma abordagem “com baterias inclusas” nativamente.
00:01:15Você recebe um sistema multi-agente com agentes especializados para diferentes tarefas,
00:01:20um sistema de permissões integrado com diálogos de aprovação, integração com
00:01:24Language Server Protocol para inteligência de código, suporte total ao Model Context Protocol
00:01:29para conexão com ferramentas externas, banco de dados SQLite para persistência de sessão e
00:01:34até um aplicativo de desktop baseado em Tauri junto à interface de terminal; a filosofia
00:01:40do Open Code é que um agente de codificação deve funcionar bem imediatamente com padrões
00:01:45sensatos e integrações profundas. O Pi, criado por Mario Zechner, adota a abordagem
00:01:51Sua filosofia está clara no README: o pI é
00:01:56agressivamente extensível, para não precisar ditar seu fluxo de trabalho; o Pi
00:02:00deliberadamente vem sem subagentes, sem suporte a MCP, sem um sistema de
00:02:05permissões, sem modo de planejamento e sem rastreamento de tarefas integrado. Em vez disso,
00:02:11ele fornece uma API de extensão poderosa e diz: construa exatamente o que você precisa ou
00:02:17instale um pacote da comunidade que faça do seu jeito. O núcleo permanece minimalista.
00:02:22Tudo o mais é opcional. Então, esses dois projetos representam uma divisão filosófica genuína
00:02:27em como as ferramentas de desenvolvedor devem ser projetadas. Vamos nos aprofundar nos detalhes
00:02:32técnicos de cada um, e depois os compararemos diretamente. Começando pela
00:02:36arquitetura do Open Code. O Open Code é um monorepo com cerca de 21 pacotes. O
00:02:42mecanismo principal vive em um único pacote, mas existem pacotes separados para o
00:02:46console web, o app desktop, o SDK TypeScript, o sistema de plugins,
00:02:52componentes de UI compartilhados e documentação. Por baixo do capô, ele roda no Bun, que é
00:02:57significativamente mais rápido que o Node para inicialização e execução. Para sua
00:03:02camada de abstração de LLM, o Open Code usa o versátil AI SDK versão 5. Esta é uma
00:03:08biblioteca bem mantida e amplamente adotada que fornece uma interface unificada entre
00:03:13dezenas de provedores. O benefício prático é que o Open Code herda
00:03:18suporte a provedores quase de graça, conforme o SDK da Vercel adiciona novas integrações. Um dos
00:03:24recursos de destaque do Open Code é seu sistema multi-agente. Ele vem com vários
00:03:30agentes especializados. O agente de build é o padrão, um agente de desenvolvimento de acesso total
00:03:35que pode ler, escrever e executar qualquer coisa. O agente de plano é apenas para leitura,
00:03:40projetado para explorar e analisar código sem fazer alterações. Ele só pode
00:03:45escrever em um diretório de planos específico. O agente Explorer é um especialista
00:03:50rápido e leve para navegação na base de código, restrito a operações de busca e leitura.
00:03:55E há um agente geral para tarefas complexas de várias etapas que atua como um
00:04:00subagente. Os usuários alternam entre esses agentes com a tecla Tab, e cada agente tem seu
00:04:05próprio conjunto de regras de permissão. Você também pode definir agentes personalizados no seu
00:04:09arquivo de configuração, especificando qual modelo eles usam, quais permissões eles
00:04:14têm e o que diz o seu prompt de sistema. Para persistência de dados, o Open Code usa
00:04:19SQLite com o ORM Drizzle; sessões, mensagens, permissões e credenciais de
00:04:25MCP, tudo vive em um único arquivo de banco de dados. Esta é uma escolha
00:04:30arquitetônica significativa. O SQLite oferece integridade transacional, consulta eficiente
00:04:35entre sessões e um arquivo único fácil de fazer backup. O Open Code o
00:04:41executa no modo WAL para melhor desempenho de leitura simultânea. O sistema de permissões
00:04:46do Open Code é em camadas e granular. Cada invocação de ferramenta passa por verificações de
00:04:52permissão. Você pode definir regras por ferramenta e por padrão de arquivo. Por exemplo, você pode
00:04:57permitir todas as leituras de arquivos, mas exigir aprovação para editar arquivos .env e negar
00:05:03totalmente comandos shell que toquem em diretórios de produção. As permissões cascateiam através
00:05:08de múltiplos níveis de configuração, desde a configuração global do usuário até sobreposições
00:05:13específicas do projeto. Quando o agente precisa de aprovação, ele mostra um diálogo interativo bem no
00:05:18terminal, e você pode escolher permitir uma vez ou sempre permitir aquela ação. A
00:05:24integração com MCP é completa. O Open Code pode se conectar a servidores MCP locais e remotos.
00:05:30Suporta transportes STDIO e HTTP, lida com autenticação OAuth para servidores remotos
00:05:37e registra automaticamente ferramentas de servidores MCP conectados. Se você
00:05:42já estiver usando servidores MCP com outras ferramentas, o Open Code funcionará com
00:05:47eles imediatamente. Outro recurso notável é o suporte integrado a LSP.
00:05:53O Open Code pode iniciar servidores de Language Server Protocol para TypeScript, Python,
00:05:58Go, Rust e outras linguagens. Isso dá ao modelo de IA acesso à inteligência de
00:06:04código real, como informações de hover, ir para a definição e referências de símbolos, em vez de
00:06:10depender puramente de correspondência de padrões de texto. É uma vantagem sutil, mas significativa
00:06:15para a precisão da compreensão do código. O Open Code também possui um sistema de habilidades que é
00:06:20compatível com o formato de habilidades do Claude Code. Habilidades são arquivos Markdown com
00:06:25frontmatter que define comportamentos especializados, e há um sistema de plugins
00:06:30baseado em pacotes NPM que pode se conectar a quase todas as partes do ciclo de vida, desde o
00:06:35carregamento da configuração até a transformação de mensagens e execução de ferramentas. Agora
00:06:40vamos olhar para a arquitetura do Pi. O Pi também é um monorepo, mas com uma estrutura
00:06:45diferente. Os pacotes principais são o próprio agente de codificação, Pi-I para a camada de
00:06:51abstração de LLM, Pi-agent-core para o runtime do agente com estado e Pi-2e para o
00:06:57agente de renderização de terminal. Há também o PiMom, um companheiro Slackbot, e o PiPods
00:07:02para implantação em GPU. A decisão técnica mais significativa no Pi é que ele construiu
00:07:08sua própria camada de abstração de LLM do zero em vez de usar o AI SDK da
00:07:12Vercel. O Pi-I é uma API de LLM unificada de vários provedores que suporta mais de
00:07:2030 provedores, incluindo alguns que o AI SDK da Vercel não cobre, como
00:07:24Minimax e Kimi. Construir sua própria camada dá à equipe do Pi controle total sobre o
00:07:30comportamento de streaming, análise de chamadas de ferramentas e otimizações específicas do provedor. O
00:07:35ônus é a carga de manutenção, mas também significa que o Pi pode implementar recursos
00:07:40como a análise parcial de JSON durante o streaming de argumentos de ferramenta exatamente como
00:07:44eles querem. O gerenciamento de sessões do Pi usa um formato JSONL, que é um arquivo simples onde
00:07:50cada linha é um objeto JSON. Cada entrada possui um ID e um ID pai, o que permite uma estrutura
00:07:56em árvore dentro de um único arquivo. Isso é inteligente. Significa que você pode criar ramificações
00:08:00nas conversas, navegar na árvore completa do histórico e pular entre ramos, tudo dentro
00:08:06de um arquivo fácil de inspecionar com ferramentas Unix padrão. O comando tree permite
00:08:12visualizar todo o seu histórico de conversas e navegar para qualquer ponto. O
00:08:17comando fork cria um novo ramo a partir de qualquer mensagem. É genuinamente uma das
00:08:23melhores interfaces de gerenciamento de conversa que já vi em um agente de codificação. O
00:08:28sistema de extensão do Pi é onde a filosofia realmente ganha vida. As extensões são
00:08:33arquivos TypeScript carregados diretamente pelo JITI, portanto não há etapa de compilação. Uma
00:08:38extensão pode registrar ferramentas personalizadas, comandos e atalhos de teclado. Ela pode
00:08:44se inscrever em eventos de ciclo de vida como início da sessão, início do agente, chamadas de ferramentas e
00:08:49seleção de modelo. Pode interagir com o usuário por meio de diálogos de confirmação, menus de
00:08:55seleção e prompts de entrada de texto. Pode até renderizar componentes TUI personalizados. A
00:09:01API de extensão dá acesso ao gerenciador de sessões, registro de modelos, armazenamento de
00:09:06autenticação e barramento de eventos. Em outras palavras, as extensões podem fazer essencialmente tudo
00:09:11o que o núcleo pode fazer. É aqui que as omissões opinativas do Pi começam a fazer
00:09:16sentido. Nenhum sistema de permissões integrado? Escreva uma extensão que mostre um diálogo
00:09:20de confirmação antes de comandos perigosos. Sem subagentes? Gere instâncias do Pi via TMUX ou
00:09:27escreva uma extensão que coordene múltiplos loops de agentes. Sem MCP? Construa uma
00:09:33habilidade com uma ferramenta CLI e um README ou escreva uma extensão que adicione suporte a MCP.
00:09:40Sem modo de plano? Escreva planos em arquivos Markdown ou construa uma extensão que gerencie
00:09:45planos como preferir. A renderização de terminal do Pi também é construída sob medida. O pacote
00:09:51pi2e implementa renderização diferencial com três estratégias para minimizar atualizações de tela
00:09:56e usa o protocolo CSI 2026 para atualizações atômicas que eliminam o flicker.
00:10:02Ele tem seu próprio sistema de componentes com contêineres, editores, renderização de texto,
00:10:07exibição de Markdown, suporte a imagens e listas de seleção. A TUI do agente de codificação é construída
00:10:13inteiramente sobre este framework. Para o manuseio de ferramentas, o Pi vem com sete ferramentas
00:10:18integradas: READ, bash, edit, write, grep, find e ls. É um conjunto deliberadamente minimalista.
00:10:25A ferramenta bash suporta sandboxing opcional via Docker e saída de streaming em
00:10:30tempo real. A ferramenta de edição usa o formato diff unificado. Todas as ferramentas validam seus
00:10:36argumentos com AJV antes da execução e suportam execução paralela por padrão,
00:10:42o que significa que várias chamadas de ferramentas do LLM rodam simultaneamente em vez de uma por
00:10:48vez. Agora vamos comparar os dois diretamente nas dimensões que mais importam.
00:10:53Suporte a provedores. Ambos suportam mais de 20 provedores e funcionam com qualquer API
00:10:59compatível com OpenAI. O Open Code usa o AI SDK da Vercel, o que significa que herda suporte
00:11:06a novos provedores conforme esse ecossistema cresce. O Pi construiu sua própria biblioteca Pi-I, o que
00:11:12lhe dá mais controle, mas requer integração manual de novos provedores. Na prática,
00:11:18ambos cobrem todos os principais provedores que você provavelmente usará. O modelo de agente
00:11:22do Open Code vem com vários agentes especializados e permite alternar entre eles
00:11:27com um único toque de tecla. O Pi vem com um agente e diz que se você quiser subagentes,
00:11:33construa-os com extensões ou gere instâncias separadas. Se você quer
00:11:37modos especializados prontos para o uso, o Open Code vence aqui. Se você prefere construir
00:11:42sua própria topologia de agentes, o Pi lhe dá as ferramentas para isso. O Open Code usa SQLite.
00:11:47O Pi usa arquivos JSONL. O SQLite oferece integridade transacional e consultas
00:11:53eficientes. O JSONL fornece arquivos legíveis por humanos que você pode inspecionar com CAT ou GREP,
00:11:58e a estrutura em árvore do Pi dentro de um único arquivo é elegante. Ambos suportam
00:12:04ramificação e fork de sessão; a interface de navegação em árvore do Pi é particularmente
00:12:08bem projetada para explorar o histórico de conversas. O Open Code possui um sistema
00:12:13integrado abrangente com diálogos de aprovação, regras por arquivo e memória de permissão
00:12:19persistente. O Pi não possui sistema de permissões em seu núcleo e espera que extensões lidem
00:12:25com isso. Se você quer salvaguardas imediatas, o Open Code é a escolha mais segura. Se você roda
00:12:30em contêineres ou quer controle total sobre seu modelo de segurança, a abordagem do Pi lhe dá
00:12:35mais flexibilidade. Suporte a MCP. O Open Code tem suporte total a MCP com OAuth,
00:12:41múltiplos transportes e registro automático de ferramentas. O Pi explicitamente rejeita o MCP
00:12:48em seu núcleo em favor de habilidades, que são ferramentas de CLI documentadas com READMEs.
00:12:54Mario Zechner escreveu um post no blog argumentando que o MCP adiciona complexidade onde uma ferramenta
00:13:00CLI simples com um README cumpre o mesmo objetivo. Se o seu fluxo de trabalho já
00:13:04depende de servidores MCP, o Open Code é a escolha clara. Se você prefere a filosofia
00:13:10Unix de ferramentas pequenas e combináveis, a abordagem do Pi pode ressoar mais. Inteligência
00:13:16de código. O Open Code tem integração LSP integrada que dá ao modelo de IA
00:13:22acesso a informações de tipo, definições e referências. O Pi não inclui LSP
00:13:28em seu núcleo. Isso dá ao Open Code uma vantagem significativa para trabalhar em linguagens
00:13:32fortemente tipadas, onde o contexto de tipo melhora a compreensão da IA. A
00:13:37interface de terminal. Ambos possuem implementações de TUI personalizadas e sofisticadas,
00:13:42mas construídas de forma diferente. O Open Code usa solid.js com o framework OpenID. O Pi
00:13:48usa seu próprio framework Pi2E com renderização diferencial. Ambos têm um ótimo visual
00:13:53e parecem responsivos. O Open Code oferece adicionalmente um app desktop baseado em Atari
00:13:58e um console web. O Pi é apenas terminal, embora ofereça uma biblioteca de componentes
00:14:03web que desenvolvedores podem incorporar em suas próprias aplicações. Ambos usam configuração
00:14:07baseada em JSON com níveis de projeto e global. O Open Code usa JSONC,
00:14:14que é JSON com comentários. Um belo toque de qualidade de vida. O Pi usa
00:14:19JSON padrão. Ambos suportam personalização extensiva de modelos, ferramentas e comportamento. A
00:14:26configuração do Open Code é mais complexa porque há mais para configurar. A do Pi é
00:14:31mais simples porque há menos área de superfície integrada. Então, qual deles você deve
00:14:35escolher? Aqui estão as perguntas a se fazer. Você quer uma ferramenta que funcione totalmente
00:14:39equipada nativamente? Ou prefere montar seu próprio fluxo de trabalho? Se você
00:14:45quer instalar um agente de codificação e ter tudo funcionando em cinco minutos com
00:14:49permissões, múltiplos agentes, MCP, LSP e uma experiência polida, o Open Code é
00:14:56projetado para isso. Se você quer um núcleo minimalista que você customiza exatamente para suas
00:15:01necessidades e você se sente confortável escrevendo extensões em TypeScript, o Pi foi construído para
00:15:06você. Quão importante é o MCP para o seu fluxo de trabalho? Se você já usa servidores MCP
00:15:11ou planeja usar, o Open Code os suporta nativamente. O Pi deliberadamente não os suporta,
00:15:16favorecendo integrações mais simples baseadas em CLI. Você trabalha principalmente em linguagens
00:15:22fortemente tipadas? O suporte a LSP integrado do Open Code dá ao modelo de IA uma compreensão
00:15:28mais rica do código, o que importa mais para TypeScript, Go, Rust e linguagens semelhantes.
00:15:34Se você trabalha principalmente com Python ou linguagens dinamicamente tipadas, esta
00:15:39vantagem é menor. Você quer um app desktop ou interface web? O Open Code
00:15:44oferece ambos junto com o terminal. O Pi é apenas terminal e se orgulha disso. Como você
00:15:51se sente em relação a confiança e sandboxing? Se você quer que o agente pergunte antes de fazer
00:15:55qualquer coisa perigosa, o sistema de permissões do Open Code lida com isso nativamente. Se
00:16:00você prefere rodar o agente inteiro em um contêiner Docker e deixá-lo fazer o que
00:16:04quiser dentro desse sandbox, a abordagem sem permissões do Pi combina bem com
00:16:10fluxos de trabalho baseados em contêineres. Você é um usuário avançado que quer customizar tudo?
00:16:15O sistema de extensões do Pi é notavelmente poderoso. Você pode modificar virtualmente todos os
00:16:20aspectos do comportamento do agente, desde a execução de ferramentas até o gerenciamento de sessões e a
00:16:25própria TUI. O Open Code também possui um sistema de plug-ins, mas é mais focado em
00:16:30hooks específicos em vez de sobreposição comportamental completa. Aqui está a conclusão
00:16:34honesta. O Open Code é o produto mais maduro e com mais recursos hoje. Ele
00:16:40lhe dá mais pronto para o uso. Ele se integra com mais sistemas externos e
00:16:44tem uma barreira de entrada menor. Para a maioria dos desenvolvedores que querem um agente
00:16:49de IA de código aberto, o Open Code é a aposta mais segura. O Pi tem o design mais interessante. Seu
00:16:55minimalismo agressivo e filosofia de extensão primeiro o tornam exclusivamente adaptável. Se
00:17:01você é o tipo de desenvolvedor que customiza sua config do Neovim por semanas
00:17:05antes de escrever qualquer código, se você quer um agente que funcione exatamente da forma
00:17:09que você acha que deveria, o Pi recompensa o investimento e sua navegação em árvore de sessão é
00:17:14genuinamente a melhor da categoria. Ambos os projetos têm licença MIT, ambos são mantidos ativamente
00:17:20e ambos suportam o mesmo amplo conjunto de provedores de LLM. Você pode testar ambos em uma
00:17:27tarde. O código está no GitHub e nenhum dos dois exige uma assinatura para
00:17:31começar. Instale-os, execute-os na mesma base de código e veja qual deles combina com
00:17:37a sua forma de trabalhar. Essa é a única comparação que realmente importa.

Key Takeaway

Enquanto o Open Code oferece uma solução completa com multi-agentes, LSP e suporte nativo a MCP, o Pi prioriza um núcleo minimalista e extensível focado em usuários avançados que desejam customizar fluxos de trabalho via TypeScript.

Highlights

  • O Open Code utiliza o Bun para execução e inicialização rápidas, operando como um monorepo de 21 pacotes com suporte nativo a SQLite e Drizzle ORM.

  • O Pi adota uma arquitetura minimalista baseada em JSONL, permitindo a navegação no histórico de conversas em estrutura de árvore e a criação de forks em qualquer ponto da sessão.

  • A integração com Language Server Protocol (LSP) no Open Code fornece à IA acesso a definições, tipos e referências de símbolos em linguagens como TypeScript, Rust e Go.

  • O Pi-I, biblioteca de abstração de LLM própria do Pi, suporta mais de 30 provedores, incluindo modelos específicos como Minimax e Kimi que não estão no Vercel AI SDK.

  • O sistema de permissões granular do Open Code permite definir regras por arquivo ou ferramenta, exigindo aprovação manual para editar arquivos sensíveis como .env ou executar comandos shell.

  • As extensões do Pi são arquivos TypeScript carregados via JITI, garantindo acesso total ao núcleo do agente para modificar o comportamento da TUI, execução de ferramentas e gestão de eventos.

Timeline

Conceitos centrais e filosofias de design

  • Open Code e Pi funcionam como agentes de codificação em terminal baseados em modelos como Claude e GPT.
  • O Open Code segue a filosofia de baterias inclusas com agentes especializados e integrações profundas prontas para uso.
  • O Pi foca em minimalismo agressivo e extensibilidade total, omitindo subagentes e permissões em favor de uma API de extensão.

Ambas as ferramentas são alternativas de código aberto ao Claude Code, escritas em TypeScript e sob licença MIT. O Open Code busca produtividade imediata através de um sistema multi-agente e suporte a Model Context Protocol (MCP). O Pi evita ditar fluxos de trabalho, entregando apenas o essencial e permitindo que o desenvolvedor construa o restante conforme sua necessidade específica.

Arquitetura técnica do Open Code

  • O motor do Open Code utiliza o runtime Bun e o Vercel AI SDK versão 5 para integração simplificada com novos provedores de LLM.
  • Agentes especializados como Build, Plan e Explorer são alternáveis via tecla Tab para diferentes níveis de acesso ao código.
  • A persistência em SQLite permite integridade transacional e consultas eficientes entre múltiplas sessões de trabalho.

A estrutura de monorepo inclui pacotes para console web, aplicativo desktop Tauri e um sistema de plugins via NPM. O sistema de permissões cascateia configurações globais e de projeto, exibindo diálogos interativos no terminal para aprovação de ações. A integração LSP eleva a precisão da IA ao fornecer contexto técnico real sobre a base de código, além de suportar o formato de habilidades do Claude Code.

Arquitetura técnica e extensões do Pi

  • O Pi utiliza uma camada de abstração própria chamada Pi-I para controle total sobre o streaming e análise de chamadas de ferramentas.
  • O gerenciamento de sessões em JSONL permite ramificações de conversa e visualização do histórico através do comando tree.
  • A renderização diferencial do pacote pi2e elimina o flicker no terminal usando o protocolo CSI 2026.

O sistema de extensão carrega arquivos TypeScript diretamente via JITI, eliminando a necessidade de compilação e permitindo que extensões criem componentes TUI personalizados. O conjunto de ferramentas integradas é minimalista, contendo apenas sete comandos essenciais como bash, edit e grep. A ferramenta bash suporta sandboxing via Docker e as chamadas de ferramentas são executadas em paralelo por padrão para reduzir a latência.

Comparação direta e critérios de escolha

  • O Open Code é a escolha recomendada para quem busca maturidade, suporte nativo a MCP e interface gráfica.
  • O Pi atende desenvolvedores que priorizam personalização profunda e fluxos de trabalho baseados em contêineres sem permissões integradas.
  • A inteligência de código via LSP torna o Open Code superior para o desenvolvimento em linguagens fortemente tipadas como Rust e Go.

A decisão entre as ferramentas depende da necessidade de integração com servidores MCP e da preferência por interfaces. O Open Code oferece uma barreira de entrada menor com permissões persistentes e múltiplos agentes prontos. O Pi recompensa o investimento de tempo em customização, oferecendo a melhor interface de histórico de conversa da categoria e flexibilidade para modificar qualquer aspecto do comportamento do agente.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video