MemRosetta -- Moteur de mémoire locale à long terme pour les outils d’IA
(github.com/obst2580)Quand on utilise des outils de coding IA (Claude Code, Cursor, Codex, Gemini, etc.), le contexte disparaît à chaque changement de session.
L’architecture décidée hier, les résultats de débogage de la semaine dernière, mon style de code préféré — il faut tout réexpliquer à chaque fois.
MemRosetta est un moteur de mémoire locale à long terme conçu pour résoudre ce problème.
Installation en une ligne :
npm install -g memrosetta && memrosetta init --claude-code
Comment ça marche
Tous les souvenirs sont stockés dans un unique fichier SQLite local (~/.memrosetta/memories.db). Claude Code, Cursor,
Codex et Gemini partagent la même base de données, ce qui permet de retrouver dans un outil les souvenirs enregistrés depuis un autre.
Au lieu de découper les documents en fragments de texte (chunk) comme dans un RAG classique, MemRosetta stocke les données sous forme de souvenirs atomiques (atomic memory).
Un fait correspond à un enregistrement.
// Session du lundi — Claude appelle automatiquement MCP pendant la conversation
store({
"content": "Authentification décidée avec OAuth2 + PKCE",
"memoryType": "decision",
"keywords": ["auth", "oauth2", "pkce"]
})
// Nouvelle session le mardi — Claude effectue une recherche via MCP
search({ "query": "auth" })
→ [0.95] Authentification décidée avec OAuth2 + PKCE (decision, 2026-03-31)
→ [0.82] La limite de débit de l’API est de 100 req/min par utilisateur (fact, 2026-03-31)
→ [0.41] UI de la page de connexion terminée (event, 2026-03-28)
Même avec 100 souvenirs accumulés, le système ne renvoie que les 5 plus pertinents en combinant correspondance par mots-clés, similarité sémantique et score d’activation ACT-R.
C’est proche de la manière dont le cerveau humain rappelle les souvenirs associés — les souvenirs souvent rappelés remontent plus facilement, tandis que ceux qui ne sont pas utilisés depuis longtemps s’estompent naturellement sans disparaître.
Fonctionnalités principales
- Recherche hybride : correspondance par mots-clés FTS5 + similarité sémantique vectorielle + fusion par Convex Combination
- Détection des contradictions : un modèle NLI local (71 MB) détecte automatiquement les contradictions entre un fait nouveau et les souvenirs existants, puis les relie
- Oubli adaptatif : basé sur le modèle ACT-R des sciences cognitives. Les souvenirs recherchés fréquemment voient leur score d’activation augmenter, tandis que ceux qui ne sont pas utilisés s’estompent naturellement (sans être supprimés)
- Modèle temporel : chaque souvenir possède 4 horodatages — date d’enregistrement, date de la conversation, moment de l’événement réel, moment d’invalidation
- Graphe de relations :
updates,extends,derives,contradicts,supports— relie les souvenirs entre eux - Aucun LLM nécessaire : le moteur principal fonctionne localement sans appel d’API externe. Les embeddings (33 MB) et le modèle NLI (71 MB) sont tous deux locaux
Intégration par outil
memrosetta init --claude-code # Claude Code : hooks + CLAUDE.md + MCP
memrosetta init --cursor # Cursor : MCP + .cursorrules
memrosetta init --codex # Codex : config.toml + AGENTS.md
memrosetta init --gemini # Gemini : settings.json + GEMINI.md
Via MCP (Model Context Protocol), l’IA enregistre et recherche directement les souvenirs pendant la session. Dans le cas de Claude Code, Claude enregistre directement via MCP pendant la session (qualité maximale, coût de 0 $), et à la fin de la session, le Stop Hook sert de filet de sécurité pour compléter ce qui aurait pu être manqué.
Comparaison avec les solutions concurrentes
Les solutions de mémoire IA existantes comme Mem0, Zep ou Letta sont basées sur le cloud et dépendent d’un LLM. MemRosetta fonctionne avec un simple SQLite local, et propose des fonctions absentes des solutions existantes, comme la détection de contradictions, le modèle d’oubli ACT-R, le modèle temporel et le graphe de relations.
- GitHub : https://github.com/obst2580/memrosetta
- Site web : https://memrosetta.liliplanet.net
- npm :
npm install -g memrosetta - Plus de 696 tests, licence MIT
1 commentaires
Bonjour, je pense que c’est une bonne idée.
Avez-vous éventuellement envisagé de le distinguer par projet ?