Pitch: Yenpo — um app nativo de Mac para ler e revisar o código que seu agente de IA escreve
Sou o desenvolvedor do Yenpo, um app nativo para macOS. Ele resolve um problema bem específico: quando você constrói um projeto junto com um agente de IA (Claude Code, Codex, Cursor), o agente escreve mais código numa sessão do que dá para ler com calma. Rolar um diff enorme e aprovar não é bem revisar, e aos poucos a gente perde o fio do raciocínio da IA: por que ela mexeu naquele arquivo, quem chama aquela função, o que muda no caminho de erro.
O Yenpo serve para ler e revisar esse código enquanto o projeto anda, para você continuar entendendo o que está sendo construído. Não é um editor nem uma ferramenta para explorar a codebase dos outros; é um leitor para o repositório em que o seu agente está trabalhando. Também não existe integração com o agente: o Yenpo lê o repositório git, então funciona do mesmo jeito com qualquer um deles.
Abaixo explico o fluxo e algumas decisões técnicas. No final, peço feedback.

O fluxo
- Abrir as mudanças. Você abre a raiz do repositório e escolhe o que comparar: um commit específico, uma branch contra a main (em diff inline) ou as Alterações locais (Local Changes) contra o HEAD, ou seja, o que o agente mudou e ainda não foi commitado.
- Seguir o código. Na função alterada, Ir para definição e Buscar referências (Go to Definition / Find References) levam aos chamadores, às dependências e aos testes que usam aquele trecho. Isso roda com servidores de linguagem locais.
- Perguntar, se quiser. O AI Reader é opcional e usa o provedor de modelo que você configurar (OpenAI Compatible, OpenAI Responses ou Anthropic Messages). Ele mostra quais arquivos leu e o que buscou, e as respostas linkam para as linhas que citam. A ideia é você conferir no código, em vez de simplesmente confiar na explicação.

Algumas decisões técnicas
Somente leitura por padrão. Uma ferramenta de revisão que altera arquivos enquanto você lê atrapalha mais do que ajuda. Por isso o Yenpo começa em modo somente leitura e não edita nada a menos que você ative Permitir edições (Allow Edits), que vale por um turno do AI Reader. As comparações entre commits e branches ficam fixas nos commits escolhidos e também são somente leitura.
Servidores de linguagem sem efeitos colaterais. Servidores de linguagem foram pensados para editores, e vários deles baixam dependências ou gravam cache assim que abrem um projeto. Num app de revisão, a expectativa é que abrir o projeto não dispare nada. Algumas escolhas que fiz:
- os argumentos de inicialização de cada servidor são fixos no app;
- o
HOMEdo servidor aponta para um diretório temporário; - no Go, o
goplsrecebe oGOPATH/GOMODCACHEreais (para enxergar os módulos que você já tem) e roda comGOPROXY=off,GOSUMDB=off,GOFLAGS=-mod=readonlyeGOTOOLCHAIN=local; - no TypeScript, a aquisição automática de tipos (
disableAutomaticTypingAcquisition) fica desligada.
O preço é que uma dependência que não está no cache local geralmente fica sem navegação. E um limite que ainda não resolvi: o servidor roda com a raiz do projeto como diretório de trabalho, então não tenho como garantir tudo o que um servidor de terceiros faz por conta própria.
Swift e a família C usam o sourcekit-lsp e o clangd do Xcode; o rust-analyzer pode ser instalado pelo próprio Yenpo; os servidores de Python, JavaScript/TypeScript e Go vêm do seu PATH.
Arquitetura. A interface é em Swift/SwiftUI. Um processo separado em Rust conversa com ela por JSON-RPC 2.0 via stdin/stdout (JSON Lines) e é quem inicia os servidores de linguagem localmente.
Privacidade e rede
Não tem conta Yenpo nem telemetria. Ele só acessa a internet para falar com o provedor de IA que você configurar, para uma verificação diária de atualização (opcional) e para downloads que você mesmo inicia, como instalar o rust-analyzer a partir do GitHub.
Detalhes
- macOS 14 ou superior, Apple silicon e Intel.
- Interface em 10 idiomas, incluindo português do Brasil.
- Gratuito. Cada build de prévia expira em 30 dias; a atual é a 0.1.311.
- Navegação de código para Swift, Rust, C, C++, Objective-C, Python, JavaScript, TypeScript e Go (depende do servidor e da configuração do projeto).
- Só para Mac, e o código-fonte não é aberto.
Download e detalhes: https://yenpo.app/pt-br/?utm_source=tabnews&utm_medium=social&utm_campaign=eap_launch
Guias em português (revisar uma rodada do Claude Code, uma branch do Codex contra a main, explicar código com o seu próprio modelo): https://yenpo.app/pt-br/guides/?utm_source=tabnews&utm_medium=social&utm_campaign=eap_launch
O que eu queria saber
Como vocês revisam o que o agente escreveu numa sessão antes de dar merge? E, para quem testar: o que faltou ou atrapalhou nesse fluxo? Respondo por aqui.