Mulch + Graphify — Le guide complet

avril 2026 · 7 min de lecture

Deux outils pour que ton IA ne reparte plus de zéro à chaque session.


Le problème

Tu codes avec Claude Code ou un autre agent. Il trouve un pattern, comprend ton archi, évite un bug. Session suivante : il a tout oublié. Tu réexpliques. Il refait les mêmes erreurs.

Mulch et Graphify règlent ça, chacun à sa façon.


Mulch — La mémoire persistante de ton projet

C'est quoi

Mulch est un outil CLI qui stocke les apprentissages de ton projet dans des fichiers JSONL versionnés avec git. Ton agent écrit dedans, relit au démarrage. L'expertise s'accumule d'une session à l'autre.

Aucun LLM là-dedans. Mulch ne fait pas d'appels IA — c'est juste du stockage structuré que tes agents lisent et écrivent.

Install

bun install -g @os-eco/mulch-cli

Ou sans installer :

npx @os-eco/mulch-cli --help

Démarrage en 3 commandes

ml init                    # crée le dossier .mulch/ dans ton projet
ml setup claude            # configure Claude Code pour utiliser Mulch automatiquement
ml prime                   # charge tout le contexte accumulé (à lancer en début de session)

Enregistrer un apprentissage

# Une convention découverte
ml record database --type convention "Toujours utiliser WAL mode pour SQLite"

# Un bug rencontré et résolu
ml record database --type failure \
  --description "VACUUM dans une transaction cause une corruption silencieuse" \
  --resolution "Toujours lancer VACUUM hors des boundaries de transaction"

# Une décision d'architecture
ml record api --type decision \
  --title "SQLite plutôt que PostgreSQL" \
  --rationale "Produit local uniquement, pas de dépendance réseau acceptable"

# Un pattern réutilisable
ml record auth --type pattern \
  --name "Token refresh silencieux" \
  --description "Intercepter 401, rafraîchir le token, rejouer la requête originale"

Les 6 types d'enregistrement

Type Usage
convention Règles de style ou de pratique dans ce projet
pattern Patterns nommés et réutilisables
failure Ce qui a foiré + comment l'éviter
decision Décisions archi avec la raison
reference Pointeurs vers des fichiers/endpoints clés
guide Procédures pas-à-pas pour des tâches récurrentes

Consulter l'expertise accumulée

ml query               # tout le projet
ml query database      # un domaine spécifique
ml search "sqlite"     # recherche cross-domaines (BM25)
ml status              # état de fraîcheur des domaines

Le workflow complet (pour Claude Code)

# Début de session
ml prime               # ton agent charge le contexte

# ... tu travailles ...

# Fin de session
ml learn               # voir ce qui a changé
ml record <domaine> --type <type> --description "..."
ml sync                # valide + commit les changements .mulch/

Structure dans ton projet

.mulch/
├── expertise/
│   ├── database.jsonl    # tout ce que ton agent a appris sur la DB
│   ├── api.jsonl         # apprentissages API
│   └── auth.jsonl        # un fichier par domaine
└── mulch.config.yaml     # config et liste des domaines

Tout est versionné avec git. Un teammate clone le repo → son agent a immédiatement l'expertise accumulée.

Multi-agents en parallèle

Mulch est conçu pour plusieurs agents qui écrivent en même temps :

  • File locking — verrou par fichier, retry 50ms, timeout 5s
  • Atomic writes — écriture dans un temp puis rename atomique
  • Merge strategymerge=union dans .gitattributes pour que les branches parallèles se mergent sans conflit

Graphify — La carte de ton codebase

C'est quoi

Graphify transforme n'importe quel dossier de fichiers (code, docs, PDFs, images, vidéos) en un graphe de connaissance interactif. Il te donne la structure que tu ne savais pas qu'il y avait.

Install

pip install graphifyy && graphify install

Puis dans Claude Code :

/graphify .

Ce que ça produit

graphify-out/
├── graph.html         graphe interactif cliquable (nodes, search, filtres)
├── GRAPH_REPORT.md    god nodes, connexions surprenantes, questions suggérées
├── graph.json         graphe persistant — requêtable plus tard sans tout re-lire
└── cache/             cache SHA256 — re-runs ne traitent que les fichiers modifiés

Comment ça marche

Graphify fait 3 passes :

  1. AST déterministe — extrait la structure du code (classes, fonctions, imports, call graphs) sans LLM
  2. Transcription audio/vidéo — via faster-whisper en local, avec un prompt dérivé des god nodes du corpus
  3. Agents Claude en parallèle — sur les docs, PDFs, images pour extraire concepts et relations

Chaque relation est taguée :

  • EXTRACTED — trouvé directement dans le source
  • INFERRED — inférence raisonnable avec score de confiance
  • AMBIGUOUS — flaggé pour review

Clustering par topologie de graphe, pas par embeddings. Leiden community detection sur les edges. Pas de vector DB.

Commandes principales

# Lancer sur un dossier
/graphify .
/graphify ./raw --mode deep        # extraction plus agressive
/graphify ./raw --update           # re-traite seulement les fichiers modifiés
/graphify ./raw --directed         # graphe dirigé (préserve source→target)

# Ajouter une source externe
/graphify add https://arxiv.org/abs/...          # paper
/graphify add https://youtube.com/watch?v=...    # vidéo (transcription Whisper)
/graphify add https://x.com/...                 # tweet

# Requêter le graphe
/graphify query "what connects auth to the optimizer?"
/graphify path "DigestAuth" "Response"
/graphify explain "attention mechanism"

# Incrémenter
/graphify --cluster-only           # reclustering sans re-extraction
/graphify --no-viz                 # juste rapport + JSON, pas d'HTML

Intégrer dans Claude Code (always-on)

graphify install          # installe le hook PreToolUse dans settings.json

Claude voit alors avant chaque Glob/Grep : "graphify: Knowledge graph exists. Read GRAPH_REPORT.md before searching raw files." — il navigue par le graphe plutôt que de grepper tout.

Utiliser graph.json avec un LLM

Ne pas coller graph.json entier dans le prompt. Le bon workflow :

# 1. Lire GRAPH_REPORT.md pour l'overview
# 2. Requêter un sous-graphe sur ta question précise
graphify query "show the auth flow" --graph graphify-out/graph.json

# 3. Donner ce sous-graphe focalisé à ton assistant

Mode MCP (pour agents avancés)

python -m graphify.serve graphify-out/graph.json

Expose le graphe en MCP server avec les outils : query_graph, get_node, get_neighbors, shortest_path.

20 langages supportés

Python, JS, TS, Go, Rust, Java, C, C++, Ruby, C#, Kotlin, Scala, PHP, Swift, Lua, Zig, PowerShell, Elixir, Objective-C, Julia.


Mulch vs Graphify — quand utiliser quoi

Mulch Graphify
Quoi Mémoire des apprentissages Carte structurelle du code
Format JSONL typés (conventions, failures, décisions...) Graphe de nœuds et d'edges
LLM Non Oui (Claude pour extraction)
Persistance Git-native, incrémental Fichiers dans graphify-out/
Usage principal "Mon agent ne doit pas refaire cette erreur" "Comprendre vite une codebase inconnue"
Multi-agent Natif (file locking) Parallel subagents pour extraction

Les deux se complètent. Mulch garde ce que ton équipe a appris. Graphify révèle la structure de ce qui existe.


Ressources

Ce guide vient de Build With Nath

La communauté est gratuite. J’y publie ces guides au fil de l’eau et on y répond aux questions.

Autres guides · Guides

Vous dirigez une entreprise et vous voulez savoir lequel de vos process mérite ce genre de traitement ? Le diagnostic vous le dit en trois minutes, ou on en parle trente minutes.