Qu’est-ce que Zvec-Grep (zg) ?
Zvec-Grep, lancé sous le nom zg, indexe un espace de travail et répond aux recherches par correspondance exacte, classement par mots-clés BM25, similarité vectorielle ou hybride fusionné, en renvoyant des passages classés avec chemins, symboles et numéros de ligne. Il repose sur la base de données vectorielle zvec et sert à la fois une ligne de commande et un serveur MCP local. Par défaut, les agents voient un seul outil, zvec_grep_search, prévu pour les questions dont on ignore la formulation ou l'emplacement ; un jeu complet ajoute rg, la gestion des index et des outils d'état.
Il est sous licence Apache-2.0, publié sur npm sous le nom @zvec/zvec-grep et fonctionne sous macOS, Linux et Windows. La version 0.3.0, sortie le 3 novembre 2026, a réécrit le cœur en Rust. Le dépôt compte environ 4 260 étoiles et 92 tickets et pull requests ouverts, et le paquet npm a enregistré environ 12 189 téléchargements le mois dernier.
Installer Zvec-Grep (zg)
npm install -g @zvec/zvec-grep --allow-scripts=@zvec/zvec-grep && zg --install --target claudeZvec-Grep (zg) vaut-il le coup ?
Le choix de conception qui compte est la retenue. Là où plusieurs serveurs concurrents de contexte de code exposent de nombreux outils, le jeu par défaut de zg pour les agents en compte un, zvec_grep_search, et sa documentation demande à l'agent de garder son propre grep pour les mots exacts, noms de fichiers et expressions régulières. La recherche combine la similarité vectorielle pour le sens et BM25 pour ancrer les identifiants, si bien qu'une question comme l'endroit où sont vérifiés les droits des utilisateurs peut tomber sur la bonne fonction même quand personne ne connaît son nom.
Les réglages de confidentialité par défaut sont soigneusement pensés. Les index résident dans .zvec-grep au sein du projet, les modèles dans ~/.zvec-grep/models, et le modèle d'embeddings par défaut, potion-code-16m-v2, tourne en local ; onze modèles locaux sont listés, du Model2Vec à 16m paramètres à Qwen3 Embedding 0.6B au format GGUF. Les trois modèles Qwen distants exigent une clé d'API et, séparément, un accord explicite : la clé seule n'autorise pas l'envoi du contenu de l'espace de travail, qui requiert --allow-remote ou une autorisation limitée à l'espace de travail. Le serveur HTTP facultatif écoute sur 127.0.0.1:7999, sans authentification par défaut sur la boucle locale ; un fichier de jeton active l'authentification bearer.
La réécriture en Rust de la 0.3.0 est un gros changement pour un projet jeune. Sur le test des mainteneurs portant sur 75 128 documents, la taille du paquet est passée de 167,5 Mio à 34,3 Mio, le temps total d'indexation de 219,13 s à 77,84 s, la mémoire de pointe a baissé de 53,2 % et la latence de recherche MCP est passée de 20,93 ms à 14,88 ms. Ce sont des chiffres de l'éditeur, comme les benchmarks A/B d'agents avec Claude Code et Codex, et le README dit lui-même que les résultats varient selon le modèle et l'exécution. Avec 92 tickets et pull requests ouverts et un index à reconstruire à chaque changement de modèle d'embeddings, mieux vaut l'essayer sur un dépôt avant d'en faire la norme de l'équipe.
Là où il fait la différence
Un développeur backend qui découvre une base Django de 300 000 lignes
Trouver où une règle métier est appliquée sans connaître le nom de la fonction
Lancez zg --index une fois, installez-le dans Claude Code avec zg --install --target claude et laissez l'agent appeler zvec_grep_search avant de revenir à grep. Gratuit avec un modèle local ; le temps d'indexation croît avec la taille du dépôt.
Une analyste des politiques publiques avec un dossier de rapports et de notes
Chercher des documents par le sens depuis le terminal, sans agent
Indexez avec local/potion-retrieval-32m pour des documents en anglais et interrogez avec zg --preview detail. Les résultats arrivent classés avec références de fichier et de ligne ; rien ne quitte l'ordinateur portable.
Une équipe plateforme qui déploie des outils d'agents pour 20 ingénieurs
Offrir à chacun la même recherche sémantique dans différents éditeurs
Scriptez zg --install pour les cibles de l'équipe (codex, claude, cursor, vscode) et gardez le jeu par défaut à un outil. Si un modèle Qwen partagé est souhaité, accordez les embeddings distants par espace de travail plutôt que globalement.
Avant de vous engager
- Mise en route
- npm install -g @zvec/zvec-grep --allow-scripts=@zvec/zvec-grep, puis zg --index dans le projet et zg --install --target <client>. Redémarrez ensuite l'agent. L'index est stocké dans .zvec-grep à la racine du projet.
- Intégrations
- Les cibles d'installation comprennent codex, claude, qwen, qoder, opencode, cursor, copilot, vscode, grok et pi. MCP en stdio par défaut, ou HTTP via zg --server on. --mcp-toolset full ajoute les outils rg, d'index et d'état.
- Données et confidentialité
- Fichiers, index et modèles locaux restent sur la machine. Les embeddings Qwen distants n'envoient le contenu autorisé de l'espace de travail et les requêtes au fournisseur qu'après --allow-remote ou une autorisation d'espace de travail, révocable.
- Coût à grande échelle
- Gratuit avec les modèles locaux. Les embeddings Qwen distants sont facturés par le fournisseur selon les tarifs de DashScope, que la documentation de zg ne reprend pas.
- Limites
- Texte uniquement, même avec des modèles d'embeddings multimodaux. Changer de modèle ou de point d'accès oblige à reconstruire l'index. Le serveur HTTP sur 127.0.0.1:7999 n'a pas d'authentification par défaut sur la boucle locale.
Les points forts
- Un seul outil MCP par défaut garde le contexte de l'agent léger
- Modèles d'embeddings locaux par défaut ; rien ne quitte la machine
- Les embeddings distants exigent un accord explicite
- Installation en une commande pour Claude, Codex, Cursor et d'autres
Les points faibles
- Les benchmarks sont ceux des mainteneurs
- 92 tickets et PR ouverts après une réécriture complète en Rust
- Changer de modèle d'embeddings impose une réindexation complète
- Le serveur HTTP local n'a pas d'authentification par défaut
Idéal pour
Développeurs et chercheurs qui veulent que leur agent de code trouve code et documents par le sens sans envoyer le dépôt à une API d'embeddings.
Alternatives à Zvec-Grep (zg)
Zvec-Grep (zg) : questions fréquentes
- Zvec-Grep (zg) vaut-il le coup ?
- Un outil de recherche locale bien pensé pour les agents, qui limite sa surface MCP à un seul outil et fait des embeddings distants un choix explicite plutôt qu'un réglage par défaut. Nous lui donnons 4.0 sur 5.
- Combien coûte Zvec-Grep (zg) ?
- Gratuit et open source (Apache-2.0). Les modèles d'embeddings locaux sont gratuits ; les embeddings distants Qwen, facultatifs, exigent une clé d'API DashScope et sont facturés par ce fournisseur.
- Quels sont les inconvénients de Zvec-Grep (zg) ?
- Les benchmarks sont ceux des mainteneurs; 92 tickets et PR ouverts après une réécriture complète en Rust; changer de modèle d'embeddings impose une réindexation complète; le serveur HTTP local n'a pas d'authentification par défaut.
- À qui s’adresse Zvec-Grep (zg) ?
- Développeurs et chercheurs qui veulent que leur agent de code trouve code et documents par le sens sans envoyer le dépôt à une API d'embeddings.
- Combien coûte Zvec-Grep (zg) pour une équipe ou en production ?
- Gratuit avec les modèles locaux. Les embeddings Qwen distants sont facturés par le fournisseur selon les tarifs de DashScope, que la documentation de zg ne reprend pas.
- Zvec-Grep (zg) est-il sûr pour les données de l’entreprise ?
- Fichiers, index et modèles locaux restent sur la machine. Les embeddings Qwen distants n'envoient le contenu autorisé de l'espace de travail et les requêtes au fournisseur qu'après --allow-remote ou une autorisation d'espace de travail, révocable.
- Quelles sont les meilleures alternatives à Zvec-Grep (zg) ?
- Les alternatives les plus proches que nous avons testées sont Serena, CodeGraph, Semble et Project RAG.
Réponses vérifiées le 6 nov. 2026.