Pular para o conteúdo
ReviewRamble

A newsletter semanal

IA, analisada, na sua caixa de entrada.

  • Novas análises de ferramentas, modelos, servidores MCP e repositórios, com o veredicto logo no início
  • Preços e notas reconferidos quando algo muda
  • Novos artigos de análise assim que são publicados

Modelos, agentes, servidores MCP e as ferramentas que realmente valem seu tempo.

Um e-mail por semana. Cancele pelo link em qualquer edição. Como usamos seu e-mail

ast-grep

CLI em Rust que busca, verifica e reescreve código pela árvore sintática, em 28 linguagens, tanto para pessoas quanto para agentes de código.

Análise de ReviewRamble editors · Atualizado

Ver no GitHub Código aberto

Nossa nota

4.5/5

ast-grep é a ferramenta de busca estrutural para entregar a um agente de código antes que ele recorra ao sed, desde que ninguém confunda a correspondência sintática com análise semântica.

O que é ast-grep?

ast-grep encontra código pela estrutura, não pelo texto. Você escreve um padrão que parece código comum, como `$A && $A()`, com marcadores para as partes que variam, e ele localiza cada ponto do código com esse formato, não importa o espaçamento ou os nomes de variáveis. Os mesmos padrões alimentam regras de lint em YAML (`ast-grep scan`), testes de regras e reescritas, aplicadas em lote ou uma a uma com `--interactive`. Ele faz o parsing com tree-sitter e suporta 28 linguagens de fábrica, de Bash e C a TypeScript e Zig.

O projeto, liderado por Herrington Darkholme, tem licença MIT, é escrito em Rust e soma cerca de 16.600 estrelas no GitHub; a versão 0.51.2 saiu em 11 de novembro de 2026. Instala via Homebrew, npm, pip, cargo, MacPorts ou Nix, e também traz APIs para JavaScript, Python e WebAssembly, um servidor de linguagem para editores e um modo de saída JSON. Para agentes de código há o comando `outline` (prévia alfa desde a 0.44.0), uma skill oficial para agentes e um servidor MCP experimental.

ast-grep vale a pena?

Busca por texto é a ferramenta errada para a maioria das refatorações, e agentes cometem esse erro mais rápido que pessoas. Uma regex que reescreve uma chamada de função também reescreve as mesmas palavras num comentário, numa string e numa variável que por acaso tem o mesmo nome. ast-grep faz o parsing do arquivo primeiro, então um padrão só corresponde a código real com aquele formato. Por isso virou uma dependência comum em configurações de agentes: o npm contou cerca de 9,6 milhões de downloads de @ast-grep/cli nos 30 dias até 12 de novembro de 2026, número que inclui CI e instalações transitivas, não só pessoas digitando comandos.

O design mantém os padrões legíveis. Em vez de aprender uma linguagem de consulta, você escreve código com metavariáveis e acrescenta regras YAML (inside, has, not, any) quando um padrão sozinho não basta. As regras podem trazer uma correção, uma severidade e testes, o que transforma buscas pontuais num linter do projeto. O ritmo de versões é constante, com a 0.51.1 em 2 de novembro e a 0.51.2 nove dias depois, e o histórico tem mais de 100 colaboradores.

O porém: ele só enxerga sintaxe. O FAQ diz com clareza que não há análise de escopo, tipos, fluxo de controle, fluxo de dados nem taint, então ele não encontra uma variável de determinado tipo nem segue uma entrada do usuário até uma chamada ao banco de dados. Para regras de segurança desse tipo, Semgrep ou CodeQL vão mais longe. Os padrões também precisam ser código que o tree-sitter consiga analisar, o que confunde com fragmentos como uma chave JSON solta, e no Linux o alias curto `sg` conflita com o comando setgroups do sistema. O servidor MCP é marcado como experimental e roda com Python e uv, então a maioria dos agentes é mais bem servida pela CLI e pela skill.

Nossa opinião: pense no ast-grep como um grep que sabe onde uma chamada de função começa e termina. Deixe o agente usá-lo em toda busca e reescrita que tenha formato, e mantenha uma ferramenta que entende tipos para perguntas sobre significado.

Onde ele se destaca

  • Um engenheiro de plataforma num monorepo grande de TypeScript

    Trocar em todo lugar uma chamada de logging obsoleta sem mexer em comentários ou strings

    Escreva um padrão com correção, revise com `ast-grep run --interactive` e aplique em toda a árvore. Roda localmente em segundos na maioria dos repositórios e não custa nada; o que depende de tipos ainda exige o compilador.

  • Um tech lead que aplica regras internas no CI

    Bloquear código novo que chama uma API interna do jeito errado

    Adicione regras YAML a um projeto sgconfig.yml, dê a cada uma um caso de teste e rode `ast-grep scan` no pipeline. As regras ficam no repositório e são revisadas como código, sem taxa de licença.

  • Uma desenvolvedora usando Claude Code numa base de código desconhecida

    Fazer o agente encontrar e editar código pela estrutura em vez de regex

    Instale a CLI e a skill oficial para que o agente escreva regras do ast-grep, e deixe o `ast-grep outline` listar os símbolos de um arquivo antes de ele ler o arquivo inteiro. Menos edições indevidas; outline ainda é prévia alfa.

Antes de decidir

Configuração
`brew install ast-grep`, `npm i @ast-grep/cli -g`, `pip install ast-grep-cli` ou `cargo install ast-grep --locked`; uma primeira busca leva um minuto. `ast-grep new` cria a estrutura de um projeto de regras.
Integrações
28 linguagens embutidas e outras via tree-sitter, servidor de linguagem para VS Code e outros editores, saída JSON, APIs para JavaScript (napi), Python e WebAssembly, um playground online, o plugin ast-grep/agent-skill e o servidor experimental ast-grep-mcp.
Dados e privacidade
Roda inteiramente na sua máquina sobre arquivos locais; nenhuma conta ou serviço de rede está envolvido. Licença MIT.
Custo em escala
Gratuito, sem plano pago. O mantenedor aceita GitHub Sponsors; o custo em escala é escrever e testar as regras.
Limites
Só sintaxe: sem análise de tipos, escopo, fluxo de controle, fluxo de dados ou taint. Padrões precisam ser código analisável. `outline` é uma prévia alfa cuja cobertura de linguagens pode mudar. Cerca de 46 issues e pull requests abertos na última verificação.

O que é bom

  • Padrões escritos como código comum com marcadores
  • 28 linguagens embutidas via tree-sitter
  • Busca, regras de lint com testes e reescritas num só binário
  • APIs para JavaScript, Python e WebAssembly, mais servidor de linguagem

O que não é

  • Sem análise de tipos, escopo ou fluxo de dados
  • Padrões precisam ser código válido, o que confunde iniciantes
  • Alias `sg` conflita com um comando do sistema no Linux
  • Servidor MCP ainda experimental

Ideal para

Desenvolvedores e agentes de código que precisam de buscas e codemods precisos e repetíveis numa base de código grande, sem escrever um plugin de compilador.

Alternativas ao ast-grep

ast-grep: perguntas frequentes

ast-grep vale a pena?
ast-grep é a ferramenta de busca estrutural para entregar a um agente de código antes que ele recorra ao sed, desde que ninguém confunda a correspondência sintática com análise semântica. Damos nota 4.5 de 5.
Quanto custa ast-grep?
Gratuito e de código aberto (MIT).
Quais são as desvantagens de ast-grep?
Sem análise de tipos, escopo ou fluxo de dados; padrões precisam ser código válido, o que confunde iniciantes; alias `sg` conflita com um comando do sistema no Linux; servidor MCP ainda experimental.
Para quem ast-grep é indicado?
Desenvolvedores e agentes de código que precisam de buscas e codemods precisos e repetíveis numa base de código grande, sem escrever um plugin de compilador.
Quanto custa ast-grep para uma equipe ou em produção?
Gratuito, sem plano pago. O mantenedor aceita GitHub Sponsors; o custo em escala é escrever e testar as regras.
ast-grep é seguro para dados da empresa?
Roda inteiramente na sua máquina sobre arquivos locais; nenhuma conta ou serviço de rede está envolvido. Licença MIT.
Quais são as melhores alternativas ao ast-grep?
As alternativas mais próximas que analisamos são grepai, Repowise e jevgrep.

Respostas verificadas em 13 de nov. de 2026.

Você faz o ast-grep? Mostre esta nota no seu siteast-grep com nota 4.5 de 5 no ReviewRamble