Wie Claude sich Ihr Projekt merkt
Geben Sie Claude persistente Anweisungen mit CLAUDE.md-Dateien, und lassen Sie Claude automatisch Erkenntnisse mit Auto-Memory sammeln.
Jede Claude Code-Sitzung beginnt mit einem frischen Context Window. Zwei Mechanismen tragen Wissen über Sitzungen hinweg:
- CLAUDE.md-Dateien: Anweisungen, die Sie schreiben, um Claude persistenten Kontext zu geben
- Auto-Memory: Notizen, die Claude selbst basierend auf Ihren Korrektionen und Vorlieben schreibt
Diese Seite behandelt folgende Themen:
- CLAUDE.md-Dateien schreiben und organisieren
- Regeln auf bestimmte Dateitypen beschränken mit
.claude/rules/ - Auto-Memory konfigurieren, damit Claude automatisch Notizen macht
- Fehlerbehebung, wenn Anweisungen nicht befolgt werden
CLAUDE.md vs. Auto-Memory
Claude Code hat zwei komplementäre Memory-Systeme. Beide werden zu Beginn jeder Konversation geladen. Claude behandelt sie als Kontext, nicht als erzwungene Konfiguration. Um eine Aktion unabhängig davon zu blockieren, was Claude entscheidet, verwenden Sie stattdessen einen PreToolUse Hook. Je spezifischer und prägnanter Ihre Anweisungen sind, desto konsistenter folgt Claude ihnen.
| CLAUDE.md-Dateien | Auto-Memory | |
|---|---|---|
| Wer schreibt es | Sie | Claude |
| Was es enthält | Anweisungen und Regeln | Erkenntnisse und Muster |
| Umfang | Projekt, Benutzer oder Organisation | Pro Repository, gemeinsam über Worktrees hinweg |
| Geladen in | Jede Sitzung | Jede Sitzung (erste 200 Zeilen oder 25 KB) |
| Verwenden für | Coding-Standards, Workflows, Projektarchitektur | Ihre Vorlieben, Korrektionen, die Sie Claude geben, Projektkontext, den Claude nicht aus dem Code ableiten kann |
Verwenden Sie CLAUDE.md-Dateien, wenn Sie Claudes Verhalten lenken möchten. Auto-Memory lässt Claude aus Ihren Korrektionen lernen, ohne manuelle Anstrengung.
Subagents können auch ihre eigene Auto-Memory pflegen. Weitere Informationen finden Sie unter Subagent-Konfiguration.
CLAUDE.md-Dateien
CLAUDE.md-Dateien sind Markdown-Dateien, die Claude persistente Anweisungen für ein Projekt, Ihren persönlichen Workflow oder Ihre gesamte Organisation geben. Sie schreiben diese Dateien in Klartext; Claude liest sie zu Beginn jeder Sitzung.
Wann sollte ich zu CLAUDE.md hinzufügen
Behandeln Sie CLAUDE.md als den Ort, an dem Sie aufschreiben, was Sie sonst erneut erklären würden. Fügen Sie hinzu, wenn:
- Claude denselben Fehler ein zweites Mal macht
- Eine Code-Review etwas findet, das Claude über diese Codebasis hätte wissen sollen
- Sie tippen die gleiche Korrektur oder Klarstellung in den Chat, die Sie letzte Sitzung eingegeben haben
- Ein neuer Teamkollege den gleichen Kontext benötigen würde, um produktiv zu sein
Halten Sie es bei Fakten, die Claude in jeder Sitzung behalten sollte: Build-Befehle, Konventionen, Projektlayout, „immer X machen"-Regeln. Wenn ein Eintrag ein mehrstufiges Verfahren ist oder nur für einen Teil der Codebasis wichtig ist, verschieben Sie ihn stattdessen zu einem Skill oder einer pfadgebundenen Regel. Die Funktionsübersicht behandelt, wann Sie jeden Mechanismus verwenden.
Wählen Sie, wo Sie CLAUDE.md-Dateien ablegen
CLAUDE.md-Dateien können sich an mehreren Orten befinden, jeder mit einem anderen Umfang. Die folgende Tabelle listet sie in Ladereihenfolge auf, vom breitesten Umfang zum spezifischsten, sodass eine Projektanweisung im Kontext nach einer Benutzeranweisung erscheint.
| Umfang | Ort | Zweck | Anwendungsbeispiele | Geteilt mit |
|---|---|---|---|---|
| Verwaltete Richtlinie | • macOS: /Library/Application Support/ClaudeCode/CLAUDE.md• Linux und WSL: /etc/claude-code/CLAUDE.md• Windows: C:\Program Files\ClaudeCode\CLAUDE.md |
Organisationsweite Anweisungen, verwaltet von IT/DevOps | Unternehmens-Coding-Standards, Sicherheitsrichtlinien, Compliance-Anforderungen | Alle Benutzer in der Organisation |
| Benutzeranweisungen | ~/.claude/CLAUDE.md |
Persönliche Vorlieben für alle Projekte | Code-Styling-Vorlieben, persönliche Tooling-Shortcuts | Nur Sie (alle Projekte) |
| Projektanweisungen | ./CLAUDE.md oder ./.claude/CLAUDE.md |
Team-gemeinsame Anweisungen für das Projekt | Projektarchitektur, Coding-Standards, häufige Workflows | Team-Mitglieder über Versionskontrolle |
| Lokale Anweisungen | ./CLAUDE.local.md |
Persönliche projektspezifische Vorlieben; zu .gitignore hinzufügen |
Ihre Sandbox-URLs, bevorzugte Testdaten | Nur Sie (aktuelles Projekt) |
CLAUDE.md- und CLAUDE.local.md-Dateien in der Verzeichnishierarchie über dem Arbeitsverzeichnis werden beim Start vollständig geladen. Dateien in Unterverzeichnissen werden bei Bedarf geladen, wenn Claude Dateien in diesen Verzeichnissen liest. Weitere Informationen finden Sie unter Wie CLAUDE.md-Dateien geladen werden für die vollständige Auflösungsreihenfolge.
Für große Projekte können Sie Anweisungen in themaspezifische Dateien aufteilen, indem Sie Projektregeln verwenden. Regeln ermöglichen es Ihnen, Anweisungen auf bestimmte Dateitypen oder Unterverzeichnisse zu beschränken.
Richten Sie eine Projekt-CLAUDE.md ein
Eine Projekt-CLAUDE.md kann entweder in ./CLAUDE.md oder ./.claude/CLAUDE.md gespeichert werden. Erstellen Sie diese Datei und fügen Sie Anweisungen hinzu, die für jeden gelten, der am Projekt arbeitet: Build- und Test-Befehle, Coding-Standards, architektonische Entscheidungen, Namenskonventionen und häufige Workflows. Diese Anweisungen werden über Versionskontrolle mit Ihrem Team geteilt, daher konzentrieren Sie sich auf projektweite Standards statt auf persönliche Vorlieben. Um zu bestätigen, dass die Datei geladen wurde, führen Sie /context in einer Sitzung aus und überprüfen Sie die Liste unter Memory-Dateien.
Führen Sie /init aus, um automatisch eine Start-CLAUDE.md zu generieren. Claude analysiert Ihre Codebasis und erstellt eine Datei mit Build-Befehlen, Test-Anweisungen und Projektkonventionen, die es entdeckt. Wenn bereits eine CLAUDE.md vorhanden ist, schlägt /init Verbesserungen vor, statt sie zu überschreiben. Verfeinern Sie sie von dort aus mit Anweisungen, die Claude nicht selbst entdecken würde.
Setzen Sie CLAUDE_CODE_NEW_INIT=1, um einen interaktiven mehrstufigen Ablauf zu aktivieren. /init fragt, welche Artefakte eingerichtet werden sollen: CLAUDE.md-Dateien, Skills und Hooks. Es erkundet dann Ihre Codebasis mit einem Subagent, füllt Lücken durch Folgefragen aus und präsentiert einen überprüfbaren Vorschlag, bevor Dateien geschrieben werden.
Schreiben Sie effektive Anweisungen
CLAUDE.md-Dateien werden zu Beginn jeder Sitzung in das Context Window geladen und verbrauchen Token zusammen mit Ihrer Konversation. Die Context Window-Visualisierung zeigt, wo CLAUDE.md relativ zum Rest des Startup-Kontexts geladen wird. Da sie Kontext statt erzwungene Konfiguration sind, beeinflusst die Art, wie Sie Anweisungen schreiben, wie zuverlässig Claude ihnen folgt. Spezifische, prägnante, gut strukturierte Anweisungen funktionieren am besten.
Größe: Ziel unter 200 Zeilen pro CLAUDE.md-Datei. Längere Dateien verbrauchen mehr Kontext und reduzieren die Einhaltung. Wenn Ihre Anweisungen zu groß werden, verwenden Sie pfadgebundene Regeln, damit Anweisungen nur geladen werden, wenn Claude mit übereinstimmenden Dateien arbeitet, um Rauschen zu reduzieren und Kontextraum zu sparen. Sie können auch Inhalte in Importe aufteilen, um sie zu organisieren, obwohl importierte Dateien immer noch geladen werden und beim Start in das Context Window eingehen.
Struktur: Verwenden Sie Markdown-Header und Aufzählungszeichen, um verwandte Anweisungen zu gruppieren. Claude scannt die Struktur genauso wie Leser: organisierte Abschnitte sind leichter zu befolgen als dichte Absätze.
Spezifität: Schreiben Sie Anweisungen, die konkret genug sind, um überprüft zu werden. Zum Beispiel:
- „Verwenden Sie 2-Leerzeichen-Einrückung" statt „Formatieren Sie Code ordnungsgemäß"
- „Führen Sie
npm testvor dem Commit aus" statt „Testen Sie Ihre Änderungen" - „API-Handler befinden sich in
src/api/handlers/" statt „Halten Sie Dateien organisiert"
Konsistenz: Wenn zwei Regeln sich widersprechen, kann Claude eine willkürlich auswählen. Überprüfen Sie Ihre CLAUDE.md-Dateien, verschachtelte CLAUDE.md-Dateien in Unterverzeichnissen und .claude/rules/ regelmäßig, um veraltete oder widersprüchliche Anweisungen zu entfernen. In Monorepos verwenden Sie claudeMdExcludes, um CLAUDE.md-Dateien von anderen Teams zu überspringen, die für Ihre Arbeit nicht relevant sind.
Importieren Sie zusätzliche Dateien
CLAUDE.md-Dateien können zusätzliche Dateien mit der Syntax @path/to/import importieren. Importierte Dateien werden erweitert und beim Start zusammen mit der CLAUDE.md, die sie referenziert, in den Kontext geladen.
Sowohl relative als auch absolute Pfade sind zulässig. Relative Pfade werden relativ zur Datei aufgelöst, die den Import enthält, nicht zum Arbeitsverzeichnis. Importierte Dateien können rekursiv andere Dateien importieren, mit einer maximalen Tiefe von vier Hops.
Das Parsing von Importen überspringt Markdown-Code-Spans und eingezäunte Code-Blöcke. Um einen Pfad in Ihrer CLAUDE.md zu erwähnen, ohne ihn zu importieren, wickeln Sie ihn in Backticks ein: Das Schreiben von `@README` hält den Text literal, während @README außerhalb von Backticks die Datei importiert.
Um eine README, package.json und einen Workflow-Leitfaden einzubeziehen, referenzieren Sie sie mit der @-Syntax überall in Ihrer CLAUDE.md:
Siehe @README für Projektübersicht und @package.json für verfügbare npm-Befehle für dieses Projekt.
# Zusätzliche Anweisungen
- Git-Workflow @docs/git-instructions.md
Für persönliche Vorlieben pro Projekt, die nicht in die Versionskontrolle eingecheckt werden sollten, erstellen Sie eine CLAUDE.local.md im Projektstammverzeichnis. Sie wird zusammen mit CLAUDE.md geladen und wird auf die gleiche Weise behandelt. Fügen Sie CLAUDE.local.md zu Ihrer .gitignore hinzu, damit sie nicht committed wird. Mit CLAUDE_CODE_NEW_INIT=1 gesetzt, führt das Ausführen von /init und das Auswählen der persönlichen Option dies für Sie durch.
Wenn Sie über mehrere Git-Worktrees desselben Repositories arbeiten, existiert eine gitignorierte CLAUDE.local.md nur in dem Worktree, in dem Sie sie erstellt haben. Um persönliche Anweisungen über Worktrees hinweg zu teilen, importieren Sie stattdessen eine Datei aus Ihrem Home-Verzeichnis:
# Individuelle Vorlieben
- @~/.claude/my-project-instructions.md
Ein Import in einer Projekt-Level-Memory-Datei ist extern, wenn sein Pfad außerhalb Ihres Arbeitsverzeichnisses aufgelöst wird, wie der Home-Verzeichnis-Import oben. Wenn Claude Code zum ersten Mal externe Importe in einem Projekt antrifft, zeigt es einen Genehmigungsdialog an, der die Dateien auflistet. Wenn Sie ablehnen, bleiben die Importe deaktiviert und der Dialog wird nicht erneut angezeigt.
Claude Code zeigt den Dialog, um Sie vor Dateien zu schützen, die andere Personen in ein gemeinsames Projekt committen. Benutzer-Scope-Memory-Dateien, wie ~/.claude/CLAUDE.md und ~/.claude/rules/, sind Dateien, die Sie selbst geschrieben haben. Außer in Cowork-Sitzungen auf Ihrem Desktop lädt Claude Code ihre Importe ohne den Dialog und vertraut ihnen wie dem Rest Ihrer persönlichen Konfiguration.
In Cowork-Sitzungen auf Ihrem Desktop überspringt Claude Code jeden Import in einer Benutzer-Scope-Datei, der zu einem Pfad außerhalb des Arbeitsverzeichnisses der Sitzung aufgelöst wird, und lädt den Rest der Datei. In diesen Sitzungen überspringt es auch eine ~/.claude/CLAUDE.md, die selbst ein Symlink oder Hard Link ist, und ein symverlinktes ~/.claude/rules/-Verzeichnis oder eine Regeldatei, die außerhalb des Arbeitsverzeichnisses zeigt.
AGENTS.md
Claude Code liest CLAUDE.md, nicht AGENTS.md. Wenn Ihr Repository bereits AGENTS.md für andere Coding-Agenten verwendet, erstellen Sie eine CLAUDE.md, die es importiert, damit beide Tools die gleichen Anweisungen lesen, ohne sie zu duplizieren. Sie können auch Claude-spezifische Anweisungen unter dem Import hinzufügen. Claude lädt die importierte Datei beim Sitzungsstart und hängt dann den Rest an:
@AGENTS.md
## Claude Code
Verwenden Sie Plan Mode für Änderungen unter `src/billing/`.
Ein Symlink funktioniert auch, wenn Sie keine Claude-spezifischen Inhalte hinzufügen müssen:
ln -s AGENTS.md CLAUDE.md
Der Befehl gibt bei Erfolg keine Ausgabe aus. In Ihrer nächsten Sitzung führen Sie /context aus und bestätigen Sie, dass CLAUDE.md unter Memory-Dateien angezeigt wird.
Unter Windows erfordert das Erstellen eines Symlinks Administratorrechte oder Developer Mode, daher verwenden Sie stattdessen den Import @AGENTS.md.
Das Ausführen von /init liest Cursor-Regeln in .cursor/rules/ oder .cursorrules und Copilot-Regeln in .github/copilot-instructions.md und integriert die relevanten Teile in die generierte CLAUDE.md. Mit CLAUDE_CODE_NEW_INIT=1 gesetzt, liest /init auch AGENTS.md, .devin/rules/, .windsurf/rules/ oder .windsurfrules und .clinerules.
Sie können auch /import ausführen, um die Konfiguration eines unterstützten Coding-Agenten in Claude Code zu bringen, was eine einmalige Kopie von Anweisungsdateien wie AGENTS.md an die entsprechende CLAUDE.md anhängt und MCP-Server, Befehle, Subagents und Skills übernimmt. Erfordert Claude Code v2.1.213 oder später.
Wie CLAUDE.md-Dateien geladen werden
Claude Code lädt CLAUDE.md und CLAUDE.local.md aus Ihrem aktuellen Arbeitsverzeichnis und jedem Verzeichnis darüber. Führen Sie Claude Code in foo/bar/ aus und es lädt Anweisungen aus foo/bar/CLAUDE.md, foo/CLAUDE.md und allen CLAUDE.local.md-Dateien daneben.
Alle entdeckten Dateien werden in den Kontext verkettet, statt sich gegenseitig zu überschreiben. Über die Verzeichnisstruktur hinweg wird Inhalt vom Dateisystem-Root bis zu Ihrem Arbeitsverzeichnis geordnet. Für das Beispiel foo/bar/ erscheint foo/CLAUDE.md im Kontext vor foo/bar/CLAUDE.md, sodass Anweisungen näher an dem Ort, an dem Sie Claude gestartet haben, zuletzt gelesen werden. Innerhalb jedes Verzeichnisses wird CLAUDE.local.md nach CLAUDE.md angehängt, sodass Ihre persönlichen Notizen das letzte sind, das Claude auf dieser Ebene liest.
Claude entdeckt auch CLAUDE.md- und CLAUDE.local.md-Dateien in Unterverzeichnissen unter Ihrem aktuellen Arbeitsverzeichnis. Statt sie beim Start zu laden, werden sie eingebunden, wenn Claude Dateien in diesen Unterverzeichnissen liest.
Wenn Sie in einem großen Monorepo arbeiten, in dem CLAUDE.md-Dateien anderer Teams aufgegriffen werden, verwenden Sie claudeMdExcludes, um sie zu überspringen. Für das vollständige Layout von Root- und Pro-Verzeichnis-CLAUDE.md-Dateien und Regeln siehe Monorepos und große Repos.
Block-Level-HTML-Kommentare (<!-- maintainer notes -->) in CLAUDE.md-Dateien werden vor der Injektion in Claudes Kontext entfernt. Verwenden Sie sie, um Notizen für menschliche Betreuer zu hinterlassen, ohne Kontext-Token darauf zu verschwenden. Kommentare innerhalb von Code-Blöcken werden beibehalten. Wenn Sie eine CLAUDE.md-Datei direkt mit dem Read-Tool öffnen, bleiben Kommentare sichtbar.
Laden aus zusätzlichen Verzeichnissen
Das Flag --add-dir gibt Claude Zugriff auf zusätzliche Verzeichnisse außerhalb Ihres Hauptarbeitsverzeichnisses. Standardmäßig werden CLAUDE.md-Dateien aus diesen Verzeichnissen nicht geladen.
Um auch Memory-Dateien aus zusätzlichen Verzeichnissen zu laden, setzen Sie die Umgebungsvariable CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD:
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config
Dies lädt CLAUDE.md, .claude/CLAUDE.md, .claude/rules/*.md und CLAUDE.local.md aus dem zusätzlichen Verzeichnis. CLAUDE.local.md wird übersprungen, wenn Sie local aus --setting-sources ausschließen.
Organisieren Sie Regeln mit `.claude/rules/`
Für größere Projekte können Sie Anweisungen in mehrere Dateien mit dem Verzeichnis .claude/rules/ organisieren. Dies hält Anweisungen modular und leichter für Teams zu pflegen. Regeln können auch auf bestimmte Dateipfade beschränkt werden, sodass sie nur in den Kontext geladen werden, wenn Claude mit übereinstimmenden Dateien arbeitet, was Rauschen reduziert und Kontextraum spart.
Regeln werden in jeder Sitzung oder beim Öffnen übereinstimmender Dateien in den Kontext geladen. Für aufgabenspezifische Anweisungen, die nicht ständig im Kontext sein müssen, verwenden Sie stattdessen Skills, die nur geladen werden, wenn Sie sie aufrufen oder wenn Claude bestimmt, dass sie für Ihren Prompt relevant sind.
Richten Sie Regeln ein
Platzieren Sie Markdown-Dateien im Verzeichnis .claude/rules/ Ihres Projekts. Jede Datei sollte ein Thema abdecken, mit einem beschreibenden Dateinamen wie testing.md oder api-design.md. Alle .md-Dateien werden rekursiv entdeckt, sodass Sie Regeln in Unterverzeichnisse wie frontend/ oder backend/ organisieren können:
your-project/
├── .claude/
│ ├── CLAUDE.md # Hauptprojektanweisungen
│ └── rules/
│ ├── code-style.md # Code-Style-Richtlinien
│ ├── testing.md # Test-Konventionen
│ └── security.md # Sicherheitsanforderungen
Regeln ohne paths-Frontmatter werden beim Start mit der gleichen Priorität wie .claude/CLAUDE.md geladen.
Projektregeln werden übersprungen, wenn Sie project aus --setting-sources ausschließen. Vor v2.1.211 wurden Regeln, die bei Bedarf geladen werden, einschließlich pfadgebundener Regeln und Regeln in verschachtelten .claude/rules/-Verzeichnissen, auch geladen, wenn project ausgeschlossen wurde.
Pfadspezifische Regeln
Regeln können mit YAML-Frontmatter mit dem Feld paths auf bestimmte Dateien beschränkt werden. Diese bedingten Regeln gelten nur, wenn Claude mit Dateien arbeitet, die den angegebenen Mustern entsprechen.
---
paths:
- "src/api/**/*.ts"
---
# API-Entwicklungsregeln
- Alle API-Endpunkte müssen Eingabevalidierung enthalten
- Verwenden Sie das Standard-Fehlerantwortformat
- Fügen Sie OpenAPI-Dokumentationskommentare ein
Regeln ohne ein paths-Feld werden bedingungslos geladen und gelten für alle Dateien. Pfadgebundene Regeln werden ausgelöst, wenn Claude Dateien liest, die dem Muster entsprechen, nicht bei jedem Tool-Einsatz. Ab v2.1.198 funktioniert das Matching auch, wenn Claude eine Datei über einen symverlinkten Pfad zum Projektverzeichnis erreicht, zum Beispiel in einem symverlinkten Checkout.
Verwenden Sie Glob-Muster im Feld paths, um Dateien nach Erweiterung, Verzeichnis oder einer beliebigen Kombination zu vergleichen:
| Muster | Passt zu |
|---|---|
**/*.ts |
Alle TypeScript-Dateien in jedem Verzeichnis |
src/**/* |
Alle Dateien unter dem Verzeichnis src/ |
*.md |
Markdown-Dateien im Projektstamm |
src/components/*.tsx |
React-Komponenten in einem bestimmten Verzeichnis |
Sie können mehrere Muster angeben und Klammer-Expansion verwenden, um mehrere Erweiterungen in einem Muster zu vergleichen:
---
paths:
- "src/**/*.{ts,tsx}"
- "lib/**/*.ts"
- "tests/**/*.test.ts"
---
Jede Klammer-Gruppe multipliziert die Anzahl der erweiterten Muster: src/*.{ts,tsx} wird zu zwei Mustern erweitert, und {a,b}/{c,d}/*.{ts,tsx} zu acht. Um die Erweiterung begrenzt zu halten, teilt sich die ganze paths-Liste einer Regel ein Budget von 1.000 erweiterten Mustern und 4 MiB, und Muster ohne Klammern zählen nicht dagegen.
Claude Code verwendet jeden Muster, der das Budget unerweitert überschreiten würde, und seine literalen Klammern passen zu keinen Dateien. Vor v2.1.217 führte ein paths-Wert mit vielen Klammer-Gruppen zu Stalls oder Crashes der CLI beim Start.
Glob-Syntax behandelt [ als den Anfang eines Klammer-Ausdrucks wie [abc]. Ein Muster mit einem [, das nicht als Klammer-Ausdruck gelesen werden kann, wie photos [2024/**, ist ungültig: es passt zu nichts, und die anderen Muster der Regel funktionieren weiterhin. Um ein literales [ in einem Dateinamen zu vergleichen, escapen Sie es als photos \[2024/**. Vor v2.1.207 führte ein ungültiges Muster dazu, dass das Read-Tool für jede Datei fehlschlug, gegen die die Regel ausgewertet wurde, statt zu nichts zu passen.
Teilen Sie Regeln über Projekte hinweg mit Symlinks
Das Verzeichnis .claude/rules/ unterstützt Symlinks, sodass Sie einen gemeinsamen Satz von Regeln pflegen und in mehrere Projekte verlinken können. Symlinks werden aufgelöst und normal geladen, und zirkuläre Symlinks werden erkannt und elegant behandelt.
Dieses Beispiel verlinkt sowohl ein gemeinsames Verzeichnis als auch eine einzelne Datei:
ln -s ~/shared-claude-rules .claude/rules/shared
ln -s ~/company-standards/security.md .claude/rules/security.md
Benutzerebenen-Regeln
Persönliche Regeln in ~/.claude/rules/ gelten für jedes Projekt auf Ihrem Computer. Verwenden Sie sie für Vorlieben, die nicht projektspezifisch sind:
~/.claude/rules/
├── preferences.md # Ihre persönlichen Coding-Vorlieben
└── workflows.md # Ihre bevorzugten Workflows
Benutzerebenen-Regeln werden vor Projektregeln geladen, was Projektregeln höhere Priorität gibt.
Verwalten Sie CLAUDE.md für große Teams
Für Organisationen, die Claude Code über Teams bereitstellen, können Sie Anweisungen zentralisieren und steuern, welche CLAUDE.md-Dateien geladen werden.
Stellen Sie organisationsweite CLAUDE.md bereit
Organisationen können eine zentral verwaltete CLAUDE.md bereitstellen, die für alle Benutzer auf einem Computer gilt. Diese Datei kann nicht durch individuelle Einstellungen ausgeschlossen werden.
Erstellen Sie die Datei am Ort der verwalteten Richtlinie
- macOS:
/Library/Application Support/ClaudeCode/CLAUDE.md - Linux und WSL:
/etc/claude-code/CLAUDE.md - Windows:
C:\Program Files\ClaudeCode\CLAUDE.md
Stellen Sie mit Ihrem Konfigurationsverwaltungssystem bereit
Verwenden Sie MDM, Group Policy, Ansible oder ähnliche Tools, um die Datei über Entwicklermaschinen zu verteilen. Siehe verwaltete Einstellungen für andere organisationsweite Konfigurationsoptionen.
Der Schlüssel claudeMd ermöglicht es Ihnen, verwaltete CLAUDE.md-Inhalte direkt in managed-settings.json zu platzieren, statt eine separate Datei bereitzustellen.
Umfang: jede Claude Code-Sitzung auf dem Computer, in jedem Repository. Für Repository-spezifische Anleitung committen Sie stattdessen eine Projekt-CLAUDE.md.
Vorrang: gleich wie eine verwaltete CLAUDE.md-Datei. Wird vor Benutzer- und Projekt-CLAUDE.md geladen.
Wo es berücksichtigt wird: nur verwaltete und Richtlinien-Einstellungen. Das Setzen von claudeMd in Benutzer-, Projekt- oder lokalen Einstellungen hat keine Auswirkung.
Das folgende Beispiel fügt Verhaltensanweisungen direkt in eine verwaltete Einstellungsdatei ein:
{
"claudeMd": "Always run `make lint` before committing.\nNever push directly to main."
}
Eine verwaltete CLAUDE.md und verwaltete Einstellungen dienen unterschiedlichen Zwecken. Verwenden Sie Einstellungen für technische Durchsetzung und CLAUDE.md für Verhaltensanleitung:
| Anliegen | Konfigurieren in |
|---|---|
| Blockieren Sie bestimmte Tools, Befehle oder Dateipfade | Verwaltete Einstellungen: permissions.deny |
| Erzwingen Sie Sandbox-Isolation | Verwaltete Einstellungen: sandbox.enabled |
| Umgebungsvariablen und API-Provider-Routing | Verwaltete Einstellungen: env |
| Authentifizierungsmethode und Organisationssperre | Verwaltete Einstellungen: forceLoginMethod, forceLoginOrgUUID |
| Code-Style und Qualitätsrichtlinien | Verwaltete CLAUDE.md |
| Datenbehandlung und Compliance-Erinnerungen | Verwaltete CLAUDE.md |
| Verhaltensanweisungen für Claude | Verwaltete CLAUDE.md |
Einstellungsregeln werden vom Client unabhängig davon durchgesetzt, was Claude entscheidet zu tun. CLAUDE.md-Anweisungen prägen Claudes Verhalten, sind aber keine harte Durchsetzungsebene.
Schließen Sie bestimmte CLAUDE.md-Dateien aus
In großen Monorepos können Vorgänger-CLAUDE.md-Dateien Anweisungen enthalten, die für Ihre Arbeit nicht relevant sind. Die Einstellung claudeMdExcludes ermöglicht es Ihnen, bestimmte Dateien nach Pfad oder Glob-Muster zu überspringen.
Dieses Beispiel schließt eine CLAUDE.md auf oberster Ebene und ein Regelverzeichnis aus einem übergeordneten Ordner aus. Fügen Sie es zu .claude/settings.local.json hinzu, damit der Ausschluss lokal auf Ihrem Computer bleibt:
{
"claudeMdExcludes": [
"**/monorepo/CLAUDE.md",
"/home/user/monorepo/other-team/.claude/rules/**"
]
}
Muster werden mit Glob-Syntax gegen absolute Dateipfade abgeglichen. Sie können claudeMdExcludes auf jeder Einstellungsebene konfigurieren: Benutzer, Projekt, lokal oder verwaltete Richtlinie. Arrays werden über Ebenen hinweg zusammengeführt.
Um eine Regeldatei auszuschließen, die Sie über einen Symlink erreichen, ob die Datei oder ihr Verzeichnis der Link ist, schreiben Sie das Muster gegen einen der beiden Pfade: den Pfad der Datei unter .claude/rules/ oder ihr Link-Ziel. Ein Muster, das einen der beiden Pfade passt, schließt die Datei aus. Vor v2.1.239 schloss nur ein Muster, das das Link-Ziel passte, die Datei aus.
CLAUDE.md-Dateien mit verwalteter Richtlinie können nicht ausgeschlossen werden. Dies stellt sicher, dass organisationsweite Anweisungen unabhängig von individuellen Einstellungen immer gelten.
Auto-Memory
Auto-Memory lässt Claude Wissen über Sitzungen hinweg sammeln, ohne dass Sie etwas schreiben müssen. Während Claude arbeitet, speichert es vier Arten von Notizen für sich selbst. Claude speichert die Art als type-Feld in der Frontmatter der Memory-Datei:
user: Ihre Rolle, Expertise und Arbeitspräferenzenfeedback: Korrektionen, die Sie Claude geben, und Ansätze, die Sie bestätigenproject: laufende Arbeiten, Fristen und Entscheidungen, die Claude nicht aus dem Code oder der Git-Historie ableiten kannreference: wo man Informationen außerhalb des Projekts findet, wie einen Issue-Tracker oder ein Dashboard
Claude überspringt alles, was es aus der Codebasis ableiten kann, wie Architektur, Dateipfade oder Debugging-Fixes. Es überspringt auch alles, was Ihre CLAUDE.md-Dateien bereits sagen.
Claude speichert nicht jede Sitzung etwas. Es entscheidet, was es sich merken sollte, basierend darauf, ob die Information in einer zukünftigen Konversation nützlich wäre.
Aktivieren oder deaktivieren Sie Auto-Memory
Auto-Memory ist standardmäßig aktiviert. Um es umzuschalten, öffnen Sie /memory in einer Sitzung und verwenden Sie den Auto-Memory-Schalter, der autoMemoryEnabled in Ihren Benutzereinstellungen unter ~/.claude/settings.json speichert. Um es für ein einzelnes Projekt auszuschalten, setzen Sie autoMemoryEnabled in den Einstellungen dieses Projekts:
{
"autoMemoryEnabled": false
}
Um Auto-Memory über eine Umgebungsvariable zu deaktivieren, setzen Sie CLAUDE_CODE_DISABLE_AUTO_MEMORY=1.
Speicherort
Jedes Projekt erhält sein eigenes Memory-Verzeichnis unter ~/.claude/projects/<project>/memory/. Der <project>-Pfad wird aus dem Git-Repository abgeleitet, sodass alle Worktrees und Unterverzeichnisse innerhalb desselben Repos ein Auto-Memory-Verzeichnis teilen. Außerhalb eines Git-Repos wird stattdessen das Projektstammverzeichnis verwendet.
Wenn Sie CLAUDE_CODE_PROJECT_DIR_NAME neben CLAUDE_CONFIG_DIR setzen, verwendet Claude Code diesen Namen als <project>-Verzeichnis unter <config dir>/projects/ unabhängig davon, welches Repository Sie starten, sodass Projekte, die mit diesem Konfigurationsverzeichnis gestartet werden, ein Auto-Memory-Verzeichnis teilen. Erfordert Claude Code v2.1.234 oder später.
Um Auto-Memory an einem anderen Ort zu speichern, setzen Sie autoMemoryDirectory in Ihrer settings.json. Es wird aus jedem Einstellungsbereich gelesen: Benutzer, Projekt, lokal, Richtlinie oder --settings.
{
"autoMemoryDirectory": "~/my-custom-memory-dir"
}
Der Wert muss ein absoluter Pfad sein oder mit ~/ beginnen. Wenn Sie ihn in der .claude/settings.json oder .claude/settings.local.json eines Projekts festlegen, berücksichtigt Claude Code ihn unter der gleichen Workspace-Trust-Regel wie Hooks in Einstellungsdateien.
Das Verzeichnis enthält einen MEMORY.md-Index und eine Themadatei pro Memory:
~/.claude/projects/<project>/memory/
├── MEMORY.md # Index, eine Zeile pro Memory, geladen in jede Sitzung
├── user_role.md # Ein Memory
├── feedback_testing.md # Ein Memory
└── ... # Alle anderen Themadateien, die Claude erstellt
MEMORY.md fungiert als Index des Memory-Verzeichnisses. Claude liest und schreibt Dateien in diesem Verzeichnis während Ihrer Sitzung und verwendet MEMORY.md, um den Überblick zu behalten, was wo gespeichert ist.
Auto-Memory ist maschinenlokal. Alle Worktrees und Unterverzeichnisse innerhalb desselben Git-Repositories teilen ein Auto-Memory-Verzeichnis. Dateien werden nicht über Maschinen oder Cloud-Umgebungen hinweg geteilt.
Claude Code löscht alte Sitzungstranskripte nach der cleanupPeriodDays-Aufbewahrungsfrist, schließt aber die Memory-Dateien im Memory-Verzeichnis von dieser Aufbewahrungslöschung aus. MEMORY.md und Themadateien bleiben bestehen, bis Sie oder Claude sie bearbeiten oder löschen.
Wie es funktioniert
Die ersten 200 Zeilen von MEMORY.md, oder die ersten 25 KB, je nachdem, was zuerst erreicht wird, werden zu Beginn jeder Konversation geladen. Inhalte über diese Schwelle hinaus werden nicht beim Sitzungsstart geladen. Claude hält MEMORY.md prägnant, indem es detaillierte Notizen in separate Themadateien verschiebt.
Nachdem Claude in MEMORY.md schreibt, misst Claude Code die Datei gegen die 200-Zeilen- und 25-KB-Lesegrenzen. Wenn die Datei sich einer Grenze nähert, erinnert Claude Code Claude daran, sie zu verkürzen: eine Zeile pro Eintrag behalten, Details in Themadateien verschieben und veraltete Einträge zusammenführen oder löschen. Wenn die Datei über einer Grenze liegt, wird der Schreibvorgang trotzdem erfolgreich ausgeführt, aber Claude Code gibt einen Fehler zurück, der Claude auffordert, den Index umzuschreiben, da alles über der Grenze beim nächsten Laden verworfen wird.
Diese Grenze gilt nur für MEMORY.md. Claude Code lädt eine CLAUDE.md-Datei von bis zu 4 MiB vollständig und überspringt eine größere Datei. Kürzere Dateien erzeugen bessere Einhaltung.
Claude Code lädt Themadateien wie user_role.md oder feedback_testing.md nicht beim Start. Claude liest sie bei Bedarf mit seinen Standard-Datei-Tools, wenn es die Informationen benötigt.
Das Auto-Memory der Hauptkonversation wird nicht in Subagenten geladen; die Ausnahme ist ein Fork, der die übergeordnete Konversation und den System-Prompt erbt. Das eigene Auto-Memory eines Subagenten, aktiviert mit dem Subagenten-memory-Feld, ist ein separates Verzeichnis.
Claude liest und schreibt Memory-Dateien während Ihrer Sitzung. Wenn Sie Meldungen wie „Saved 2 memories" oder „Recalled 2 memories" in der Claude Code-Schnittstelle sehen, aktualisiert oder liest Claude aktiv aus ~/.claude/projects/<project>/memory/.
Wenn Claude eine Memory-Datei schreibt, die mit YAML-Frontmatter beginnt, speichert Claude Code die Schreibzeit in einem modified-Frontmatter-Feld als ISO-8601-Zeitstempel. Der Zeitstempel zeigt, wie aktuell die Tatsache ist, sowohl für Sie als auch für Claude, wenn es das Memory zurückliest. Jede Datei, die Frontmatter hat, erhält das Feld beim nächsten Schreiben durch Claude, einschließlich Dateien, die in früheren Versionen erstellt wurden; Claude Code fügt niemals Frontmatter zu einer Datei hinzu, die keine hat. Das modified-Feld erfordert Claude Code v2.1.214 oder später.
Überprüfen und bearbeiten Sie Ihr Memory
Auto-Memory-Dateien sind einfaches Markdown, das Sie jederzeit bearbeiten oder löschen können. Führen Sie /memory aus, um Memory-Dateien innerhalb einer Sitzung zu durchsuchen und zu öffnen.
Anzeigen und Bearbeiten mit `/memory`
Der Befehl /memory listet Ihre CLAUDE.md-, CLAUDE.local.md- und andere Speicherdateien an verschiedenen Orten im Benutzer- und Projektbereich auf, einschließlich Benutzer- und Projekt-CLAUDE.md-Einträge für Dateien, die noch nicht existieren. Er ermöglicht es Ihnen auch, Auto-Memory ein- oder auszuschalten, und bietet eine Option zum Öffnen des Auto-Memory-Ordners. Wählen Sie eine beliebige Datei aus, um sie in Ihrem Editor zu öffnen. Wenn Sie eine Datei auswählen, die noch nicht existiert, wird sie zuerst erstellt. Um zu überprüfen, welche Dateien tatsächlich in die aktuelle Sitzung geladen wurden, führen Sie /context aus.
GUI-Editoren wie VS Code öffnen die Datei in einem separaten Fenster, und Sie können die Sitzung weiterhin nutzen, während sie offen ist. Vor v2.1.216 wartete /memory darauf, dass Sie die Datei schließen, bevor es antwortete. Terminal-Editoren wie Vim übernehmen das Terminal, bis Sie es beenden.
Wenn Sie Claude bitten, sich etwas zu merken, wie „immer pnpm verwenden, nicht npm" oder „denken Sie daran, dass die API-Tests eine lokale Redis-Instanz erfordern", speichert Claude es in Auto-Memory. Um Anweisungen stattdessen zu CLAUDE.md hinzuzufügen, bitten Sie Claude direkt, wie „fügen Sie dies zu CLAUDE.md hinzu", oder bearbeiten Sie die Datei selbst über /memory.
Fehlerbehebung bei Memory-Problemen
Dies sind die häufigsten Probleme mit CLAUDE.md und Auto-Memory, zusammen mit Schritten zum Debuggen.
Claude folgt meiner CLAUDE.md nicht
CLAUDE.md-Inhalte werden als Benutzernachricht nach dem System-Prompt bereitgestellt, nicht als Teil des System-Prompts selbst. Claude liest ihn und versucht, ihm zu folgen, aber es gibt keine Garantie für strikte Einhaltung, besonders bei vagen oder widersprüchlichen Anweisungen.
Zum Debuggen:
- Führen Sie
/contextaus und überprüfen Sie die Liste unter Memory-Dateien, um zu überprüfen, dass Ihre CLAUDE.md- und CLAUDE.local.md-Dateien geladen wurden. Wenn eine Datei dort fehlt, kann Claude sie nicht sehen. Verwenden Sie/memory, um die Dateien zu öffnen und zu bearbeiten. - Überprüfen Sie, dass die relevante CLAUDE.md an einem Ort ist, der für Ihre Sitzung geladen wird (siehe Wählen Sie, wo Sie CLAUDE.md-Dateien ablegen).
- Machen Sie Anweisungen spezifischer. „Verwenden Sie 2-Leerzeichen-Einrückung" funktioniert besser als „formatieren Sie Code schön".
- Suchen Sie nach widersprüchlichen Anweisungen über CLAUDE.md-Dateien hinweg. Wenn zwei Dateien unterschiedliche Anleitungen für das gleiche Verhalten geben, kann Claude eine willkürlich auswählen.
Wenn die Anweisung etwas ist, das an einem bestimmten Punkt ausgeführt werden muss, z. B. vor jedem Commit oder nach jeder Dateibearbeitung, schreiben Sie sie stattdessen als Hook. Hooks werden als Shell-Befehle bei festen Lebenszyklusereignissen ausgeführt und gelten unabhängig davon, was Claude entscheidet zu tun.
Für Anweisungen, die Sie auf System-Prompt-Ebene haben möchten, verwenden Sie --append-system-prompt. Dies muss bei jeder Invokation übergeben werden, daher ist es besser für Skripte und Automatisierung als für interaktive Nutzung geeignet.
Verwenden Sie den InstructionsLoaded-Hook, um genau zu protokollieren, welche Anweisungsdateien geladen sind, wann sie geladen werden und warum. Dies ist nützlich zum Debuggen von pfadspezifischen Regeln oder Lazy-Loading-Dateien in Unterverzeichnissen.
Ich weiß nicht, was Auto-Memory gespeichert hat
Führen Sie /memory aus und wählen Sie den Auto-Memory-Ordner aus, um zu durchsuchen, was Claude gespeichert hat. Alles ist einfaches Markdown, das Sie lesen, bearbeiten oder löschen können.
Meine CLAUDE.md ist zu groß
Dateien über 200 Zeilen verbrauchen mehr Kontext und können die Einhaltung reduzieren. Claude Code überspringt eine Datei über 4 MiB. Verwenden Sie pfadgebundene Regeln, um Anweisungen nur zu laden, wenn Claude mit übereinstimmenden Dateien arbeitet, oder trimmen Sie Inhalte, die nicht in jeder Sitzung benötigt werden. Das Aufteilen in @path-Importe hilft bei der Organisation, reduziert aber nicht den Kontext, da importierte Dateien beim Start geladen werden.
Die /doctor-Überprüfung schlägt Kürzungen für eine eingecheckte CLAUDE.md vor: Sie entfernt Inhalte, die Claude aus der Codebasis ableiten kann, wie Verzeichnislayouts, Abhängigkeitslisten und Architekturübersichten, und behält Fallstricke, Begründungen und Konventionen, die sich von Tool-Standardwerten unterscheiden. Die Trim-Überprüfung erfordert Claude Code v2.1.206 oder später.
Anweisungen scheinen nach `/compact` verloren zu gehen
Projekt-Root-CLAUDE.md übersteht Komprimierung: Nach /compact liest Claude sie neu von der Festplatte und injiziert sie frisch in die Sitzung. Verschachtelte CLAUDE.md-Dateien in Unterverzeichnissen und Regeln mit paths:-Frontmatter werden neu geladen, wenn Claude Dateien liest, auf die sie zutreffen.
Wenn eine Anweisung nach der Komprimierung verschwunden ist, wurde sie entweder nur in der Konversation gegeben, befindet sich in einer verschachtelten CLAUDE.md, die noch nicht neu geladen wurde, oder ist eine pfadgebundene Regel, die seit der Komprimierung keine Datei gefunden hat. Fügen Sie Anweisungen, die nur in der Konversation gegeben wurden, zu CLAUDE.md hinzu, um sie über Sitzungen hinweg zu erhalten. Weitere Informationen finden Sie unter Was übersteht Komprimierung für die vollständige Aufschlüsselung.
Weitere Informationen finden Sie unter Schreiben Sie effektive Anweisungen für Anleitungen zu Größe, Struktur und Spezifität.
Verwandte Ressourcen
- Debuggen Sie Ihre Konfiguration: Diagnostizieren Sie, warum CLAUDE.md oder Einstellungen nicht wirksam werden
- Skills: Verpacken Sie wiederholbare Workflows, die bei Bedarf geladen werden
- Einstellungen: Konfigurieren Sie Claude Code-Verhalten mit Einstellungsdateien
- Subagent-Memory: Lassen Sie Subagents ihre eigene Auto-Memory pflegen