OmniMem
officielUn serveur MCP auto-hébergé qui offre aux agents IA une mémoire persistante entre sessions, projets et machines.
Que pouvez-vous faire avec OmniMem MCP ?
Offrez à votre agent IA une mémoire persistante et auto-hébergée, à travers les sessions, les projets et les machines — demandez-lui de « vérifier le cimetière avant de suggérer une bibliothèque qui a déjà échoué ».
- Briefing de session — Demandez un
briefingpour obtenir le contexte du projet, les statistiques d'expérience, les souvenirs obsolètes, les nouveaux articles et les suggestions de compétences en un seul appel. - Évitez les impasses passées — Faites vérifier le cimetière par l'agent avant de suggérer une bibliothèque ou un modèle qui a déjà échoué.
- Rappelez les décisions passées — Utilisez
recallpour faire remonter les décisions, les correctifs et les modèles des sessions précédentes à travers les projets. - Enregistrez l'expérience durement acquise — Consignez un correctif avec
record_experienceafin que les leçons qui ont demandé un réel effort ressortent plus facilement la prochaine fois. - Dédupliquez les souvenirs — Exécutez
find_duplicatespour signaler et nettoyer en masse les souvenirs stockés quasi identiques. - Sauvegardez votre mémoire — Exportez tout dans un fichier JSON que vous possédez avec
dump_to_file.
Documentation
Self-hosted semantic memory for AI Agents. Persistent sessions, experience scoring, and a graveyard for dead ends, backed by knowledge acquired from the RSS you read and stored in a Valkey vector search then exposed as an MCP server. https://omnimem.org
<OmniMem>omnimem.org
Le développement se fait sur Codeberg — merci d'y déposer les issues et les PR.
Arrêtez de revivre deux fois la même session.
Chaque session Claude Code démarre de zéro. Aucune mémoire de votre projet. Aucune mémoire de ce qui a échoué la semaine dernière. Aucune mémoire que vous avez passé trois heures mardi dernier à découvrir pourquoi onnxruntime explose sur Alpine avant de trouver quelque chose qui fonctionne réellement.
Alors vous réexpliquez le projet. Claude suggère à nouveau la même bibliothèque cassée. Même alarme. Même chanson. Vous êtes Bill Murray et Claude est Punxsutawney.
OmniMem corrige cela. C'est un serveur MCP auto-hébergé qui donne à votre agent IA une mémoire persistante à travers les sessions, les projets et les machines. Il tourne sur votre propre matériel et il est gratuit pour toujours.
claude> use onnxruntime for the embeddings
⚠ WARNING: previously abandoned approach
onnxruntime — SIGILL crash on Alpine musl libc (effort: 4/5)
→ switched to sentence-transformers instead
Cet avertissement venait de la mémoire, pas de la chance. L'erreur que vous avez déjà payée n'a pas le droit de vous facturer deux fois.
Démarrez rapidement
Astuce
Une seule commande fait tourner toute la pile à partir des images Docker Hub pré-construites :
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bashPuis pointez votre agent dessus — le démarrage rapide vous guide pour le reste, ou passez directement à la section démarrage rapide plus complète ci-dessous.
Ce qu'il mémorise
Cinq types de mémoire, tous recherchés ensemble au moment du rappel :
- Épisodique — les décisions que vous avez prises, les bugs que vous avez corrigés, les schémas que vous avez découverts. Les choses qui ont demandé un réel effort d'apprentissage et qui ne devraient pas avoir à être réapprises chaque matin.
- Contexte projet — votre pile, vos objectifs et votre état actuel. L'agent arrive à chaque session déjà informé plutôt que de démarrer à froid.
- Connaissances — les flux RSS que vous configurez, récupérés selon un planning, résumés par Claude Haiku, intégrés et stockés. Quand un article pertinent est arrivé la semaine dernière, il remonte comme point de départ digne d'intérêt.
- Préférences — des règles prescriptives sur la façon dont vous voulez travailler (« mettez toujours à jour le README après l'arrivée d'une fonctionnalité »), extraites automatiquement de vos conversations et remontées dès qu'elles s'appliquent.
- Compétences — des documents SKILL.md compilés à partir de votre expérience accumulée dans un domaine, pour que l'agent travaille à votre manière dès la première invite. Dérivés des autres espaces de noms, jamais édités à la main, et chaque modification passe par votre relecture. Voir le compilateur de compétences. Le meilleur résultat de rappel peut être une décision prise il y a six mois sur un autre projet, une solution d'hier, ou un article publié mardi soir. Peu importe d'où il vient, du moment qu'il est utile.
Ce qui le rend différent
Pas seulement un magasin clé-valeur avec une enveloppe MCP. OmniMem modélise la façon dont la mémoire fonctionne réellement : les choses s'estompent avec le temps, elles se contredisent parfois, et ce qui a été durement acquis gagne sa place.
- Le cimetière — chaque impasse est consignée avec ce que vous avez essayé, pourquoi cela a échoué et le temps que vous y avez perdu. L'agent le consulte avant de suggérer une bibliothèque ou un modèle.
- Score d'expérience — quelque chose qui a nécessité quatre tentatives et une solution de contournement étrange de la plateforme est de l'or. Plus c'était difficile, plus cela remonte facilement la prochaine fois.
- Cycle de vie de la mémoire —
ACTIVE → DEPRIORITISED → ARCHIVED → DELETED. « Oublie X » signifie généralement arrêter d'en parler, pas l'effacer de l'existence. Les souvenirs déprioritisés peuvent regagner leur place. - Détection de contradictions — si un nouveau souvenir contredit quelque chose de stocké, OmniMem le détecte. Heuristique rapide à chaque écriture, analyse plus approfondie optionnelle via Claude Haiku.
- Déduplication sémantique — les souvenirs quasi identiques sont signalés à l'écriture et nettoyés en masse avec
find_duplicates(). - Briefing en un appel — un seul
briefing()renvoie le contexte du projet, les statistiques d'expérience, les souvenirs obsolètes, les nouveaux articles, les avertissements de contradiction et les suggestions de compétences. Pas d'échauffement en trois étapes. - Le compilateur de compétences — distille les leçons renforcées et les impasses en compétences chargeables, derrière une porte de proposition et d'acceptation afin que les mauvaises leçons ne puissent pas devenir une politique en silence.
- Maintenance automatique — doublons archivés, contradictions signalées, connaissances expirées nettoyées, tout en arrière-plan.
- Interface Web — parcourez, recherchez et gérez tout depuis un tableau de bord htmx, avec télémétrie et un point de terminaison Prometheus
/metrics.
La formule de classement derrière chaque rappel :
score = similarity x surface_score x recency x experience_weight
Quatre facteurs décident de ce qui revient. La similarité sémantique seule ne suffit pas — l'état du cycle de vie, l'âge et la difficulté d'apprentissage de la leçon jouent tous un rôle.
Fonctionne avec n'importe quel agent MCP
Une seule couche mémoire pour tous : claude.ai, Claude Code, Claude Desktop, Cursor, GitHub Copilot, GitLab Duo, AWS Kiro, OpenCode, OpenAI Codex CLI et Open Design.
Architecture
Quatre conteneurs. Rien ne quitte votre machine. Embeddings locaux via sentence-transformers, stockage dans Valkey avec recherche vectorielle, et les deux portes d'entrée partagent le même moteur mémoire.
flowchart TB
agent["AI agent<br/>Claude Code · claude.ai · Cursor · Copilot · ..."]
browser["Browser"]
agent -- "MCP · Streamable HTTP / SSE · :8765" --> mcp
browser -- "HTTP · :8080" --> webui
subgraph stack["Docker Compose stack"]
mcp["MCP server<br/>Python · FastMCP<br/><i>remember · recall · briefing<br/>compile_skill · record_experience</i>"]
webui["Web UI<br/>Starlette · htmx · Jinja2<br/><i>dashboard · search · skills<br/>projects · backups · /metrics</i>"]
rss["RSS worker<br/>feedparser · APScheduler<br/>Claude Haiku summaries"]
valkey[("Valkey + valkey-search<br/>HNSW vector indexes<br/><i>idx:episodic · idx:project · idx:knowledge<br/>idx:preference · idx:skill</i>")]
mcp <--> valkey
webui <--> valkey
rss --> valkey
end
Le tableau complet — le pipeline de rappel, le modèle de stockage et les décisions de conception — se trouve dans docs/architecture.md.
Auto-hébergé, open source, à vous
Pas de SaaS. Pas de dépendance à un fournisseur. Aucun contexte envoyé sur les serveurs de quelqu'un d'autre.
- Valkey est un fork open source de Redis. Toutes vos données restent dans un volume Docker nommé sur votre propre machine.
- Images Docker multi-architectures pour amd64 et arm64. Il fonctionne sur un Raspberry Pi, AWS Graviton ou Apple Silicon aussi bien que sur x86.
- sentence-transformers exécute les embeddings localement sans appels API.
- Licence MIT signifie que vous pouvez le forker, l'étendre et l'exécuter où vous voulez.
- Une commande de sauvegarde appelle
dump_to_file()et exporte tout dans un fichier JSON qui vous appartient.
Exposez le port MCP via votre proxy inverse et chaque machine depuis laquelle vous travaillez partage la même mémoire. Un seul déploiement, partout — voir docs/remote-access.md.
Démarrage rapide
L'installateur vérifie que Docker est installé, génère des mots de passe sécurisés, écrit un .env raisonnable et démarre tout à partir des images Docker Hub pré-construites :
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash
Ou compilez à partir des sources :
git clone https://codeberg.org/ric_harvey/omnimem.git && cd omnimem
cp .env.example .env
# Set VALKEY_PASSWORD and ANTHROPIC_API_KEY in .env
docker compose up -d
Puis pointez votre agent vers lui — Claude Code (~/.claude.json) :
{
"mcpServers": {
"omnimem": {
"type": "sse",
"url": "http://localhost:8765/sse"
}
}
}
Le serveur fournit son guide d'utilisation à tout agent qui se connecte automatiquement via le champ MCP instructions — aucun fichier de configuration nécessaire. Le tableau de bord web se trouve à http://localhost:8080.
La procédure complète, y compris les jetons d'authentification, les paramètres de permission et les autres agents, se trouve dans docs/quick-start.md.
Documentation
| Démarrage rapide | Installateur, compilation à partir des sources, connexion de votre agent |
| Fonctionnalités en détail | Cycle de vie, cimetière, score d'expérience, déduplication, contradictions, briefing |
| Le compilateur de compétences | Compilation de l'expérience en compétences chargeables |
| Référence des outils MCP | Les 30+ outils |
| Référence de configuration | Chaque variable d'environnement |
| RSS & connaissances | Ingestion passive de connaissances et promotion |
| Plusieurs machines | Proxy inverse, OAuth 2.1 pour claude.ai, dépannage |
| Interface Web | Le tableau de bord de gestion et les métriques Prometheus |
| Architecture | Conteneurs, pipeline de rappel, décisions de conception |
| Spécifications des types de mémoire | Le modèle de stockage, champ par champ |
| Guides de connexion | Configuration par agent |
| Guides de déploiement | macOS · Raspberry Pi · AWS · GCP · Linux + Tailscale Funnel |
Spécifications de stockage par espace de noms, si vous voulez savoir exactement ce qui est écrit dans Valkey et par qui : aperçu · épisodique · projet · connaissances · préférence · compétence
Contribution
Les issues et les PR sont les bienvenus. Le développement se fait sur Codeberg — issues et PR là-bas, s'il vous plaît. OmniMem est conçu pour être étendu et le pipeline de scoring est structuré pour que de nouveaux multiplicateurs puissent être ajoutés sans toucher au cœur. De nouveaux outils MCP, des types d'espaces de noms supplémentaires et des backends d'embedding alternatifs sont toutes des directions raisonnables.
Licence
MIT. Libre d'utilisation, de fork et de modification. Pas de niveau entreprise, pas de version hébergée, aucune condition.
Construit par Ric Harvey @ SquareCows Ltd, un cabinet de conseil en IA et automatisation pour ceux qui préfèrent posséder leurs outils.