Treepeat es una herramienta de línea de comandos diseñada para identificar bloques de código duplicados o similares dentro de una base de código. A diferencia de los métodos tradicionales que comparan líneas de texto, Treepeat utiliza el análisis del árbol abstracto sintáctico (AST) generado por Tree-sitter para evaluar la similitud semántica y estructural del código. Esto permite detectar duplicados significativos, como funciones o clases idénticas, así como variaciones menores que ignoran espacios en blanco, cadenas de texto o nodos de alto nivel del AST.
El proyecto, que se encuentra en fase de demostración de concepto, soporta actualmente una variedad de lenguajes de programación, incluyendo Python, JavaScript, TypeScript, Java, Rust, Go, Lua, Bash, HTML, CSS, Markdown, SQL, Astro y Kotlin. La herramienta ofrece tres conjuntos de reglas de normalización: 'none' para encontrar duplicados exactos, 'default' para detectar duplicados cercanos ignorando detalles superficiales, y 'loose' para identificar código estructuralmente similar tras anonimizar identificadores y constantes.
Treepeat incluye opciones avanzadas para la integración en pipelines de CI/CD, como la salida en formato SARIF, y permite visualizar comparaciones lado a lado de bloques similares. Además, ofrece métricas de rendimiento y tiempos de ejecución por etapa para el desarrollo de herramientas. La instalación se realiza mediante pip, y el proyecto invita a la comunidad a contribuir mediante pull requests para ampliar el soporte de lenguajes y mejorar la precisión de las detecciones.
