Olha só isso: GitHub dentro do seu agente, sem gambiarra
Sabe aquele setup clássico? Você coloca um Personal Access Token no .env, escreve umas chamadas REST na mão e reza pra não comentar no PR errado às 2 da manhã. Funciona… até não funcionar mais.
O pacote @github-tools/eve-extension vira esse jogo. Em vez de você montar auth e permissões na unha, você registra uma extensão com connector que gera tokens curtos e com escopo em tempo de execução. Toda tool de escrita já vem com aprovação obrigatória por padrão. E o melhor: tudo em UM arquivo dentro de agent/extensions/.
Se você curte automação séria em repositórios, dá uma olhada nesse case da Spotify que automatizou 240 migrações de dataset em 6 meses — mesma filosofia, escala gigante.
O que você ganha de graça
- Auth via connector: você passa um connector do Vercel Connect e a extensão emite tokens de curta duração, com escopo, na hora.
- Presets que delimitam o toolset:
code-review,issue-triage,repo-explorer,ci-opsemaintainermapeiam automaticamente para os escopos do Connect. O token carrega só o que a tool precisa. - Regras de aprovação viajam com o config: toda tool de escrita exige aprovação por padrão. Você pode gatear tools individuais com
always,onceou um predicado que depende do input. - Namespaced e versionado: o nome do arquivo vira o namespace, então as tools aparecem como
github__addPullRequestComment. Sobe a versão do pacote e ganha tools novas — e o schema do config é validado no import.

Passo 1 — Instala o pacote
# Adiciona a extensão no seu projeto de agente eve
pnpm add @github-tools/eve-extension
Passo 2 — Registra a partir de um arquivo em agent/extensions/
Cria um arquivo (qualquer nome — o nome do arquivo vira o namespace) dentro de agent/extensions/. Por exemplo, agent/extensions/github.ts:
// agent/extensions/github.ts
import githubExtension from '@github-tools/eve-extension'
export default githubExtension({
// Referencia um connector do Vercel Connect já criado
connector: 'github/my-connector',
// Delimita o toolset pro que esse agente precisa
preset: 'code-review',
// Gate nas tools de escrita. Aqui: exige aprovação pra
// comentar fora da sua org, mas libera dentro dela.
requireApproval: {
addPullRequestComment: ({ toolInput }) =>
toolInput?.owner !== 'vercel-labs',
},
})
Pronto. Um arquivo registra o toolset inteiro de code-review, ligado a um connector do Connect, com um predicado que deixa sua org passar direto e marca comentários externos pra revisão humana.
Passo 3 — Confere se as tools apareceram
Depois do restart, seu agente expõe as tools sob o namespace github__. Você deve ver algo assim:
github__addPullRequestComment
github__listPullRequests
github__getFileContents
...
O namespace vem do nome do arquivo — renomeia pra gh-tools.ts e as tools viram gh-tools__addPullRequestComment. Mantém previsível pra não quebrar seus prompts.
Cola das regras de aprovação
| Regra | Comportamento |
|---|---|
always | Toda chamada exige aprovação humana |
once | A primeira chamada da sessão exige aprovação; as próximas passam |
| Função predicado | Aprova só quando ({ toolInput }) => boolean retorna true |
O default é conservador — tools de escrita exigem aprovação a menos que você afrouxe. Não afrouxe sem motivo.

Limites e pegadinhas ⚠️
- Você ainda precisa de um connector do Vercel Connect. A extensão não cria um pra você. Se pular esse passo, o agente quebra na hora de emitir o token com erro de connector não encontrado.
- Os presets são opinativos.
code-reviewnão vai te dar capacidades derepo-explorerpor mágica. Se precisar de tools de vários presets, registra várias extensões ou confere se o preset cobre seu caso. - Predicados rodam no client. O
requireApprovalexecuta no runtime do seu agente, não no lado da Vercel. Não coloca segredo dentro do closure do predicado — é só config. - Validação de schema no import. Se o formato do config estiver errado, a extensão lança erro no import. Isso é uma feature, não bug — mas significa que um typo em
requireApprovalpode travar o boot do agente inteiro. - Colisão de namespace. Dois arquivos com o mesmo basename colidem. Mantém nomes únicos em
agent/extensions/.
Próximos passos
Depois de plugar as tools do GitHub, o passo natural é cuidar do input que seu agente recebe. Se você tá montando algo user-facing em cima dessas tools — tipo um fluxo de demo onde o stakeholder clica em login → PR → review — dá uma olhada nesse tutorial de fluxo de login com ProtoPie, que mostra como prototipar essa UX sem escrever código.

Resumão
pnpm add @github-tools/eve-extensione joga um arquivo emagent/extensions/.- Usa um connector do Vercel Connect pra tokens curtos e com escopo.
- Escolhe um preset (
code-review,issue-triage,repo-explorer,ci-ops,maintainer) pra limitar permissões automaticamente. - Gateia tools de escrita com
always,onceou predicado — o default já é seguro. - Tools são namespaced pelo nome do arquivo e versionadas pelo pacote.
Se você já roda agentes eve contra repos de verdade, esse é o jeito mais simples de adicionar capacidade do GitHub sem inventar sua própria camada de auth. Começa com o preset code-review, mantém as regras de aprovação default, e só abre o escopo quando tiver um motivo concreto.