◈ Article

claude-mem : la mémoire persistante de Claude Code

Claude Code · Mémoire & Contexte · Niveau intermédiaire

claude-mem est un plugin qui donne à Claude Code une mémoire qui survit à la fermeture du terminal. Il capture automatiquement ce que tu fais pendant tes sessions, le compresse en résumés, et réinjecte le contexte utile au démarrage de la session suivante. Tu ne réexpliques plus ton projet à chaque fois.

Le problème qu'il règle

Claude Code n'a aucune mémoire native entre deux sessions. Tu fermes le terminal, tout est perdu. La session d'après, tu repasses cinq à dix minutes à réexpliquer ton stack, tes conventions, les décisions déjà prises et les pistes déjà écartées. Sur un projet qui dure, ce temps s'accumule — et tu paies ces tokens à chaque fois.

Installation

Une seule commande, depuis n'importe quel terminal :

npx claude-mem install

Ou depuis Claude Code, via la marketplace de plugins :

/plugin marketplace add thedotmack/claude-mem /plugin install claude-mem

Redémarre Claude Code. À partir de la session suivante, le contexte des sessions précédentes remonte tout seul.

⚠️ Le piège qui coûte une heure

Ne fais pas npm install -g claude-mem. Le paquet existe bien sur npm, mais il n'installe que la bibliothèque : aucun hook n'est enregistré, le worker ne démarre pas, et rien n'est jamais capturé. Tu crois que c'est installé, la base reste vide. Passe par npx claude-mem install ou par /plugin.

Ce qui tourne réellement une fois installé

  • 5 hooks de cycle de vie — SessionStart, UserPromptSubmit, PostToolUse, Stop, SessionEnd
  • Un worker HTTP local — sur le port 37700, avec une interface web pour voir le flux mémoire en direct
  • Une base SQLite — sessions, observations, résumés, dans ~/.claude-mem/
  • Une base vectorielle Chroma — recherche hybride sémantique + mots-clés
  • Le skill mem-search — pour interroger l'historique en langage naturel

Prérequis : Node 20 minimum. Bun et uv sont installés automatiquement s'ils manquent.

Vérifier que ça capture vraiment

C'est l'étape que tout le monde saute. Le worker peut tourner pendant des jours avec une base vide sans jamais te prévenir. Vérifie l'état réel :

curl -s http://localhost:37700/api/health curl -s http://localhost:37700/api/stats

/api/stats te renvoie le nombre d'observations, de sessions et de résumés stockés. Si "observations": 0 après plusieurs vraies sessions de travail, rien n'est capturé — inutile d'attendre.

Chercher dans la mémoire

En pratique tu passes par le skill mem-search et tu poses ta question en français (« on avait réglé ça comment la dernière fois ? »). En direct, l'API répond aussi :

curl -s "http://localhost:37700/api/search?query=authentification&limit=5"
⚡ La recherche se fait en 3 couches

C'est le cœur du truc et ça explique pourquoi claude-mem ne fait pas exploser ton contexte : search renvoie un index compact avec des IDs (~50-100 tokens par résultat), timeline replace un résultat dans son contexte chronologique, et get_observations ne va chercher le détail complet (~500-1000 tokens) que pour les IDs que tu as retenus. On filtre avant de charger — environ 10× de tokens économisés par rapport à tout rapatrier.

Deux pièges sous Linux

  • Le trousseau — claude-mem lit le token OAuth de Claude Code dans le trousseau système. Sans secret-tool dans le PATH (paquet libsecret-tools), la lecture échoue et l'IA de compression ne s'authentifie pas. Le log dit Linux libsecret lookup failed.
  • Le démarrage du worker — au premier lancement, il répond souvent « health endpoint not responding within window ». Il démarre encore en arrière-plan, ce n'est pas une panne. Laisse-lui quelques secondes avant de conclure.

En cas de doute, les logs datés sont dans ~/.claude-mem/logs/ et disent exactement ce qui se passe.

Ce à quoi t'attendre

  • Le contexte du projet remonte seul en début de session, sans que tu le demandes
  • Tu peux demander « qu'est-ce qu'on a fait la semaine dernière ? » et obtenir une vraie réponse
  • Zéro intervention manuelle : pas de fichier à tenir à jour
  • Les passages entourés de balises <private> sont exclus du stockage
💡 L'autre approche, à la main

claude-mem automatise tout via une base de données. L'approche inverse — cinq fichiers Markdown que tu écris et relis toi-même — est détaillée dans Les 5 couches mémoire de Claude Code. Plus de contrôle, plus de discipline. Les deux se combinent très bien : claude-mem pour l'historique, les 5 couches pour les décisions que tu veux figer.

◈ Voir claude-mem sur GitHub
← Retour aux ressources