OmniMem
offiziellEin selbst gehosteter MCP-Server, der KI-Agenten persistenten Speicher über Sitzungen, Projekte und Maschinen hinweg bietet.
Was kann man mit OmniMem MCP machen?
- Persistenter Sitzungsspeicher — Bitten Sie Ihren Assistenten, wichtige Entscheidungen und Lektionen zu
remember, damit diese über Sitzungen, Projekte und Maschinen hinweg erhalten bleiben. - Abruf mit Kontext — Verwenden Sie
recall, um relevante Erinnerungen abzurufen, die nach Ähnlichkeit, Aktualität und Erfahrungsgewicht sortiert sind, bevor Sie neue Arbeiten beginnen. - Ein-Aufruf-Sitzungsbriefing — Erhalten Sie ein vollständiges
briefing()mit Projektkontext, veralteten Erinnerungen, neuen Artikeln und Fähigkeitsvorschlägen in einem einzigen Aufruf. - Vergangene Sackgassen vermeiden — Prüfen Sie den Friedhof, bevor Sie Bibliotheken oder Muster vorschlagen, um Ansätze zu überspringen, die bereits fehlgeschlagen sind.
- Wiederverwendbare Fähigkeiten kompilieren — Verwandeln Sie verstärkte Lektionen in ladbare
compile_skill-Vorschläge, die vor der Aktivierung Ihre Überprüfung durchlaufen. - Speicher exportieren — Sichern Sie alles mit
dump_to_file()in eine JSON-Datei, die vollständig in Ihrem Besitz liegt.
Dokumentation
Self-hosted semantischer Speicher für KI-Agenten. Permanente Sitzungen, Erfahrungsbewertung und ein Friedhof für Sackgassen, unterstützt durch Wissen aus den RSS-Feeds, die du liest, gespeichert in einer Valkey-Vektorsuche und als MCP-Server bereitgestellt. https://omnimem.org
omnimem.org
Die Entwicklung findet auf Codeberg statt – bitte Issues und PRs dort melden.
Hör auf, dieselbe Sitzung zweimal zu erleben.
Jede Claude-Code-Sitzung beginnt bei null. Keine Erinnerung an dein Projekt. Keine Erinnerung daran, was letzte Woche fehlgeschlagen ist. Keine Erinnerung daran, dass du letzten Dienstag drei Stunden damit verbracht hast herauszufinden, warum onnxruntime auf Alpine explodiert, bevor du etwas gefunden hast, das tatsächlich funktioniert.
Also erklärst du das Projekt erneut. Claude schlägt wieder dieselbe kaputte Bibliothek vor. Derselbe Alarm. Dasselbe Lied. Du bist Bill Murray und Claude ist Punxsutawney.
OmniMem behebt das. Es ist ein selbst gehosteter MCP-Server, der deinem KI-Agenten dauerhaftes Gedächtnis über Sitzungen, Projekte und Maschinen hinweg gibt. Er läuft auf deiner eigenen Hardware und ist für immer kostenlos.
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
Diese Warnung kam aus dem Gedächtnis, nicht aus Glück. Der Fehler, für den du bereits bezahlt hast, darf dich nicht zweimal kosten.
Schnell loslegen
Tipp
Ein Befehl bringt den gesamten Stack mit den vorgefertigten Docker-Hub-Images zum Laufen:
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bashDann richte deinen Agenten darauf aus – der Schnellstart führt durch den Rest, oder springe zum ausführlicheren Schnellstart-Abschnitt unten.
Woran es sich erinnert
Fünf Arten von Gedächtnis, die beim Abruf alle zusammen durchsucht werden:
- Episodisch – die Entscheidungen, die du getroffen hast, die Fehler, die du behoben hast, die Muster, die du entdeckt hast. Die Dinge, deren Erlernen echte Anstrengung gekostet hat und die nicht jeden Morgen neu gelernt werden sollten.
- Projektkontext – dein Stack, deine Ziele und der aktuelle Stand. Der Agent kommt bei jeder Sitzung bereits eingewiesen an, statt kalt zu starten.
- Wissen – RSS-Feeds, die du konfigurierst, planmäßig abgerufen, von Claude Haiku zusammengefasst, eingebettet und gespeichert. Wenn letzte Woche ein relevanter Artikel erschienen ist, taucht er als Ausgangspunkt auf, den es zu lesen lohnt.
- Präferenzen – vorschreibende Regeln, wie du arbeiten möchtest („aktualisiere immer die README, nachdem ein Feature fertig ist“), automatisch aus deinen Gesprächen extrahiert und immer dann angezeigt, wenn sie zutreffen.
- Fähigkeiten – SKILL.md-Dokumente, die aus deiner gesammelten Erfahrung in einem Bereich kompiliert werden, damit der Agent von der ersten Eingabe an auf deine Weise arbeitet. Abgeleitet aus den anderen Namensräumen, niemals manuell bearbeitet, und jede Änderung geht durch deine Überprüfung. Siehe den Skill-Compiler. Das beste Abrufergebnis könnte eine Entscheidung von vor sechs Monaten aus einem anderen Projekt sein, eine Lösung von gestern oder ein Artikel, der Dienstagnacht eingetroffen ist. Es spielt keine Rolle, woher es kommt, solange es nützlich ist.
Was es anders macht
Nicht nur ein Key-Value-Store mit einem MCP-Wrapper. OmniMem modelliert, wie Gedächtnis tatsächlich funktioniert: Dinge verblassen mit der Zeit, sie widersprechen sich manchmal, und das hart Erarbeitete verdient sich seinen Platz.
- The Graveyard — jede Sackgasse wird protokolliert mit dem, was du versucht hast, warum es fehlschlug und wie viel Zeit du verbrannt hast. Der Agent prüft es, bevor er eine Bibliothek oder ein Muster vorschlägt.
- Experience scoring — etwas, das vier Versuche und einen seltsamen Plattform-Workaround erforderte, ist Gold. Je schwieriger es war, desto leichter taucht es beim nächsten Mal auf.
- Memory lifecycle —
ACTIVE → DEPRIORITISED → ARCHIVED → DELETED. „Vergiss X“ bedeutet normalerweise, es nicht mehr zu erwähnen, nicht es aus der Existenz zu löschen. Herabgestufte Erinnerungen können sich ihren Weg zurück verdienen. - Contradiction detection — wenn eine neue Erinnerung mit etwas Gespeichertem nicht übereinstimmt, erkennt OmniMem es. Schnelle Heuristik bei jedem Schreiben, optionale tiefere Analyse über Claude Haiku.
- Semantic deduplication — nahezu identische Erinnerungen werden beim Schreiben markiert und mit
find_duplicates()in großen Mengen bereinigt. - One-call briefing — ein einzelner
briefing()liefert Projektkontext, Erfahrungsstatistiken, veraltete Erinnerungen, neue Artikel, Widerspruchswarnungen und Fähigkeitsvorschläge. Kein dreistufiges Aufwärmen. - The skill compiler — destilliert verstärkte Lektionen und Sackgassen in ladbare Fähigkeiten, hinter einem Vorschlagen-und-Annehmen-Gate, damit schlechte Lektionen nicht stillschweigend zur Richtlinie werden.
- Auto-maintenance — Duplikate archiviert, Widersprüche markiert, abgelaufenes Wissen bereinigt, alles im Hintergrund.
- Web UI — durchsuchen, suchen und verwalten Sie alles über ein htmx-Dashboard, mit Telemetrie und einem Prometheus
/metricsEndpunkt.
Die Ranking-Formel hinter jedem Abruf:
score = similarity x surface_score x recency x experience_weight
Vier Faktoren entscheiden, was zurückkommt. Semantische Ähnlichkeit allein reicht nicht — Lebenszyklusstatus, Alter und wie schwer die Lektion zu lernen war, spielen alle eine Rolle.
Funktioniert mit jedem MCP-Agenten
Eine Gedächtnisschicht für alle: claude.ai, Claude Code, Claude Desktop, Cursor, GitHub Copilot, GitLab Duo, AWS Kiro, OpenCode, OpenAI Codex CLI und Open Design.
Architektur
Vier Container. Nichts verlässt deinen Rechner. Lokale Embeddings über sentence-transformers, Speicherung in Valkey mit Vektorsuche, und beide Fronttüren teilen sich dieselbe Gedächtnis-Engine.
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
Das vollständige Bild — die Abruf-Pipeline, das Speichermodell und die Designentscheidungen — finden Sie in docs/architecture.md.
Selbst gehostet, Open Source, deins
Kein SaaS. Keine Anbieterbindung. Kein Kontext, der an fremde Server geschickt wird.
- Valkey ist ein Open-Source-Redis-Fork. Alle deine Daten bleiben in einem benannten Docker-Volume auf deinem eigenen Rechner.
- Multi-Arch-Docker-Images für amd64 und arm64. Es läuft auf einem Raspberry Pi, AWS Graviton oder Apple Silicon genauso gut wie auf x86.
- sentence-transformers führt Embeddings lokal aus, ohne API-Aufrufe.
- MIT-lizenziert bedeutet: Forken, erweitern, überall ausführen, wo du willst.
- Ein Backup-Befehl ruft
dump_to_file()auf und exportiert alles in eine JSON-Datei, die dir gehört.
Setze den MCP-Port über deinen Reverse-Proxy frei, und jeder Rechner, von dem du arbeitest, teilt sich dasselbe Gedächtnis. Eine Bereitstellung, überall — siehe docs/remote-access.md.
Schnellstart
Das Installationsprogramm prüft, ob Docker installiert ist, generiert sichere Passwörter, schreibt eine sinnvolle .env und startet alles aus den vorgefertigten Docker-Hub-Images:
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash
Oder aus dem Quellcode bauen:
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
Dann richte deinen Agenten darauf aus — Claude Code (~/.claude.json):
{
"mcpServers": {
"omnimem": {
"type": "sse",
"url": "http://localhost:8765/sse"
}
}
}
Der Server liefert seinen Nutzungsleitfaden automatisch an jeden verbindenden Agenten über das MCP instructions Feld — keine Konfigurationsdatei erforderlich. Das Web-Dashboard befindet sich unter http://localhost:8080.
Die vollständige Anleitung, einschließlich Authentifizierungstokens, Berechtigungseinstellungen und der anderen Agenten, finden Sie in docs/quick-start.md.
Dokumentation
| Quick start | Installationsprogramm, Bauen aus dem Quellcode, Verbinden deines Agenten |
| Features in depth | Lebenszyklus, Friedhof, Erfahrungsbewertung, Deduplizierung, Widersprüche, Briefing |
| The skill compiler | Erfahrung in ladbare Fähigkeiten kompilieren |
| MCP tool reference | Alle 30+ Werkzeuge |
| Configuration reference | Jede Umgebungsvariable |
| RSS & knowledge | Passive Wissensaufnahme und -förderung |
| Multiple machines | Reverse-Proxy, OAuth 2.1 für claude.ai, Fehlerbehebung |
| Web UI | Das Verwaltungs-Dashboard und Prometheus-Metriken |
| Architecture | Container, Abruf-Pipeline, Designentscheidungen |
| Memory type specs | Das Speichermodell, Feld für Feld |
| Connection guides | Einrichtung pro Agent |
| Bereitstellungsanleitungen | macOS · Raspberry Pi · AWS · GCP · Linux + Tailscale Funnel |
Spezifikationen für die Speicherung pro Namespace, wenn du genau wissen willst, was in Valkey geschrieben wird und von wem: overview · episodic · project · knowledge · preference · skill
Mitwirken
Issues und PRs sind willkommen. Die Entwicklung findet auf Codeberg statt — bitte Issues und PRs dort. OmniMem ist so konzipiert, dass es erweitert werden kann, und die Bewertungs-Pipeline ist so strukturiert, dass neue Multiplikatoren hinzugefügt werden können, ohne den Kern zu berühren. Neue MCP-Werkzeuge, zusätzliche Namespace-Typen und alternative Embedding-Backends sind alles sinnvolle Richtungen.
Lizenz
MIT. Frei zu verwenden, zu forken und zu modifizieren. Keine Enterprise-Stufe, keine gehostete Version, keine Bedingungen.
Erstellt von Ric Harvey @ SquareCows Ltd, einer KI- und Automatisierungsberatung für Menschen, die ihre Werkzeuge lieber selbst besitzen.