O ast-grep é uma ferramenta de linha de comando para busca estrutural, linting e reescrita de código. Os padrões são escritos como código comum com caracteres curinga para qualquer nó de sintaxe e correspondem à árvore sintática em vez de texto, usando parsers de tree-sitter para mais de 20 linguagens. As regras de linting e reescrita são escritas em um formato declarativo YAML. Uma de nossas equipes usou essas regras como parte do harness em torno de um agente de programação, verificando o código do agente em relação a um conjunto de regras personalizadas e enviando os resultados de volta para o agente.
O ast-grep é semelhante às ferramentas por trás de inteligência de código como ferramenta para agentes, mas ele não cria um índice nem exige um servidor de linguagem. Por pular a indexação, ele é um primeiro passo de baixo atrito para uma base de código grande antes de se comprometer com ferramentas mais pesadas. Ao contrário da maioria das ferramentas desse grupo, ele também tem usos que não envolvem agentes: as próprias desenvolvedoras podem executar as mesmas buscas, regras de lint e reescritas. O ast-grep abrange praticamente o mesmo escopo que o Comby, que destacamos em 2021. A maioria das IDEs já oferece busca baseada em AST, mas elas não substituem as regras de lint personalizadas e as reescritas que destacam o ast-grep.