Memory in Claude Code bedeutet Kontext, der über Sessions hinweg bestehen bleibt. Anders als das Konversationsfenster, das zurückgesetzt wird, werden Memory-Dateien bei jedem Start von Claude Code automatisch geladen. Dieses Modul erklärt die Hierarchie der Memory-Dateien, wie du sie erstellst und aktualisierst und wie Auto-Memory im Hintergrund funktioniert.
Die Memory-Hierarchie
Claude Code hat zwei Haupt-Memory-Systeme: CLAUDE.md -Dateien, die du schreibst, und Auto-Memory, das Claude für sich selbst schreibt. Offiziell dokumentierte CLAUDE.md Speicherorte sind Managed Policy (organisationsweit), Projektanweisungen (CLAUDE.md oder .claude/CLAUDE.md), Benutzeranweisungen (~/.claude/CLAUDE.md) und lokale Anweisungen (./CLAUDE.local.md — persönlich, projektspezifisch, gitignored).
Projekt-Memory ist das, was du am häufigsten nutzen wirst. Es ist eine Markdown-Datei, die in git committet und mit deinem Team geteilt wird. Trage hier deinen Tech-Stack, Namenskonventionen, häufige Befehle und nicht offensichtliche Fallstricke ein. User-Memory ist für persönliche Vorlieben, die über all deine Projekte hinweg gelten — deine bevorzugten Muster, wie du Code erklärt haben möchtest, Tools, die du immer nutzt.
In der Praxis: Nutze Projekt-Memory für alles, was ein Teamkollege braucht, um die Codebase zu verstehen — Setup-Schritte, Test-Befehle, Architekturentscheidungen. Nutze User-Memory dafür, wie du persönlich gerne arbeitest, nicht dafür, was das Projekt tut. Wenn ein Projekt-Memory-Eintrag nur für dich relevant ist (zum Beispiel ein eigener Alias oder ein lokaler Shortcut), trage ihn in CLAUDE.local.md ein, damit er privat bleibt.
Bei größeren Projekten teile die Anweisungen in .claude/rules/*.md Dateien auf. Regeln können global für das Projekt gelten oder per Frontmatter auf Pfade beschränkt sein. Eine Regel mit paths: src/api/**/*.ts wird nur aktiv, wenn Claude mit passenden Dateien arbeitet:
---
paths: src/api/**/*.ts
---
All API endpoints must validate input with Zod. Return 400 with field-level errors on validation failure.
Pfad-basierte Regeln werden ausgelöst, wenn Claude Dateien liest, die zum Muster passen, nicht bei jeder Tool-Nutzung, die diese Dateien betrifft. Regeln ohne ein paths -Feld werden beim Start mit derselben Priorität geladen wie .claude/CLAUDE.md. Zirkuläre Symlinks werden erkannt und sauber behandelt.
Memory erstellen und aktualisieren
Der schnellste Weg zum Einstieg ist /init. Führe es in deinem Projektverzeichnis aus, und Claude analysiert die Codebase und generiert eine Start- CLAUDE.md. Nutze CLAUDE_CODE_NEW_INIT=1 claude für einen interaktiven, mehrphasigen Setup-Ablauf.
Für größere Änderungen öffnet /memory deine Memory-Dateien in deinem System-Editor. Nimm Änderungen vor, speichere, und Claude lädt sie automatisch neu. Wenn du möchtest, dass Claude sich etwas automatisch merkt, bitte es in natürlicher Sprache, etwa „merk dir, dass die API-Tests Redis benötigen.“ Wenn du möchtest, dass es in CLAUDE.md, bitte Claude ausdrücklich, es dort hinzuzufügen. Die @path/to/file -Import-Syntax lässt dich vorhandene Dokumentation referenzieren, statt sie zu duplizieren:
# Project Standards
@README.md
@docs/architecture.md
@package.json
Imports unterstützen eine maximale Tiefe von vier Hops. Erstmalige Imports aus externen Pfaden lösen einen Bestätigungsdialog aus.
Auto Memory
Auto-Memory ist ein Verzeichnis, in das Claude während der Sessions seine eigenen Notizen schreibt — entdeckte Muster, projektspezifische Verhaltensweisen, Debugging-Erkenntnisse. Die ersten 200 Zeilen oder 25 KB von ~/.claude/projects/<project>/memory/MEMORY.md, je nachdem, was zuerst kommt, werden beim Session-Start automatisch geladen. Zusätzliche Themendateien (debugging.md, api-conventions.md) werden bei Bedarf geladen.
Subagents können auch ihr eigenes Auto-Memory pflegen. Siehe Subagent-Konfiguration für Details.
Du musst Auto-Memory nicht manuell pflegen; Claude erledigt die Schreibvorgänge selbst. Du kannst die Dateien lesen und bearbeiten, wenn du Claudes Notizen korrigieren oder ergänzen möchtest. Du kannst es umschalten in /memory, es für eine Session deaktivieren mit CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 claude, oder setze autoMemoryEnabled in den Einstellungen. Um das Verzeichnis an einen synchronisierten Ort oder einen eigenen Pfad zu verschieben, setze autoMemoryDirectory in den User-Einstellungen (nicht in Projekt- oder lokalen Einstellungen — Projekt- und lokale Einstellungen können Schreibvorgänge an sensible Orte umleiten und werden nicht akzeptiert):
{
"autoMemoryEnabled": true,
"autoMemoryDirectory": "/path/to/shared/memory"
}
In großen Monorepos mit vielen CLAUDE.md -Dateien, nutze claudeMdExcludes in den Einstellungen, um irrelevante zu überspringen:
{
"claudeMdExcludes": ["packages/legacy-app/CLAUDE.md", "vendors/**/CLAUDE.md"]
}
CLAUDE.md und CLAUDE.local.md -Dateien in der Verzeichnishierarchie oberhalb des Arbeitsverzeichnisses werden beim Start vollständig geladen. Dateien in Unterverzeichnissen werden bei Bedarf geladen, wenn Claude Dateien in diesen Verzeichnissen liest. In Monorepos claudeMdExcludes hilft dabei, nicht zusammenhängende Anweisungen aus dem Kontext herauszuhalten.
Effektive Anweisungen schreiben
Die Kontextfenster-Visualisierung zeigt, wo CLAUDE.md relativ zum Rest des Startup-Kontexts geladen wird. Nutze sie, um zu verstehen, wie viel Platz deine Anweisungen einnehmen. Ziele auf unter 200 Zeilen pro CLAUDE.md-Datei — längere Dateien verbrauchen mehr Kontext und reduzieren die Befolgung. Wenn die Anweisungen zu groß werden, nutze pfad-basierte Regeln, damit Anweisungen nur geladen werden, wenn Claude mit passenden Dateien arbeitet.