toon-memoryPropulsé par TOON

La couche de continuité pour les agents IA

Le savoir de votre agent survit à chaque session — hors ligne, privé, zéro LLM.

Fonctionne avec
OpenCodeClaudeCursorCodexVS Code
+10 autres
~/.toon-memory

$npm install -g toon-memory

Pourquoi les agents perdent-ils le contexte entre les sessions ?

Les agents de code IA commencent chaque session avec une amnésie

Le contexte se réinitialise quotidiennement

À chaque nouvelle session, votre agent oublie les décisions, motifs et bugs appris hier. Vous réexpliquez le même contexte encore et encore.

Chercher dans l'historique

Sans mémoire, les agents fouillent l'historique git et relisent les fichiers pour reconstruire pourquoi quelque chose a été construit d'une certaine façon — en brûlant des tokens et du temps.

Notes copier-coller

Les développeurs collent le contexte manuellement entre les chats. C'est fragile, ça devient obsolète et n'arrive jamais à la prochaine exécution autonome.

toon-memory donne à votre agent une mémoire persistante et interrogeable — le contexte survit automatiquement à chaque session.

Découvrez toon-memory

La couche de continuité pour votre flux de travail

Une mémoire stocke des faits ; une couche de continuité préserve le fonctionnement de votre projet — pour que chaque session commence là où la précédente s'est arrêtée.

Décisions

Le « pourquoi » derrière chaque choix — frameworks, bibliothèques, compromis. Rappelé quand il compte, jamais re-débattu.

📏

Conventions

Règles de nommage, de structure et de style adoptées par votre équipe. Respectées sans être répétées.

Contexte

Connaissances d'architecture, d'environnement et d'exploitation qui ne vivent dans aucun fichier unique.

🤝

Compréhension partagée

Connaissances du projet et décisions d'équipe disponibles pour chaque agent et chaque session.

toon-memory introduit le concept de couche de continuité : un système léger qui préserve le savoir, les décisions et le contexte d'un projet entre les sessions IA — sans services cloud ni infrastructure lourde.

Pourquoi les développeurs choisissent toon-memory

Privé, léger, universel

Les garanties qui rendent la mémoire du projet sûre à conserver.

Confidentialité d'abord

  • 100% local — aucun cloud, aucun serveur, aucune télémétrie
  • Chiffrement AES-256-GCM optionnel
  • Vous possédez le fichier mémoire, comme n'importe quel fichier source

Léger

  • Format TOON natif — 22% de tokens en moins que JSON
  • Zéro dépendance, fonctionne sur tout Node.js 18+
  • Logique déterministe — aucun appel LLM, aucune clé API
🛰️

Universel

  • Fonctionne avec 15+ agents : Claude Code, Codex, Gemini CLI, Cursor, OpenCode et plus
  • MCP standard — changez d'agent sans perdre le contexte
  • Mémoire par projet partagée par toute l'équipe

Même projet. Deux sessions.

Ce que votre agent retient change le résultat.

Sans toon-memory
Session 1
Utilise Sequelize.
OK.
Conservé dans le contexte de session — les tokens s'accumulent.
Session 2
Quel est notre ORM ?
Aucune mémoire entre les sessions.
Je ne sais pas.
Avec toon-memory
Session 1
Utilise Sequelize.
$ memory_remember({ category: "decision", key: "orm:sequelize", content: "Utiliser Sequelize comme ORM" })
OK.
Enregistré en mémoire.
Session 2
Quel est notre ORM ?
Rappelé de la mémoire.
Vous utilisez Sequelize.

Benchmarks

Mesuré, pas supposé

Économies de tokens et d'appels mesurées sur une session réelle

auto-loading
~90%

moins de tokens

25 → 5
80%

moins d'appels

recall compact
68%

moins de tokens

system primer
58%

moins de tokens

compression par lot
14%

moins de tokens

Format TOON

Le format TOON est conçu pour les LLMs, pas pour les humains

Métrique
moins de tokens que JSON22.5%
sur une seule entrée30.5%
plus rapide à parser1.3x

JSON 1097TOON 850

Mesuré avec gpt-tokenizer (cl100k_base) sur 16 entrées de mémoire représentatives, comparant le format TOON réel sur disque au JSON compact. Reproductible : npm run bench.

Qualité du classement

Recherche type LongMemEval sur un snapshot figé de 187 entrées réelles — 42 gold queries

MétriqueLinéaireRRFUnifié
R@5· entrée gold dans le top 50.6430.8610.829
nDCG@5· qualité du classement0.6540.7640.739
MRR@5· position du bon résultat0.7760.7880.760
97,6 % des requêtes répondues depuis le top-5

Snapshot réel de data.toon (187 entrées, 2026-08-01), today déterministe, lecture seule et sans copies ; 2 méta-entrées priority exclues. Reproductible : npm run bench:retrieval.

Auto-loading : le plugin OpenCode injecte uniquement la mémoire pertinente au fichier au lieu de vider toutes les entrées. Session complète : démarrage → débogage → implémentation → révision → clôture. Reproductible : npm run bench:full, npm run bench:primer, npm run bench:compress-all.

Comment ça marche ?

Quatre étapes de l'amnésie à la mémoire

1

Installer

Une commande. Zéro configuration pour 15+ agents.

npm install -g toon-memory
2

Mémoriser

Enregistrez décisions, motifs et bugs au fur et à mesure — avec inférence automatique de tags et TTL optionnel.

memory_remember({
  category: "decision",
  key: "use-zod",
  content: "Use Zod for validation",
  file: "src/types.ts"
})
3

Rappeler

Votre agent interroge la mémoire à la demande — plus besoin de réexpliquer, plus de tokens gaspillés.

memory_recall({ query: "validation" })
// [decision] use-zod (a1b2c3d4)
//   Use Zod for validation — src/types.ts
4

Contexte

Un seul appel donne à votre agent tout : projet, git, mémoire, sessions. 80% moins d'appels d'outil.

context_generate({})
// # Project Briefing (full)
// ## Project — toon-memory v2.6.0
// ## Git — branch: main, 3 commits
// ## Memory — 26 entries, 18 edges
// ## Sessions — 2 active

Multi-agent

Fonctionne avec tous les principaux agents de code IA. OpenCode, VS Code, Claude, Cursor, Windsurf, Cline, Continue — zéro configuration.

OpenCodeClaudeCursor

Format TOON

22% de tokens en moins que JSON (mesuré). Encodage personnalisé conçu pour la compréhension des LLMs et l'efficacité des tokens.

22% moins de tokens1.3x plus rapide à parser

Rappel intelligent

Rappel basé sur le graph, rerangé par pertinence BM25 et centralité du graph (les hubs émergent même sans le mot de recherche). La décroissance par hop maintient le contexte distant bas. Le mode `compact` retourne des résultats avec indices numériques et extraits tronqués.

BM25Centralitécompact

Mémoire intelligente

Inférence automatique de tags à partir d'un vocabulaire intégré et des dépendances du projet, notation de qualité, scores de confiance, merge-dedup, suggestions d'entrées liées, diff de mémoire et TTL configurable pour le contexte temporaire.

Auto-tagsQualitéMerge-dedup

Chiffrement

AES-256-GCM pour les données sensibles. Archivage automatique des anciennes entrées. Mode watch pour sauvegarde automatique toutes les N minutes.

AES-256-GCMAuto-backup

Votre mémoire, en graphe

Connectez les décisions à leurs specs, bugs et architecture. Le rappel retourne le bon contexte — pas seulement les correspondances de mots.

  • Connectez les entrées avec `links` ou références `[[key]]` — sans embeddings, sans LLM
  • `memory_recall({ mode: "graph" })` étend un sous-graphe conscient des relations
standard1097 tokens
memory_recall({ query: "riesgo", mode: "graph" })
[decision] risk-engine-priority (a1b2c3d4)
  The engine prioritizes risk over speed.
  File: spec.md:10 | Tags: risk;spec | Date: 2026-07-01
  links: engine-arch
compact: true~520 tokens
memory_recall({ query: "riesgo", mode: "graph", compact: true })
[1] decision/risk-engine-priority
  The engine prioritizes risk over speed.
  tags: risk;spec · edges: ->2, ->3
Dans la visionneuse :
RechercheRecherche de cheminExport PNG / SVGThèmes clair & sombre

Visionneuse du graphe de mémoire

Visualisez votre mémoire sous forme de graphe interactif à force dirigée. Voyez entrées, connexions, catégories et schémas d'accès d'un coup d'œil.

  • Visionneuse CLI : npx toon-memory viewer démarre un serveur HTTP
  • Visionneuse inline MCP Apps : appelez memory_visualize() pour rendre le graphe directement dans les hôtes compatibles MCP Apps — sans serveur
  • Survolez les nœuds pour des infobulles avec aperçu du contenu et score de qualité
  • Cliquez pour sélectionner et centrer ; double-cliquez pour ouvrir les détails
  • La recherche filtre les entrées et met en évidence les nœuds correspondants avec une lueur pulsante
  • Le chercheur de chemins trouve et met en évidence la connexion la plus courte entre deux entrées
  • Physique ajustable, thème sombre/clair, export PNG/SVG

Un kit mémoire

Tout ce dont votre agent a besoin pour mémoriser, rappeler et raisonner

Mémoire Principale

memory_remember

Enregistrer en mémoire

Stockez décisions, motifs, bugs, connaissances ou warnings (mémoires négatives « ne PAS faire ceci », rappelées avec un boost) — persistant entre les sessions avec notation de qualité automatique.

memory_recall

Rechercher en mémoire

Interrogez le graphe de connaissances avant de lire les fichiers. Résultats pondérés par la qualité. Prend en charge path_scope et le contrôle de budget (tiny/normal/deep). explain: true ajoute une ligne de raison par entrée ; budget_tokens plafonne la sortie par tokens estimés.

memory_stats

Statistiques

Affiche les statistiques de la mémoire du projet, incluant la distribution de qualité, les entrées les plus consultées et les métriques de taux d'accès/doublons/obsolètes.

Recherche & Intelligence

memory_smart_recall

Rappel intelligent

Recherche unifiée combinant BM25 + centralité + qualité + fraîcheur en un seul appel. Prend en charge explain: true (raisons par entrée) et budget_tokens (limite de sortie).

memory_consolidate

Consolider

Fusionne les entrées en doublon avec un contenu identique, détecte les quasi-doublons via similarité de Jaccard (>50%), supprime par lot les entrées de faible qualité ou retire les entrées d'anciennes versions de bibliothèque (mode: "versions") — via le paramètre mode, sans LLM.

Briefing Contexte

context_generate

Brief complet du projet

Brief en un appel : structure du projet + état git + mémoire + sessions. Remplace 6 appels manuels. Économise 93% de tokens.

context_health

Audit santé

Liens orphelins, doublons, références cassées, TTL expirés, sessions obsolètes. Score 0–100.

Compression

memory_compress

Compression LLM

Compression en deux étapes par LLM : résumer + écraser. Utilise Anthropic/OpenAI CLI si disponible.

memory_primer

Amorce de contexte

Amorce de contexte en un appel : mémoires principales + catégories + modifications de fichiers de session. Injecté automatiquement au début de la session.

Sessions

memory_sessions

Sessions

Affiche les sessions agent actives et détecte les conflits doux.

memory_merge_sessions

Fusionner les sessions

Fusionne les observations entre sessions parallèles pour un fichier. Déduplique et promeut automatiquement.

Synchronisation & Sécurité

memory_encrypt

Activer le chiffrement

Chiffrement AES-256-GCM avec clé auto-générée.

memory_backup

Sauvegarder la mémoire

Crée une sauvegarde horodatée du fichier mémoire. Auto-nettoyage aux 10 plus récents.

Ressources :memory-entriesmemory-statsmemory-summariesmemory-viewer (ui://viewer)

Fonctionne avec 15+ agents de code IA

Zéro configuration — toon-memory détecte et configure chacun automatiquement

OpenCodeOpenCode
VS Code / CopilotVS Code / Copilot
ClaudeClaude
CursorCursor
WindsurfWindsurf
ClineCline
ContinueContinue
CodexCodex
GeminiGemini
ZedZed
AntigravityAntigravity
AiderAider
KiloCodeKiloCode
OpenClawOpenClaw
KiroKiro

Foire aux questions

Tout ce que vous devez savoir pour donner une mémoire à votre agent

Qu'est-ce que toon-memory ?

Une couche de mémoire persistante pour les agents de code IA avec 35 outils MCP. Elle stocke les décisions, motifs, bugs et contexte dans un format TOON compact pour que votre agent se souvienne de tout entre les sessions — avec 80% moins d'appels d'outil par session.

Quels agents sont supportés ?

OpenCode, VS Code, Claude Code, Cursor, Windsurf, Cline, Continue, Codex, Gemini, Zed, Antigravity, Aider, KiloCode, OpenClaw et Kiro — 15+ agents avec zéro configuration via le serveur MCP.

Comment mes données sont-elles stockées ?

Les entrées sont écrites dans un fichier TOON local (un format économe en tokens ~22% plus petit que JSON, mesuré). Vous possédez le fichier et pouvez le commit, le differ ou le sauvegarder comme n'importe quel autre fichier source.

Ma mémoire est-elle chiffrée ?

Oui. Activez le chiffrement avec l'outil memory_encrypt pour sécuriser les entrées sensibles avec AES-256-GCM. La clé est générée automatiquement et conservée localement.

Ça fonctionne hors ligne ?

Complètement. toon-memory tourne localement sans services externes ni comptes. Le mode watch crée même des sauvegardes automatiques selon un calendrier.

Plusieurs agents peuvent-ils partager la même mémoire ?

Oui. Comme la mémoire vit dans un fichier simple de votre projet, chaque agent configuré pour ce projet lit et écrit le même contexte.

Comment sauvegarder ma mémoire ?

Utilisez le mode watch pour des sauvegardes automatiques programmées, ou commitez simplement le fichier TOON dans git. Les anciennes entrées sont auto-archivées après 30 jours pour garder les choses propres.

C'est gratuit et open source ?

Oui. toon-memory est sous licence MIT et gratuit. Le code source est sur GitHub et le package est publié sur npm.

Comment est-ce différent de la mémoire intégrée de mon agent ?

La mémoire intégrée est souvent éphémère ou spécifique au fournisseur. toon-memory vous donne un fichier mémoire portable, diffable et chiffré que vous contrôlez totalement — entre agents et projets.

Puis-je faire expirer le contexte temporaire ?

Oui. Définissez un TTL (ex : ttl: "7d") sur n'importe quelle entrée et elle expire automatiquement — parfait pour les sprints, échéances et notes sensibles au temps.

Qu'est-ce que le rappel intelligent ?

memory_smart_recall combine la recherche BM25 par mots-clés, la centralité du graphe, la notation de qualité et la décroissance de fraîcheur en un seul appel — le meilleur de toutes les stratégies de classement sans orchestration manuelle.

Comment fonctionne la notation de qualité ?

Chaque entrée reçoit automatiquement un score de qualité (0-1) basé sur la couverture des tags, la richesse des liens, le détail du contenu, la fraîcheur et la spécificité. Les entrées de haute qualité apparaissent en premier dans les résultats de rappel.

Que se passe-t-il si j'enregistre la même clé deux fois ?

Le système fusionne les attributs au lieu de remplacer : les tags et liens sont unis, la qualité et la confiance prennent le maximum, et la date est mise à jour. Votre entrée s'enrichit avec le temps.

Que se passe-t-il si j'enregistre la même clé deux fois ?

Le système fusionne les attributs au lieu de remplacer : les tags et liens sont unis, la qualité et la confiance prennent le maximum, et la date est mise à jour. Votre entrée s'enrichit avec le temps.

Qu'est-ce que la compression mémoire ?

memory_compress permet à un LLM de résumer des entrées similaires en un résumé concis. memory_consolidate(mode: "low-quality") supprime les entrées de faible qualité (pas de tags, contenu court) de manière déterministe — sans LLM. Les deux réduisent le nombre de tokens.

Puis-je synchroniser la mémoire entre machines ?

Oui. Utilisez memory_export_gist pour pousser les entrées vers un GitHub Gist, puis memory_import_gist sur une autre machine. Les entrées fusionnent automatiquement (union des tags, confiance maximale).

Prêt à donner de la continuité à votre agent ?

Installez en quelques secondes et ne réexpliquez plus jamais votre projet.