Merci à Arnaud Lamandé pour ce tuto, que j'ai décidé de promouvoir sur mon site.
Avant de continuer de lire la suite de l'article, je vous invite à vous inscrire à ma newsletter, pour connaître en avant première les futurs sujets traités chaque semaine.
1. C'est quoi grepai ?
Le problème avec grep classique
Quand tu cherches du code avec grep ou les outils de recherche classiques :
- Tu dois connaître le nom exact de la fonction ou variable
- Tu trouves des correspondances de texte, pas de sens
- "Chercher l'authentification" ne fonctionne pas si le code dit validateUser
La solution : grepai
grepai utilise l'intelligence artificielle pour comprendre le sens de ton code :
# Avec grep classique grep -r "authentification" . # Ne trouve rien si le code dit "login" # Avec grepai grepai search "authentification" # Trouve validateUser, checkCredentials, login...
Ce qu'on va installer
Composant Rôle Taille
Ollama Moteur d'IA local~50
Monomic-embed-text Modèle qui comprend le code~275
Mogrepai Outil de recherche~50 Mo
SkillsInstructions pour Claude Code~1 Mo
Total : ~400 Mo — Tout reste sur ton PC, rien n'est envoyé sur internet.
2. Ce dont tu as besoin
Configuration minimale
- ✅ Windows 10/11 avec Ubuntu WSL2
- ✅ 8 Go de RAM (16+ recommandé)
- ✅ 1 Go d'espace disque libre
- ✅ Connexion internet (pour l'installation)
Configuration testée
- Windows 11, Ryzen 7 8845HS, 32 Go RAM, SSD
- Résultat : indexation de 937 fichiers en ~56 minutes (première fois uniquement)
💡 Note sur les performances : L'indexation utilise le CPU, pas le GPU. Un processeur moderne (4+ cœurs) suffit largement. La RAM utilisée pendant l'indexation est d'environ 500 Mo.
3. Ouvrir le terminal Ubuntu
Méthode simple
- Clique sur le menu Démarrer Windows
- Tape "Ubuntu"
- Clique sur l'application Ubuntu
Ce que tu verras
utilisateur@PC:~$
Le $ signifie que le terminal attend ta commande. Tu ne dois pas taper le $.
4. Mettre à jour Ubuntu et installer les prérequis
4.1 Mettre à jour Ubuntu
sudo apt update && sudo apt upgrade -y
💡 Mot de passe : Quand tu tapes ton mot de passe, rien ne s'affiche (pas d'étoiles, rien). C'est normal, c'est pour la sécurité. Tape et appuie sur Entrée.
Attends que les mises à jour se terminent (1-3 minutes).
4.2 Installer zstd (IMPORTANT !)
⚠️ Cette étape est obligatoire. Sans zstd, l'installation d'Ollama échouera avec l'erreur :
ERROR: This version requires zstd for extraction.
Installe-le maintenant :
sudo apt-get install zstd -y
5. Installer Ollama
5.1 Lancer l'installation
curl -fsSL https://ollama.com/install.sh | sh
L'installation prend 1-2 minutes. Tu verras plein de lignes défiler.
5.2 Ce qui se passe automatiquement
Le script d'installation fait tout pour toi :
- ✅ Installe Ollama dans /usr/local/bin/
- ✅ Crée un service système (systemd)
- ✅ Configure le démarrage automatique
- ✅ Démarre Ollama immédiatement
💡 Tu n'as PAS besoin de configurer .bashrc ou de lancer ollama serve manuellement. C'est déjà géré !
5.3 Message à ignorer
Tu verras probablement :
>>> NVIDIA GPU not detected
C'est normal si tu as une carte AMD ou Intel. grepai n'a pas besoin de GPU.
5.4 Vérifier l'installation
ollama --version
→ Tu dois voir un numéro de version (ex: ollama version 0.5.x)
systemctl status ollama
→ Tu dois voir active (running)
Appuie sur q pour quitter l'affichage du statut.
⚠️ Erreur courante : "address already in use"
Si plus tard tu essaies de lancer ollama serve & et tu vois :
Error: listen tcp 127.0.0.1:11434: bind: address already in use
Ce n'est PAS une erreur ! Ça signifie qu'Ollama tourne déjà (via le service système). Tout va bien, continue.
6. Télécharger le modèle d'embeddings
6.1 Télécharger nomic-embed-text
ollama pull nomic-embed-text
Tu verras une barre de progression :
pulling manifest pulling 970aa74c0a90... 100% ▕████████████████▏ 274 MB verifying sha256 digest writing manifest success
Le téléchargement prend 1-5 minutes selon ta connexion.
6.2 Vérifier
ollama list
Tu dois voir :
NAME ID SIZE MODIFIED nomic-embed-text:latest 0a109f422b47 274 MB X seconds ago
7. Installer grepai
7.1 Lancer l'installation
curl -sSL https://raw.githubusercontent.com/yoanbernabeu/grepai/main/install.sh | sh
7.2 Vérifier
grepai version
Tu dois voir un numéro de version (ex: grepai version 0.24.x).
8. Installer Node.js
Les skills Claude Code nécessitent Node.js.
8.1 Vérifier si Node.js est déjà installé
node --version
Si tu vois un numéro de version (ex: v20.x.x) → Passe directement à l'étape 9.
Si tu vois "command not found" → Continue ci-dessous.
8.2 Installer Node.js via nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
nvm install --lts
8.3 Vérifier
node --version
Tu dois voir quelque chose comme v22.x.x.
9. Installer les skills pour Claude Code
Les "skills" sont des instructions qui enseignent à Claude Code comment utiliser grepai.
9.1 Lancer l'installation
npx skills add yoanbernabeu/grepai-skills
9.2 Questions interactives
L'installateur va te poser 4 questions. Voici les réponses :
Question 1 : "Select skills to install"
Tu verras une liste de 27 skills (grepai-languages, grepai-search-basics, etc.)
→ Appuie sur a pour tout sélectionner, puis Entrée
Question 2 : "Which agents do you want to install to?"
Tu verras une liste d'agents (Amp, Claude Code, Cursor, etc.)
→ Utilise les flèches pour aller sur "Claude Code (.claude/skills)" → Appuie sur Espace pour le sélectionner (un ● apparaît) → Appuie sur Entrée
Question 3 : "Installation scope"
● Project (Install in current directory) ○ Global
→ Sélectionne "Global" avec les flèches, puis Entrée
Ça installe les skills pour tous tes projets, pas juste le dossier actuel.
Question 4 : "Install the find-skills skill?"
→ Choisis "Yes"
9.3 Erreur à ignorer
Tu verras peut-être :
■ Failed to install 1 │ │ ✗ find-skills → Replit: Replit does not support global skill installation
Ignore cette erreur. C'est juste pour Replit (que tu n'utilises pas). Les 27 skills grepai sont bien installés.
9.4 Vérifier
ls ~/.claude/skills/ | grep grepai | head -5
Tu dois voir des fichiers grepai-*.
10. Initialiser grepai sur un projet
Prenons un exemple avec un projet fictif "marina-manager" (gestion de bateaux).
10.1 Aller dans ton projet
cd /mnt/c/Users/TonNom/projets/marina-manager
💡 Conversion des chemins Windows → Linux :
10.2 Vérifier que tu es au bon endroit
pwd
→ Affiche le chemin actuel
ls
→ Tu dois voir les fichiers de ton projet
10.3 Initialiser grepai
grepai init
Question : "Select storage backend"
1) gob (local file, recommended for most projects) 2) postgres (pgvector, for large monorepos or shared index) 3) qdrant (Docker-based vector database) Choice [1]:
→ Tape 1 puis Entrée
Le backend gob crée un simple fichier local. C'est le plus simple et le plus rapide.
10.4 Lancer l'indexation
grepai watch
Tu verras :
Starting grepai watch in /mnt/c/Users/TonNom/projets/marina-manager Provider: ollama (nomic-embed-text) Backend: gob Performing initial scan... Indexing [████████████████████] 100% (XXX/XXX) dernier_fichier.php
⚠️ IMPORTANT : La barre à 100% ne signifie PAS que c'est fini !
11. Comprendre et surveiller l'indexation
11.1 Les étapes de l'indexation
L'indexation se fait en plusieurs phases :
ÉtapeDescriptionIndicateur1. ScanListe tous les fichiersBarre de progression2. ChunkingDécoupe le code en morceaux(invisible)3. EmbeddingsOllama analyse chaque morceauCPU actif, logs Ollama4. IndexÉcriture du fichier index.gobFichier apparaît5. SymbolesExtraction des fonctions/classesMessage "Symbol index built"6. TerminéSurveillance des changements"Watching for changes..."
La barre 100% = étape 1 terminée. L'étape 3 (embeddings) prend le plus de temps.
11.2 Temps d'indexation réalistes
Taille du projetFichiersChunks estimésTemps (CPU)Petit< 100~5002-5 minMoyen100-500~200010-20 minGrand500-1000~500030-60 minTrès grand> 1000> 50001h+
⚠️ Note : La documentation officielle dit "quelques minutes", mais c'est probablement testé avec GPU ou cloud. Avec Ollama sur CPU, c'est plus long. C'est normal.
11.3 Surveiller la progression
Garde la console grepai ouverte et ouvre une nouvelle console Ubuntu.
Méthode 1 : Voir si Ollama travaille
journalctl -u ollama -f
Si des lignes défilent avec POST "/api/embeddings" et 200 :
Jan 31 11:22:32 PC ollama[6342]: [GIN] 2026/01/31 - 11:22:32 | 200 | 1.38s | 127.0.0.1 | POST "/api/embeddings"
→ Ça travaille ! Chaque ligne = un chunk traité.
Ctrl+C pour quitter.
Méthode 2 : Surveiller l'apparition de l'index
watch -n 5 'ls -lh ~/projets/marina-manager/.grepai/'
Au début, tu verras seulement config.yaml. Quand l'indexation est terminée, index.gob apparaît (plusieurs Mo).
Ctrl+C pour quitter.
11.4 Message de fin
Quand c'est terminé, tu verras dans la console grepai :
Initial scan complete: 937 files indexed, 5005 chunks created, 0 files removed, 0 skipped (took 56m1.916s) Building symbol index... Symbol index built: 1230 symbols extracted Watching for changes... (Press Ctrl+C to stop)
"Watching for changes..." = C'est terminé ! 🎉
11.5 Pourquoi l'index n'apparaît qu'à la fin ?
grepai attend d'avoir tous les embeddings avant d'écrire le fichier index.gob. C'est pour éviter un index corrompu si le processus est interrompu.
12. Configurer Claude Code pour utiliser grepai
12.1 Le problème
Par défaut, Claude Code utilise ses outils intégrés (Search, Grep) au lieu de grepai. Même avec les skills installés, il faut lui dire d'utiliser grepai.
12.2 La solution : CLAUDE.md
Crée ou modifie le fichier CLAUDE.md à la racine de ton projet :
nano ~/projets/marina-manager/CLAUDE.md
Ajoute ces lignes :
## Recherche de code Ce projet utilise **grepai** (recherche sémantique). Utilise-le en priorité : - `grepai search "description"` — recherche par sens, pas par texte exact - `grepai trace callers "fonction"` — qui appelle cette fonction - `grepai trace callees "fonction"` — ce que la fonction appelle - `grepai trace graph "fonction" --depth 2` — graphe des dépendances Préfère grepai aux outils Search/Grep intégrés pour ce projet.
Sauvegarde : Ctrl+O, Entrée, Ctrl+X
12.3 Tester
Lance Claude Code :
cd ~/projets/marina-manager claude
Demande :
Qu'est-ce qui appelle la fonction calculateMooringFee ?
Claude devrait maintenant exécuter :
● Bash(grepai trace callers "calculateMooringFee")
au lieu de :
● Search(pattern: "calculateMooringFee", ...)
12.4 Comparaison des résultats
Grep classiquegrepai traceFound 2 linesRésultat structuréJuste les occurrencesSéparation production/testsPas de contexteMontre les implémentationsRecherche textuelleComprend le sens
13. Utiliser grepai
13.1 Recherche sémantique
# Chercher par sens, pas par texte exact grepai search "gestion des réservations" grepai search "calcul du prix d'amarrage" grepai search "authentification des utilisateurs" grepai search "envoi de notifications"
13.2 Tracer les appels
# Qui appelle cette fonction ? grepai trace callers "calculateMooringFee" # Qu'est-ce que cette fonction appelle ? grepai trace callees "processReservation" # Graphe complet des dépendances grepai trace graph "BoatService" --depth 2
13.3 Vérifier le statut
grepai status
Affiche :
grepai index status Files indexed: 937 Total chunks: 5005 Index size: 31 MB Last updated: 2 minutes ago Provider: ollama (nomic-embed-text)
13.4 Dans Claude Code
Grâce au CLAUDE.md configuré, tu peux demander naturellement :
- "Trouve le code qui gère les réservations de bateaux"
- "Qu'est-ce qui appelle calculateMooringFee ?"
- "Montre-moi le code d'authentification"
- "Trace les dépendances de la classe Marina"
Claude utilisera automatiquement grepai.
14. Dépannage complet
❌ Erreur : "zstd required" pendant l'installation d'Ollama
ERROR: This version requires zstd for extraction.
Solution :
sudo apt-get install zstd -y curl -fsSL https://ollama.com/install.sh | sh
❌ Erreur : "address already in use"
Error: listen tcp 127.0.0.1:11434: bind: address already in use
Ce n'est PAS une erreur ! Ollama tourne déjà via le service système.
Vérification :
systemctl status ollama
Si tu vois active (running), tout va bien. Continue.
❌ L'index reste à 0 fichiers
grepai status # Files indexed: 0
Cause probable : L'indexation n'est pas terminée. L'index est créé à la fin.
Vérification :
journalctl -u ollama -f
Si des lignes POST /api/embeddings défilent → patiente. Si rien ne défile depuis 1+ minute → il y a un problème.
Solution si bloqué :
# Arrête grepai watch (Ctrl+C dans sa console) rm -rf .grepai/index.gob .grepai/symbols.gob grepai watch
❌ grepai search ne trouve rien
Vérifications :
- L'indexation est-elle terminée ?
grepai status
→ "Files indexed" doit être > 0
- Ollama tourne-t-il ?
curl http://localhost:11434
→ Doit afficher "Ollama is running"
- Le modèle est-il installé ?
ollama list
→ Doit montrer nomic-embed-text
❌ Claude Code n'utilise pas grepai
Symptôme : Claude utilise Search(pattern: ...) au lieu de Bash(grepai ...)
Solution : Ajouter l'instruction dans CLAUDE.md (voir section 12).
Alternative rapide : Demande explicitement :
Exécute la commande : grepai trace callers "maFonction"
❌ "node: command not found"
Solution :
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash source ~/.bashrc nvm install --lts
❌ Indexation très lente
C'est normal pour la première fois. Ollama sur CPU traite ~1-2 chunks/seconde.
Estimation :
- 1000 fichiers ≈ 5000 chunks ≈ 40-80 minutes
Après la première indexation, les mises à jour sont instantanées (seuls les fichiers modifiés sont ré-indexés).
15. Résumé des commandes
Installation complète (copier-coller)
# 1. Prérequis sudo apt update && sudo apt upgrade -y sudo apt-get install zstd -y # 2. Ollama + modèle curl -fsSL https://ollama.com/install.sh | sh ollama pull nomic-embed-text # 3. grepai curl -sSL https://raw.githubusercontent.com/yoanbernabeu/grepai/main/install.sh | sh # 4. Node.js (si pas déjà installé) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash source ~/.bashrc nvm install --lts # 5. Skills Claude Code npx skills add yoanbernabeu/grepai-skills # → Sélectionner tous (a), Claude Code, Global, Yes
Pour chaque nouveau projet
cd /chemin/vers/projet grepai init # Choisir "gob" grepai watch # Laisser tourner jusqu'à "Watching for changes..." nano CLAUDE.md # Ajouter les instructions grepai
Usage quotidien
# Recherche sémantique grepai search "ce que tu cherches" # Tracer les appels grepai trace callers "fonction" grepai trace callees "fonction" # Statut grepai status
Surveillance pendant l'indexation
# Voir si Ollama travaille journalctl -u ollama -f # Surveiller l'apparition de l'index watch -n 5 'ls -lh /chemin/projet/.grepai/'
🎉 Récapitulatif
Tu as installé :
- ✅ Ollama — moteur d'IA local avec démarrage automatique
- ✅ nomic-embed-text — modèle qui comprend le sens du code
- ✅ grepai — recherche sémantique et trace des appels
- ✅ 27 skills — Claude Code utilise grepai automatiquement
Avantages :
- 🔒 100% local — ton code ne quitte jamais ton PC
- 🎯 Recherche par sens — "authentification" trouve validateUser
- 📊 Trace des appels — qui appelle quoi, visualisation des dépendances
- 🤖 Intégration Claude Code — utilisation automatique via les skills
Temps d'indexation : Long la première fois (30-60 min pour ~1000 fichiers), instantané ensuite.
Qui suis je ?
Je suis Mathieu GRENIER, CTO d'Easystrat une startup de Montpellier, en France. Je manage une équipe d'une dizaine d'ingénieurs (Graphistes, IA, frontend, backend, devOps, AWS) en remote depuis le Japon.
J'ai aussi mon activité de freelance, où je conseille des entrepreneurs dans leurs projets d'application.
Avec mon expérience personnelle de plus de 15 ans en ESN, j'ai pu travailler pour un large panel d'entreprises de différentes tailles. Ma compréhension des problèmes métiers est une de mes grandes forces et permet à mes clients de pouvoir se projeter plus facilement.
L'essentiel de mon travail consiste à canaliser l'énergie des entrepreneurs sur l'essence même de leur projet.
La technologie, les méthodes, le management sont le coeur de mes compétences.
Vous pouvez me faire confiance sur ces points là.
Si vous voulez me parler d'un de vos projets, n'hésitez pas à m'envoyer un email avec vos disponibilités à : contact@mathieugrenier.fr
Tous les articles de ce blog sont écrits par moi, même si je peux m'aider de l'IA pour illustrer mes propos. Mais jamais je ne fournis d'articles 100 % IA.
Installation grepai sur WSL2