Présentation
Pensieve est une application macOS (Apple Silicon, macOS 14+) open source qui indexe localement fichiers, dépôts Git et sessions d’agents de codage. L’indexation permet aux agents IA (Claude Code, Codex, Cursor ou tout client MCP) d’interroger le dépôt via une recherche sémantique ou textuelle avant d’exécuter un grep complet. Chaque recherche renvoie les passages pertinents avec le chemin et le numéro de ligne, limitant ainsi la quantité de données lues.
Fonctionnement et intégration
L’outil crée un index de type vecteur qui associe chaque fragment de texte à un vecteur de signification. Les agents envoient une requête au serveur MCP local ; Pensieve répond avec les meilleurs résultats, classés par pertinence sémantique puis par correspondance exacte. L’intégration se fait via le script
pensieve integrate qui ajoute un bloc « search before you grep » aux agents. La recherche accepte des filtres (kind:code, ext:pdf, in:) et des opérateurs d’exclusion (-draft), offrant un contrôle granulaire sans recourir à l’interface graphique.Benchmarks et analyse de performance
Dans un test interne, quatre dépôts réels (de 500 à 34 847 fichiers) ont servi à 72 tâches tenues‑out, exécutées deux fois avec et sans Pensieve. Le nombre moyen d’appels d’outil par recherche est passé de 3,4 avec grep à 2,0 avec Pensieve, soit une réduction de 43 %. Le coût moyen par recherche a baissé de 0,050 $ à 0,041 $, soit 18 % d’économie, et le temps moyen a diminué de 10,9 s à 8,6 s (21 % plus rapide). Le taux de succès du premier résultat a atteint 131/144 avec Pensieve contre 123/144 avec grep. Chaque recherche locale dure 0,1 à 0,2 s, et l’outil utilise 16 % de tokens en moins que le flux standard de Claude Code.
Implications pour la productivité et les risques
En limitant les appels de lecture, Pensieve réduit la charge réseau et les coûts d’API, ce qui est particulièrement pertinent pour les modèles à facturation à la tokenisation. L’accès aux métadonnées Git (blâme, activité des contributeurs) permet de repérer les experts d’un domaine et les zones de connaissances orphelines, facilitant la répartition des tickets. Cependant, la dépendance à un index local implique que les changements de code doivent être ré‑indexés pour rester à jour, sinon les réponses peuvent devenir obsolètes. De plus, la visibilité du code reste locale ; aucune donnée n’est transmise à un serveur externe, ce qui limite les risques de fuite de propriété intellectuelle mais ne protège pas contre des fuites accidentelles si le disque est compromis.