cgrep : outil local de recherche d’intention dans le code pour les agents de codage IA
(github.com/meghendra6)Bonjour. J’ai créé un outil de recherche de code local-first (code-local) appelé cgrep.
L’objectif principal est de réduire le gaspillage de tokens et les recherches répétitives lorsque des agents de codage IA explorent une base de code.
cgrep combine la recherche BM25 (Tantivy) et l’analyse de symboles AST (tree-sitter) afin de permettre une exploration plus alignée sur l’intention du code qu’une simple recherche de chaînes.
Fonctionnalités principales :
- Exploration du code : definition / references / callers / dependents
- Exploration du contexte : read / map
- Flux agent en 2 étapes :
agent locate -> agent expand(trouver des candidats avec une petite charge utile, puis n’étendre que ce qui est nécessaire) - Prise en charge de MCP :
cgrep mcp serve+ prise en charge de l’installation de l’hôte - Prise en charge de l’installation des agents : claude-code, codex, copilot, cursor, opencode
Benchmark sur PyTorch (6 scénarios de suivi d’implémentation) :
- tokens-to-complete avec grep : 127,665
- tokens-to-complete avec cgrep (agent locate/expand) : 6,153
- réduction des tokens de 95,2 % (20,75x de réduction)
- latence moyenne de recherche jusqu’à l’achèvement : 1321.3ms -> 22.7ms (environ 58,2x)
Tous les traitements s’exécutent en local (sans dépendance à un index cloud).
Vos retours m’intéressent :
- ce qui manque dans de vraies grandes bases de code
- les améliorations nécessaires pour l’intégration MCP/agent
- des idées pour enrichir les scénarios de benchmark
Repo: https://github.com/meghendra6/cgrep
Docs: https://meghendra6.github.io/cgrep/
Benchmark: https://meghendra6.github.io/cgrep/benchmarks/…
4 commentaires
On dirait qu’il a le même objectif que mgrep ou l’outil ck.
Sur macOS, quand j’essaie d’exécuter le binaire de release en v1.4.1, un avertissement s’affiche et il ne se lance pas.
Je me suis aussi dit que ce serait bien d’avoir des skills ou des instructions que l’agent pourrait consulter, comme dans cet exemple agent-browser.
Il y avait un problème avec la signature binaire, je l’ai corrigé.
Merci de vérifier et d’avoir fait la revue !
L’effet de réduction des tokens est vraiment intéressant. S’il y avait aussi dans le README des résultats de benchmark liés au codage, même si les performances restent globalement similaires, cela renforcerait davantage la confiance.
Comme suggéré dans vos retours, j’ai également ajouté les résultats de benchmark pour un scénario réaliste d’agent de codage.
Merci pour vos retours !