Skip to main content
Glama

memem

Dauerhaftes, sich selbst entwickelndes Gedächtnis für Claude Code. Hören Sie auf, Ihr Projekt in jeder Sitzung neu zu erklären.

CI memem MCP server License: MIT Python 3.11+

Für die Entdeckung von LLM/KI-Tools siehe llms.txt.

  ███╗   ███╗███████╗███╗   ███╗███████╗███╗   ███╗
  ████╗ ████║██╔════╝████╗ ████║██╔════╝████╗ ████║
  ██╔████╔██║█████╗  ██╔████╔██║█████╗  ██╔████╔██║
  ██║╚██╔╝██║██╔══╝  ██║╚██╔╝██║██╔══╝  ██║╚██╔╝██║
  ██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║
  ╚═╝     ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚═╝     ╚═╝
  persistent memory for Claude Code

Was ist memem?

memem ist ein Claude Code-Plugin, das Claude einen dauerhaften Speicher über Sitzungen hinweg verleiht. Ein Hintergrund-Miner extrahiert dauerhafte Lektionen (Entscheidungen, Konventionen, Fehlerbehebungen, Präferenzen) aus Ihren abgeschlossenen Sitzungen, speichert sie als Markdown in einem Obsidian-Vault und blendet automatisch relevante Informationen zu Beginn jeder neuen Sitzung über ein abfrageorientiertes Briefing ein.

Es ist Local-First: keine Cloud-Dienste, keine API-Schlüssel erforderlich, kein Vendor-Lock-in. Alles befindet sich unter ~/obsidian-brain/memem/memories/ als menschenlesbares Markdown.

Wann sollte ich memem verwenden?

Verwenden Sie memem, wenn:

  • Sie Claude Code täglich nutzen und Ihr Projekt in jeder neuen Sitzung immer wieder neu erklären müssen

  • Sie ein dauerhaftes Gedächtnis wünschen, das Sie als Markdown durchsuchen und bearbeiten können

  • Sie Local-First-Tools ohne Vendor-Lock-in mögen

  • Sie bereits Obsidian verwenden (memem lässt sich direkt in Ihren Vault integrieren)

Überspringen Sie memem, wenn:

  • CLAUDE.md für Sie gut funktioniert und Sie keinen Hintergrund-Daemon möchten

  • Sie einen Cloud-synchronisierten Speicher über mehrere Geräte hinweg benötigen (memem ist nur lokal)

  • Sie Python < 3.11 verwenden

Wie unterscheidet sich memem von CLAUDE.md?

CLAUDE.md ist eine einzelne, manuell bearbeitete Datei pro Projekt. memem bietet Ihnen:

  • Automatische Extraktion — kein manuelles Notieren, der Miner erfasst Lektionen aus jeder abgeschlossenen Sitzung

  • Abfragebewusster Kontext — nur die für Ihre aktuelle Frage relevanten Erinnerungen werden eingefügt, kein statischer Dump

  • Selbstentwicklung — Erinnerungen werden automatisch zusammengeführt, aktualisiert und als veraltet markiert, während sich Ihr Projekt weiterentwickelt

  • Projektübergreifend — funktioniert über jedes Claude Code-Projekt hinweg, das Sie verwenden, nicht auf ein Repo beschränkt

  • Sicherheitsscan — jeder Schreibvorgang wird auf Prompt-Injection und das Abfließen von Anmeldedaten gescannt

  • Durchsuchbar — Obsidian-Vault mit Graph-Ansicht und Backlinks kostenlos inklusive

Wie installiere ich memem?

/plugin marketplace add TT-Wang/memem
/plugin install memem

Das ist alles. Beim ersten Ausführen repariert sich bootstrap.sh selbst:

  1. Überprüft Python ≥ 3.11

  2. Installiert uv, falls es fehlt (über den offiziellen Astral-Installer)

  3. Synchronisiert Abhängigkeiten in ein Plugin-lokales .venv (hash-gecached gegen uv.lock)

  4. Erstellt und testet ~/.memem/ und ~/obsidian-brain/

  5. Schreibt ~/.memem/.capabilities (verwendet für Entscheidungen im eingeschränkten Modus)

  6. Führt den eigentlichen MCP-Server aus

Erster Durchlauf: ~5 Sekunden. Jeder weitere Durchlauf: ~100ms. Kein separater pip install-Schritt erforderlich.

Was passiert bei meiner ersten Claude Code-Sitzung?

Sie geben Ihre erste Nachricht ein. Der UserPromptSubmit-Hook wird ausgelöst und sieht keine Erinnerungen (da Sie es gerade erst installiert haben), also fügt er ein Willkommensbanner in Claudes Kontext ein. Claude liest das Banner, teilt Ihnen mit, dass memem aktiv ist, und bietet an – falls Sie bereits frühere Claude Code-Sitzungen haben –, diese über /memem-mine-history zu minen.

Sie arbeiten normal weiter. Der Miner-Daemon läuft im Hintergrund. Wenn Ihre Sitzung endet und 5 Minuten inaktiv bleibt, extrahiert der Miner Erinnerungen aus dem Transkript mithilfe von Claude Haiku und schreibt sie in Ihren Vault.

Ab Sitzung 2: Der Hook sendet Ihre erste Nachricht an context_assemble, was Haiku die relevanten Erinnerungen gibt und es bittet, ein maßgeschneidertes Briefing zu erstellen. Sie sehen ein Statusbanner wie [memem] 12 memories · miner OK · assembly OK, gefolgt vom Briefing. Claude beginnt mit vollem Kontext – kein erneutes Erklären.

Was speichert memem?

Es speichert dauerhaftes Wissen, keine Sitzungsprotokolle:

  • Architekturentscheidungen mit Begründung („wir verwenden RS256 JWTs, weil …“)

  • Konventionen („Tests gehören in tests/ nicht spec/“)

  • Fehlerbehebungen, die Sie vergessen könnten („bcrypt.compare ist asynchron – muss await verwendet werden“)

  • Benutzerpräferenzen („bevorzuge einzelne Commits, keine gestapelten PRs“)

  • Bekannte Probleme („JWT_SECRET ist standardmäßig 'secret', wenn nicht gesetzt – nachverfolgt in #123“)

Es speichert NICHT:

  • Rohe Sitzungstranskripte (diese sind über transcript_search durchsuchbar, nicht als Erinnerungen gespeichert)

  • Triviale oder offensichtliche Fakten

  • Sitzungsergebnisse („heute habe ich an X gearbeitet“)

Wo speichert memem meine Erinnerungen?

Speicher

Pfad

Zweck

Erinnerungen

~/obsidian-brain/memem/memories/*.md

Quelle der Wahrheit (menschenlesbares Markdown)

Playbooks

~/obsidian-brain/memem/playbooks/*.md

Projektbezogene kuratierte Briefings

Such-DB

~/.memem/search.db

SQLite FTS5-Index (maschinenschnelle Suche)

Telemetrie

~/.memem/telemetry.json

Zugriffsverfolgung (atomare Schreibvorgänge)

Ereignisprotokoll

~/.memem/events.jsonl

Nur-Anhängen-Audit-Trail

Fähigkeiten

~/.memem/.capabilities

Flags für den eingeschränkten Modus, geschrieben durch Bootstrap

Bootstrap-Log

~/.memem/bootstrap.log

Diagnose beim ersten Start

Sie können memem über die Umgebungsvariablen MEMEM_DIR und MEMEM_OBSIDIAN_VAULT auf andere Pfade verweisen.

Welche MCP-Tools kann Claude aufrufen?

Tool

Was es tut

memory_save(content, title, tags)

Speichert eine Lektion. Sicherheitsgeprüft auf Prompt-Injection und Datenabfluss vor dem Schreiben.

memory_recall(query, limit)

Durchsucht Erinnerungen. FTS5 + zeitlicher Zerfall + Zugriffshäufigkeit + Wichtigkeitsgewichtung.

memory_list(scope_id)

Listet alle Erinnerungen mit Statistiken auf, gruppiert nach Projekt.

memory_import(source_path)

Massenimport aus Dateien, Verzeichnissen oder Chat-Exporten.

transcript_search(query)

Durchsucht rohe Claude Code-Sitzungs-JSONL-Logs (nicht die geminten Erinnerungen).

context_assemble(query, project)

On-Demand abfrageorientiertes Briefing aus Playbooks + Erinnerungen + Transkripten.

Welche Slash-Befehle fügt memem hinzu?

  • /memem — Willkommen, Status, Hilfe

  • /memem-status — Anzahl der Erinnerungen, Projekte, Größe der Such-DB, Miner-Status

  • /memem-doctor — Gesundheitscheck vor dem Start mit Anweisungen zur Fehlerbehebung bei Blockern

  • /memem-mine — Startet den Miner-Daemon manuell (startet normalerweise automatisch)

  • /memem-mine-history — Opt-in: Mint alle Ihre Claude Code-Sitzungen vor der Installation

Was ist, wenn die claude CLI nicht in meinem PATH ist?

memem wechselt in den eingeschränkten Modus – es funktioniert weiterhin, nur ohne Haiku-gestützte Kontextzusammenstellung und intelligente Erinnerung. Sie erhalten stattdessen nur eine FTS-basierte Stichwortsuche anstelle von abfrageorientierten Briefings. Jede Sitzung zeigt oben im Kontext [memem] N memories · miner OK · assembly degraded (claude CLI missing — FTS-only recall) an, damit Sie wissen, warum.

Dies ist beabsichtigt: Fehlende optionale Abhängigkeiten sollten zu einer Verschlechterung der Funktionalität führen, nicht zum Absturz.

Wie diagnostiziere ich Probleme?

Führen Sie /memem-doctor aus. Es führt denselben Preflight-Check aus wie das Bootstrap-Shim (Python-Version, mcp importierbar, claude CLI im PATH, Verzeichnisschreibrechte, uv verfügbar) und gibt dann einen Bericht aus, der als HEALTHY, DEGRADED oder FAILING gekennzeichnet ist, mit expliziten Anweisungen zur Fehlerbehebung für jeden Blocker.

Für tiefergehende Fehlerbehebung:

tail -f ~/.memem/bootstrap.log   # first-run shim log
tail -f ~/.memem/miner.log       # miner daemon log
cat ~/.memem/events.jsonl        # memory operation audit trail
python3 -m memem.server --status   # detailed status dump

Wie funktioniert die Mining-Pipeline?

Session ends → miner daemon sees the JSONL file in ~/.claude/projects/
  → Waits 5 minutes for the file to "settle" (no more writes)
  → Filters to human messages + assistant prose (strips tool calls, system reminders)
  → One Haiku call with the full context: "extract durable lessons"
  → Haiku returns JSON array of memory candidates
  → Each candidate runs: security scan → dedup check → contradiction detection → save
  → Index rebuilt, per-project playbooks grown and refined
  → Session marked COMPLETE in ~/.memem/.mined_sessions

Wie funktioniert die Recall-Pipeline?

First message in a new session → auto-recall.sh hook fires
  → Reads ~/.memem/.capabilities for status banner
  → If claude CLI is available → sends (message, memories) to Haiku
      → Haiku synthesizes a focused briefing (300-800 tokens usually)
      → Brief injected into Claude's context as "memem context briefing"
  → If claude CLI is missing → falls back to FTS-only keyword recall
  → Either way, Claude starts its reply with relevant context already loaded

Architektur

memem ist in kleine, fokussierte Module unterteilt:

  • models.py — Datentypen, Pfadkonstanten

  • security.py — Prompt-Injection + Scan auf Anmeldedatenabfluss

  • telemetry.py — Zugriffsverfolgung, Ereignisprotokoll (atomare Schreibvorgänge, fcntl-gesperrt)

  • search_index.py — SQLite FTS5-Index

  • obsidian_store.py — Speicher-I/O, Deduplizierungs-Scoring, Widerspruchserkennung

  • playbook.py — Wachstum + Verfeinerung von projektbezogenen Playbooks

  • assembly.py — Kontextzusammenstellung via Haiku

  • capabilities.py — Laufzeit-Funktionserkennung für den eingeschränkten Modus

  • storage.py — Hilfsprogramme für den Server-Lebenszyklus (PID-Management, Miner-Autostart)

  • server.py — Schlanker MCP-Einstiegspunkt (FastMCP wird verzögert importiert)

  • cli.py — Befehls-Dispatcher für Nicht-MCP-Einstiegspunkte

  • mining.py — Sitzungs-Mining-Pipeline

Multi-Signal-Recall-Scoring:

  • 50% FTS-Relevanz

  • 15% Aktualität (0.995^Stunden Zerfall)

  • 15% Zugriffshistorie (Nutzungsverstärkung)

  • 20% Wichtigkeit (1-5 Skala von Haiku)

Speicherschema (Markdown-Frontmatter):

---
id: uuid
schema_version: 1
title: "descriptive title"
project: project-name
tags: [mined, project-name]
related: [id1, id2, id3]
created: 2026-04-13
updated: 2026-04-13
source_type: mined | user | import
source_session: abc12345
importance: 1-5
status: active | deprecated
valid_to:                     # set when deprecated
contradicts: [id1]            # flagged conflicts
---

Konfiguration

Umgebungsvariable

Standard

Zweck

MEMEM_DIR

~/.memem

Zustandsverzeichnis (PID-Dateien, Such-DB, Logs)

MEMEM_OBSIDIAN_VAULT

~/obsidian-brain

Vault-Speicherort

MEMEM_EXTRA_SESSION_DIRS

(keine)

Doppelpunkt-getrennte zusätzliche Sitzungsverzeichnisse zum Minen

MEMEM_MINER_SETTLE_SECONDS

300

Sekunden Wartezeit vor dem Minen einer abgeschlossenen Sitzung

MEMEM_SKIP_SYNC

0

Bootstrap überspringt uv sync, wenn auf 1 gesetzt (nur für Entwicklung)

Obsidian einrichten (optional, empfohlen)

memem funktioniert auch ohne Obsidian – es schreibt einfach Markdown. Aber Obsidian bietet Ihnen kostenlos eine Graph-Ansicht und Backlinks:

  1. Download: https://obsidian.md (kostenlos)

  2. Öffnen Sie ~/obsidian-brain als Vault

  3. Erinnerungen erscheinen in memem/memories/, Playbooks in memem/playbooks/

  4. Verwenden Sie die Graph-Ansicht, um zu sehen, wie Erinnerungen über das Feld related verknüpft sind

Anforderungen

  • Claude Code

  • Python ≥ 3.11

  • uv (wird beim ersten Ausführen automatisch durch bootstrap.sh installiert)

  • claude CLI im PATH (optional – erforderlich für Haiku-gestützte Zusammenstellung; eingeschränkter Modus funktioniert auch ohne)

Entwicklung

git clone https://github.com/TT-Wang/memem.git
cd memem
pip install -e ".[dev]"
pytest             # 54 tests
ruff check .       # lint
mypy memem # type check (strict)

Siehe CONTRIBUTING.md für den PR-Prozess und CHANGELOG.md für die Versionshistorie.

Lizenz

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TT-Wang/cortex-plugin'

If you have feedback or need assistance with the MCP directory API, please join our Discord server