Installation grepai sur WSL2

La recherche sémantique pour vos projets de code

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

  1. Clique sur le menu Démarrer Windows
  2. Tape "Ubuntu"
  3. 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 :

  1. L'indexation est-elle terminée ?
grepai status 

→ "Files indexed" doit être > 0

  1. Ollama tourne-t-il ?
curl http://localhost:11434 

→ Doit afficher "Ollama is running"

  1. 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.

Mathieu Grenier 6 février 2026
Partager cet articlE