Wo Claude Code CLAUDE.md, settings.json, hooks, skills, commands, subagents, workflows, rules und auto memory liest. Erkunden Sie das .claude-Verzeichnis in Ihrem Projekt und ~/.claude in Ihrem Home-Verzeichnis.
export const ClaudeExplorer = () => {
const A = useMemo(() => ({href, children}) => <a href={href} style={{
color: 'var(--ce-accent)',
textDecoration: 'none',
borderBottom: '1px dotted var(--ce-accent)'
}}>{children}, []);
const C = useMemo(() => ({children}) => <code style={{
fontFamily: 'var(--ce-mono)',
fontSize: '0.92em',
padding: '1px 4px',
borderRadius: '3px',
background: 'var(--ce-surface)',
border: '0.5px solid var(--ce-border-subtle)'
}}>{children}, []);
const commandsNote = useMemo(() => <>Commands and skills are now the same mechanism. For new workflows, use skills/ instead: same /name invocation, plus you can bundle supporting files.</>, []);
const FILE_TREE = useMemo(() => ({
project: {
label: 'your-project/',
children: [{
id: 'claude-md',
label: 'CLAUDE.md',
type: 'file',
icon: 'md',
color: '#6A9BCC',
badge: 'committed',
oneLiner: 'Project instructions Claude reads every session',
when: 'Loaded into context at the start of every session',
description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',
tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a skill or a path-scoped rule so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run /memory to open and edit CLAUDE.md from within a session</>, <>Also works at .claude/CLAUDE.md if you prefer to keep the project root clean</>, <>If your repo already has an AGENTS.md for other coding agents, Claude Code can read that on its own or alongside CLAUDE.md</>],
exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',
example: `# Project conventions
Commands
Build: `npm run build`
Test: `npm test`
Lint: `npm run lint`
Stack
TypeScript with strict mode
React 19, functional components only
Rules
Named exports, never default exports
Tests live next to source: `foo.ts` -> `foo.test.ts`
All API routes return `{ data, error }` shape, docsLink: '/en/memory' }, { id: 'mcp-json', label: '.mcp.json', type: 'file', icon: 'json', color: '#9B7BC4', badge: 'committed', oneLiner: 'Project-scoped MCP servers, shared with your team', when: <>Servers connect when the session begins. Tool schemas are deferred by default and load on demand via <A href="/docs/en/mcp#scale-with-mcp-tool-search">tool search</A></>, description: <>Configures Model Context Protocol (MCP) servers that give Claude access to external tools: databases, APIs, browsers, and more. This file holds the project-scoped servers your whole team uses. Personal servers you want to keep to yourself go in <C>~/.claude.json</C> instead.</>, tips: [<>Use environment variable references for secrets: <C>{'${NOTION_TOKEN}'}</C></>, <>Lives at the project root, not inside <C>.claude/</C></>, <>For servers only you need, run <C>claude mcp add --scope user</C>. This writes to <C>~/.claude.json</C> instead of <C>.mcp.json</C></>], exampleIntro: <>This example configures the Notion MCP server so Claude can read and update pages in your workspace. The <C>{'${NOTION_TOKEN}'}</C> reference is read from your shell environment when Claude Code starts the server, so the token never lands in the file.</>, example: {
"mcpServers": {
"notion": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"NOTION_TOKEN": "${NOTION_TOKEN}"
}
}
}
}, docsLink: '/en/mcp' }, { id: 'worktreeinclude', label: '.worktreeinclude', type: 'file', icon: 'md', color: '#8FA876', badge: 'committed', oneLiner: 'Gitignored files to copy into new worktrees', when: <>Read when Claude creates a git worktree via <C>--worktree</C>, the <C>EnterWorktree</C> tool, or subagent <C>isolation: worktree</C></>, description: <>Lists gitignored files to copy from your main repository into each new worktree. Worktrees are fresh checkouts, so untracked files like <C>.env</C> are missing by default. Patterns here use <C>.gitignore</C> syntax. Only files that match a pattern and are also gitignored get copied, so tracked files are never duplicated.</>, tips: [<>Lives at the project root, not inside <C>.claude/</C></>, <>Git-only: if you configure a <A href="/docs/en/hooks#worktreecreate">WorktreeCreate hook</A> for a different VCS, this file is not read. Copy files inside your hook script instead</>, <>Also applies to parallel sessions in the <A href="/docs/en/desktop#work-in-parallel-with-sessions">desktop app</A></>], exampleIntro: 'This example copies your local environment files and a secrets config into every worktree Claude creates. Comments start with # and blank lines are ignored, same as .gitignore.', example: # Local environment
.env
.env.local
API credentials
config/secrets.json, docsLink: '/en/worktrees#copy-gitignored-files-into-worktrees' }, { id: 'dot-claude', label: '.claude/', type: 'folder', icon: 'folder', color: 'var(--ce-accent)', oneLiner: 'Project-level configuration, rules, and extensions', description: 'Everything Claude Code reads that is specific to this project. If you use git, commit most files here so your team shares them; a few, like settings.local.json, are gitignored when Claude Code saves settings to them. Each file badge shows which.', children: [{ id: 'settings-json', label: 'settings.json', type: 'file', icon: 'json', color: 'var(--ce-text-3)', badge: 'committed', oneLiner: 'Permissions, hooks, and configuration', when: <>Overrides global <C>~/.claude/settings.json</C>. Local settings, CLI flags, and managed settings override this</>, description: 'Settings that Claude Code applies directly. Permissions control which commands and tools Claude can use; hooks run your scripts at specific points in a session. Unlike CLAUDE.md, which Claude reads as guidance, these are enforced whether Claude follows them or not.', contains: [<><A href="/docs/en/permissions">permissions</A>: allow, deny, or prompt before Claude uses specific tools or commands</>, <><A href="/docs/en/hooks">hooks</A>: run your own scripts on events like before a tool call or after a file edit</>, <><A href="/docs/en/statusline">statusLine</A>: customize the line shown at the bottom while Claude works</>, <><A href="/docs/en/settings-reference#available-settings">model</A>: pick a default model for this project</>, <><A href="/docs/en/settings-reference#environment-variables">env</A>: environment variables set in every session</>, <><A href="/docs/en/output-styles">outputStyle</A>: select a custom output style from output-styles/</>], tips: [<>Bash permission patterns support wildcards: <C>Bash(npm test *)</C> matches any command starting with <C>npm test</C></>, <>Array settings like <C>permissions.allow</C> combine across all scopes; scalar settings like <C>model</C> use the most specific value</>], exampleIntro: <>This example allows <C>npm test</C> and <C>npm run</C> commands without prompting, blocks <C>rm -rf</C>, and runs Prettier on files after Claude edits or writes them.</>, example: {
"permissions": {
"allow": [
"Bash(npm test *)",
"Bash(npm run *)"
],
"deny": [
"Bash(rm -rf *)"
]
},
"hooks": {
"PostToolUse": [{
"matcher": "Edit|Write",
"hooks": [{
"type": "command",
"command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
}]
}]
}
}, docsLink: '/en/settings' }, { id: 'settings-local-json', label: 'settings.local.json', type: 'file', icon: 'json', color: 'var(--ce-text-3)', badge: 'gitignored', oneLiner: 'Your personal settings overrides for this project', when: 'Highest of the user-editable settings files; CLI flags and managed settings still take precedence', description: 'Personal settings that take precedence over the project defaults. Same JSON format as settings.json, gitignored when Claude Code saves a setting to it. Use this when you need different permissions or defaults than the team config.', tips: [<>Same schema as settings.json. Array settings like <C>permissions.allow</C> combine across scopes; scalar settings like <C>model</C> use the local value</>, <>When Claude Code saves a setting to this file in a repository that doesn't already ignore it, it adds <C>**/.claude/settings.local.json</C> to your global git excludes file: <C>core.excludesFile</C> from your global git config when it's set to an absolute or <C>~</C>-prefixed path, otherwise <C>$XDG_CONFIG_HOME/git/ignore</C>, or <C>~/.config/git/ignore</C>. To share the ignore rule with your team, also add it to the project <C>.gitignore</C></>], exampleIntro: 'This example adds Docker permissions on top of whatever the team settings.json allows.', example: {
"permissions": {
"allow": [
"Bash(docker *)"
]
}
}, docsLink: '/en/settings' }, { id: 'rules', label: 'rules/', type: 'folder', icon: 'folder', color: '#9B7BC4', oneLiner: 'Topic-scoped instructions, optionally gated by file paths', when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>, description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/docs/en/hooks">hooks</A> or <A href="/docs/en/permissions">permissions</A>.</>], tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'], docsLink: '/en/memory#organize-rules-with-claude/rules/', children: [{ id: 'rule-testing', label: 'testing.md', type: 'file', icon: 'md', color: '#9B7BC4', badge: 'committed', oneLiner: 'Test conventions scoped to test files', when: <>Loaded when Claude reads a file matching the <C>paths:</C> globs below</>, description: <>An example rule that only loads when Claude is working on test files. The <C>paths:</C> globs in the frontmatter define which files trigger it; here, anything ending in .test.ts or .test.tsx. For other files, this rule is not loaded into context.</>, example: ---
paths:
"**/*.test.ts"
"**/*.test.tsx"
Testing Rules
Use descriptive test names: "should [expected] when [condition]"
Mock external dependencies, not internal modules
Clean up side effects in afterEach}, { id: 'rule-api', label: 'api-design.md', type: 'file', icon: 'md', color: '#9B7BC4', badge: 'committed', oneLiner: 'API conventions scoped to backend code', when: <>Loaded when Claude reads a file matching the <C>paths:</C> glob below</>, description: <>A second example showing a rule scoped to backend code. The <C>paths:</C> glob matches files under src/api/, so these conventions load only when Claude is editing API routes.</>, example:---
paths:
"src/api/**/*.ts"
API Design Rules
All endpoints must validate input with Zod schemas
Return shape: { data: T } | { error: string }
Rate limit all public endpoints }] }, { id: 'skills', label: 'skills/', type: 'folder', icon: 'folder', color: '#D4A843', oneLiner: 'Reusable prompts you or Claude invoke by name', when: <>Invoked with <C>/skill-name</C> or when Claude matches the task to a skill</>, description: <>Each skill is a folder with a SKILL.md file plus any supporting files it needs. By default, both you and Claude can invoke a skill. Use frontmatter to control that: <C>disable-model-invocation: true</C> for user-only workflows like <C>/deploy</C>, or <C>user-invocable: false</C> to hide from the <C>/</C> menu while Claude can still invoke it.</>, tips: [<>Skills accept arguments: <C>/deploy staging</C> passes "staging" as <C>$ARGUMENTS</C>. Use <C>$0</C>, <C>$1</C>, and so on for positional access</>, <>The <C>description</C> frontmatter determines when Claude auto-invokes the skill</>, 'Bundle reference docs alongside SKILL.md. Claude knows the skill directory path and can read supporting files when you mention them'], docsLink: '/en/skills', children: [{ id: 'skill-review', label: 'security-review/', type: 'folder', icon: 'folder', color: '#D4A843', oneLiner: 'A skill bundling SKILL.md with supporting files', children: [{ id: 'skill-review-md', label: 'SKILL.md', type: 'file', icon: 'md', color: '#D4A843', badge: 'committed', oneLiner: 'Entrypoint: trigger, invocability, instructions', when: <>User types <C>/security-review <target></C>; Claude cannot auto-invoke this skill</>, description: [<>This skill uses <C>disable-model-invocation: true</C> so only you can trigger it; Claude never invokes it on its own.</>, <>The <C>!...</C> line runs a shell command and injects its output into the prompt. <C>$ARGUMENTS</C> substitutes whatever you typed after the skill name. Claude sees the skill directory path, so mentioning a bundled file like checklist.md lets Claude read it.</>], example: ---
description: Reviews code changes for security vulnerabilities, authentication gaps, and injection risks
disable-model-invocation: true
argument-hint:
Diff to review
!`git diff $ARGUMENTS`
Audit the changes above for:
Injection vulnerabilities (SQL, XSS, command)
Authentication and authorization gaps
Hardcoded secrets or credentials
Use checklist.md in this skill directory for the full review checklist.
Report findings with severity ratings and remediation steps.}, { id: 'skill-checklist', label: 'checklist.md', type: 'file', icon: 'md', color: '#D4A843', badge: 'committed', oneLiner: 'Supporting file bundled with the skill', when: 'Claude reads it on demand while running the skill', description: <>Skills can bundle any supporting files: reference docs, templates, scripts. The skill directory path is prepended to SKILL.md, so Claude can read bundled files by name. For scripts in bash injection commands, use the <C>{'${CLAUDE_SKILL_DIR}'}</C> placeholder.</>, example:# Security Review Checklist
Input Validation
All user input sanitized before DB queries
File upload MIME types validated
Path traversal prevented on file operations
Authentication
JWT tokens expire after 24 hours
API keys stored in environment variables
Passwords hashed with bcrypt or argon2 }] }] }, { id: 'commands', label: 'commands/', type: 'folder', icon: 'folder', color: '#788C5D', oneLiner: <>Single-file prompts invoked with <C>/name</C></>, note: commandsNote, when: <>User types <C>/command-name</C></>, description: <>A file at <C>commands/deploy.md</C> creates <C>/deploy</C> the same way a skill at <C>skills/deploy/SKILL.md</C> does, and both can be auto-invoked by Claude. Skills use a directory with SKILL.md, letting you bundle reference docs, templates, or scripts alongside the prompt.</>, tips: [<>Use <C>$ARGUMENTS</C> in the file to accept parameters: <C>/fix-issue 123</C></>, 'If a skill and command share a name, the skill takes precedence', 'New commands should usually be skills instead; commands remain supported'], docsLink: '/en/skills', children: [{ id: 'cmd-example', label: 'fix-issue.md', type: 'file', icon: 'md', color: '#788C5D', badge: 'committed', oneLiner: <>Invoked as <C>/fix-issue <number></C></>, note: commandsNote, description: [<>An example command for fixing a GitHub issue. Type <C>/fix-issue 123</C> and the <C>!...</C> line runs <C>gh issue view 123</C> in your shell, injecting the output into the prompt before Claude sees it.</>, <><C>$ARGUMENTS</C> substitutes whatever you typed after the command name. For positional access, use <C>$0</C> <C>$1</C> and so on.</>], example: ---
argument-hint:
!`gh issue view $ARGUMENTS`
Investigate and fix the issue above.
Trace the bug to its root cause
Implement the fix
Write or update tests
Summarize what you changed and why}] }, { id: 'output-styles', label: 'output-styles/', type: 'folder', icon: 'folder', color: '#5AA7A7', oneLiner: 'Project-scoped output styles, if your team shares any', when: 'Files read at startup; the style you select with outputStyle applies to every response', description: <>Output styles are usually personal, so most live in <C>~/.claude/output-styles/</C>. Put one here if your team shares a style, like a review mode everyone uses. See <A href="#ce-global-output-styles">the Global tab</A> for the full explanation and example.</>, docsLink: '/en/output-styles', children: [] }, { id: 'agents', label: 'agents/', type: 'folder', icon: 'folder', color: '#C46686', oneLiner: 'Specialized subagents with their own context window', when: 'Runs in its own context window when you or Claude invoke it', description: 'Each markdown file defines a subagent with its own system prompt, tool access, and optionally its own model. Subagents run in a fresh context window, keeping the main conversation clean. Useful for parallel work or isolated tasks.', tips: ['Each agent gets a fresh context window, separate from your main session', <>Restrict tool access per agent with the <C>tools:</C> frontmatter field</>, 'Type @ and pick an agent from the autocomplete to delegate directly'], docsLink: '/en/sub-agents', children: [{ id: 'agent-reviewer', label: 'code-reviewer.md', type: 'file', icon: 'md', color: '#C46686', badge: 'committed', oneLiner: 'Subagent for isolated code review', when: 'Claude spawns it for review tasks, or you @-mention it from the autocomplete', description: <>An example subagent restricted to read-only tools. The <C>description</C> frontmatter tells Claude when to delegate to it automatically; <C>tools:</C> limits it to Read, Grep, and Glob so it can inspect code but never edit. The body becomes the subagent's system prompt.</>, example:---
name: code-reviewer
description: Reviews code for correctness, security, and maintainability
tools: Read, Grep, Glob
Every finding must include a concrete fix.}] }, { id: 'workflows', label: 'workflows/', type: 'folder', icon: 'folder', color: '#C46686', oneLiner: 'Dynamic workflow scripts that orchestrate many subagents', when: 'Loaded at startup; each file becomes a /<name> command', description: <>Each <C>.js</C> file is a <A href="/docs/en/workflows">dynamic workflow</A>: a script the runtime executes to spawn and coordinate many subagents. Workflows are written by Claude and saved here from <C>/workflows</C> rather than authored from scratch.</>, tips: [<>Save a run from <C>/workflows</C> with <C>s</C> to create one of these</>, <>A project workflow takes precedence over a personal one in <C>~/.claude/workflows/</C> with the same name</>], docsLink: '/en/workflows' }, { id: 'agent-memory', label: 'agent-memory/', type: 'folder', icon: 'folder', color: '#C46686', badge: 'committed', autogen: true, oneLiner: 'Subagent persistent memory, separate from your main session auto memory', when: 'First 200 lines (capped at 25KB) of MEMORY.md loaded into the subagent system prompt when it runs', description: <>Subagents with <C>memory: project</C> in their frontmatter get a dedicated memory directory here. This is distinct from your <A href="/docs/en/memory#auto-memory">main session auto memory</A> at <C>~/.claude/projects/</C>: each subagent reads and writes its own MEMORY.md, not yours.</>, tips: [<>Only created for subagents that set the <C>memory:</C> frontmatter field</>, <>This directory holds project-scoped subagent memory, meant to be shared with your team. To keep memory out of version control use <C>memory: local</C>, which writes to <C>.claude/agent-memory-local/</C> instead. For cross-project memory use <C>memory: user</C>, which writes to <C>~/.claude/agent-memory/</C></>, <>The main session auto memory is a different feature; see <C>~/.claude/projects/</C> in the Global tab</>], docsLink: '/en/sub-agents#enable-persistent-memory', children: [{ id: 'agent-memory-sub', label: '<agent-name>/', type: 'folder', icon: 'folder', color: '#C46686', autogen: true, children: [{ id: 'agent-memory-md', label: 'MEMORY.md', type: 'file', icon: 'md', color: '#C46686', badge: 'committed', autogen: true, oneLiner: 'The subagent writes and maintains this file automatically', when: 'Loaded into the subagent system prompt when the subagent starts', description: <>Works the same as your <A href="/docs/en/memory#auto-memory">main auto memory</A>: the subagent creates and updates this file itself. You do not write it. The subagent reads it at the start of each task and writes back what it learns.</>, example:# code-reviewer memory
Patterns seen
Project uses custom Result<T, E> type, not exceptions
Auth middleware expects Bearer token in Authorization header
Tests use factory functions in test/factories/
Recurring issues
Missing null checks on API responses (src/api/*)
Unhandled promise rejections in background jobs}] }] }] }] }, global: { label: '~/', children: [{ id: 'claude-json', label: '.claude.json', type: 'file', icon: 'json', color: 'var(--ce-text-3)', badge: 'local', oneLiner: 'App state and UI preferences', when: <>Read at session start for your preferences and MCP servers. Claude Code writes back to it when you change settings in <C>/config</C> or approve trust prompts</>, description: <>Holds state that does not belong in settings.json: theme, OAuth session, per-project trust decisions, your personal MCP servers, and UI toggles. Mostly managed through <C>/config</C> rather than editing directly.</>, tips: [<>IDE toggles like <C>autoConnectIde</C> and <C>externalEditorContext</C> live here, not in settings.json</>, <>The <C>projects</C> key tracks per-project state like trust-dialog acceptance and last-session metrics. Permission rules you approve in-session go to <C>.claude/settings.local.json</C> instead</>, <>MCP servers here are yours only: user scope applies across all projects, local scope is per-project but not committed. Team-shared servers go in <C>.mcp.json</C> at the project root instead</>], example:{
"autoConnectIde": true,
"externalEditorContext": true,
"mcpServers": {
"my-tools": {
"command": "npx",
"args": ["-y", "@example/mcp-server"]
}
}
}, docsLink: '/en/settings-reference#global-config-settings' }, { id: 'global-dot-claude', label: '.claude/', type: 'folder', icon: 'folder', color: 'var(--ce-accent)', oneLiner: 'Your personal configuration across all projects', description: 'The global counterpart to your project .claude/ directory. Files here apply to every project you work in and are never committed to any repository.', children: [{ id: 'global-claude-md', label: 'CLAUDE.md', type: 'file', icon: 'md', color: '#6A9BCC', badge: 'local', oneLiner: 'Personal preferences across every project', when: 'Loaded at the start of every session, in every project', description: 'Your global instruction file. Loaded alongside the project CLAUDE.md at session start, so both are in context together. When instructions conflict, project-level instructions take priority. Keep this to preferences that apply everywhere: response style, commit format, personal conventions.', tips: ['Keep it short since it loads into context for every project, alongside that project\'s own CLAUDE.md', 'Good for response style, commit format, and personal conventions'], example: # Global preferences
Keep explanations concise
Use conventional commit format
Show the terminal command to verify changes
Prefer composition over inheritance, docsLink: '/en/memory' }, { id: 'global-settings', label: 'settings.json', type: 'file', icon: 'json', color: 'var(--ce-text-3)', badge: 'local', oneLiner: 'Default settings for all projects', when: 'Your defaults. Project and local settings.json override any keys you also set there', description: [<>Same keys as project <C>settings.json</C>: permissions, hooks, model, environment variables, and the rest. Put settings here that you want in every project, like permissions you always allow, a preferred model, or a notification hook that runs regardless of which project you're in.</>, <>Settings follow a precedence order: project <C>settings.json</C> overrides any matching keys you set here. This is different from CLAUDE.md, where global and project files are both loaded into context rather than merged key by key.</>], example: {
"permissions": {
"allow": [
"Bash(git log *)",
"Bash(git diff *)"
]
}
}, docsLink: '/en/settings' }, { id: 'keybindings', label: 'keybindings.json', type: 'file', icon: 'json', color: 'var(--ce-text-3)', badge: 'local', oneLiner: 'Custom keyboard shortcuts', when: 'Read at session start and hot-reloaded when you edit the file', description: <>Rebind keyboard shortcuts in the interactive CLI. Run <C>/keybindings</C> to create or open this file with a schema reference. Ctrl+C, Ctrl+D, Ctrl+M, and Caps Lock are reserved and cannot be rebound.</>, exampleIntro: <>This example binds <C>Ctrl+E</C> to open your external editor and unbinds <C>Ctrl+U</C> by setting it to <C>null</C>. The <C>context</C> field scopes bindings to a specific part of the CLI, here the main chat input.</>, example: {
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+u": null
}
}
]
}, docsLink: '/en/keybindings' }, { id: 'themes', label: 'themes/', type: 'folder', icon: 'folder', color: '#5AA7A7', oneLiner: 'Custom color themes', when: <>Read at session start and hot-reloaded when files change. Listed in <C>/theme</C></>, description: <>Each <C>.json</C> file defines a custom color theme: a built-in <C>base</C> preset plus an <C>overrides</C> map of color tokens. Create one interactively with <C>/theme</C> or write the JSON by hand. Selecting a custom theme stores <C>custom:<slug></C> as your theme preference.</>, example: {
"name": "Dracula",
"base": "dark",
"overrides": {
"claude": "#bd93f9",
"error": "#ff5555",
"success": "#50fa7b"
}
}, docsLink: '/en/terminal-config#create-a-custom-theme', children: [] }, { id: 'global-projects', label: 'projects/', type: 'folder', icon: 'folder', color: '#E8A45C', autogen: true, oneLiner: "Auto memory: Claude's notes to itself, per project", when: 'MEMORY.md loaded at session start; topic files read on demand', description: 'Auto memory lets Claude accumulate knowledge across sessions without you writing anything. Claude saves notes as it works: build commands, debugging insights, architecture notes. Each project gets its own memory directory keyed by the repository path.', tips: [<>On by default. Toggle with <C>/memory</C> or <C>autoMemoryEnabled</C> in settings</>, 'MEMORY.md is the index loaded each session. The first 200 lines, or 25KB, whichever comes first, are read', 'Topic files like debugging.md are read on demand, not at startup', 'These are plain markdown. Edit or delete them anytime'], docsLink: '/en/memory#auto-memory', children: [{ id: 'memory-dir', label: '<project>/memory/', type: 'folder', icon: 'folder', color: '#E8A45C', autogen: true, oneLiner: "Claude's accumulated knowledge for one project", children: [{ id: 'memory-md', label: 'MEMORY.md', type: 'file', icon: 'md', color: '#E8A45C', badge: 'local', autogen: true, oneLiner: 'Claude writes and maintains this file automatically', when: 'First 200 lines (capped at 25KB) loaded at session start', description: 'Claude creates and updates this file as it works; you do not write it yourself. It acts as an index that Claude reads at the start of every session, pointing to topic files for detail. You can edit or delete it, but Claude will keep updating it.', example: # Memory Index
debugging.md: auth token rotation and DB connection troubleshooting, docsLink: '/en/memory' }, { id: 'memory-topic', label: 'debugging.md', type: 'file', icon: 'md', color: '#E8A45C', badge: 'local', autogen: true, oneLiner: 'Topic notes Claude writes when MEMORY.md gets long', when: 'Claude reads this when a related task comes up', description: 'An example of a topic file Claude creates when MEMORY.md grows too long. Claude picks the filename based on what it splits out: debugging.md, architecture.md, build-commands.md, or similar. You never create these yourself. Claude reads a topic file back only when the current task relates to it.', example: ---
name: Debugging patterns
description: Auth token rotation and database connection troubleshooting for this project
type: reference
Auth Token Issues
Refresh token rotation: old token invalidated immediately
If 401 after refresh: check clock skew between client and server
Database Connection Drops
Connection pool: max 10 in dev, 50 in prod
Always check `docker compose ps` first}] }] }, { id: 'global-rules', label: 'rules/', type: 'folder', icon: 'folder', color: '#9B7BC4', oneLiner: 'User-level rules that apply to every project', when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>, description: 'Same as project .claude/rules/ but applies everywhere. Use this for conventions you want across all your work, like personal code style or commit message format.', docsLink: '/en/memory#organize-rules-with-claude/rules/', children: [] }, { id: 'global-skills', label: 'skills/', type: 'folder', icon: 'folder', color: '#D4A843', oneLiner: 'Personal skills available in every project', when: <>Invoked with <C>/skill-name</C> in any project</>, description: 'Skills you built for yourself that work everywhere. Same structure as project skills: each is a folder with SKILL.md, scoped to your user account instead of a single project.', docsLink: '/en/skills', children: [] }, { id: 'global-commands', label: 'commands/', type: 'folder', icon: 'folder', color: '#788C5D', oneLiner: 'Personal single-file commands available in every project', note: commandsNote, when: <>User types <C>/command-name</C> in any project</>, description: 'Same as project commands/ but scoped to your user account. Each markdown file becomes a command available everywhere.', docsLink: '/en/skills', children: [] }, { id: 'global-output-styles', label: 'output-styles/', type: 'folder', icon: 'folder', color: '#5AA7A7', oneLiner: 'Custom instruction sets that adjust how Claude works', when: 'Files read at startup; the style you select with outputStyle applies to every response', description: [<>Each markdown file defines an output style: a set of instructions for Claude that, by default, also replaces the built-in software-engineering task instructions. Use this to adapt Claude Code for uses beyond coding, or to add teaching or review modes.</>, <>Select a built-in or custom style with <C>/output-style</C>, <C>/config</C>, or the <C>outputStyle</C> key in settings. Styles here are available in every project; project-level styles with the same name take precedence.</>], tips: ['Built-in styles Default, Proactive, Concise, Explanatory, and Learning are included with Claude Code; custom styles go here', <>Set <C>keep-coding-instructions: true</C> in frontmatter to keep the default task instructions alongside your additions</>, 'Switching styles mid-session applies from your next message; in the terminal, a style file you create or edit mid-session is picked up after a restart'], docsLink: '/en/output-styles', children: [{ id: 'output-style-example', label: 'teaching.md', type: 'file', icon: 'md', color: '#5AA7A7', badge: 'local', oneLiner: 'Example style that adds explanations and leaves small changes for you', when: <>Active when <C>outputStyle</C> in settings is set to <C>teaching</C></>, description: <>With this style, Claude adds a "Why this approach" note after each task and leaves TODO(human) markers for changes under 10 lines instead of writing them itself. Select it by setting <C>outputStyle</C> to the filename without .md, or to the <C>name</C> field if you set one in frontmatter.</>, example:---
description: Explains reasoning and asks you to implement small pieces
keep-coding-instructions: true
After completing each task, add a brief "Why this approach" note
explaining the key design decision.
Claude Code liest Anweisungen, Einstellungen, Skills, Subagents und Memory aus Ihrem Projektverzeichnis und aus ~/.claude in Ihrem Home-Verzeichnis. Committen Sie Projektdateien zu git, um sie mit Ihrem Team zu teilen; Dateien in ~/.claude sind persönliche Konfiguration, die für alle Ihre Projekte gilt.
Unter Windows wird ~/.claude zu %USERPROFILE%\.claude aufgelöst. Wenn Sie CLAUDE_CONFIG_DIR setzen, lebt jeder ~/.claude-Pfad auf dieser Seite stattdessen unter diesem Verzeichnis.
Die meisten Benutzer bearbeiten nur CLAUDE.md und settings.json. Wenn Ihr Repository bereits eine AGENTS.md für andere Coding-Agenten hat, kann Claude Code diese eigenständig oder zusammen mit CLAUDE.md lesen. Der Rest des Verzeichnisses ist optional: Fügen Sie Skills, Rules oder Subagents hinzu, wenn Sie sie benötigen.
Erkunden Sie das Verzeichnis
Klicken Sie auf Dateien im Baum, um zu sehen, was jede Datei tut, wann sie geladen wird, und ein Beispiel.
Was nicht angezeigt wird
Der Explorer behandelt Dateien, die Sie erstellen und bearbeiten. Ein paar verwandte Dateien befinden sich an anderen Orten:
Ihre privaten Voreinstellungen für dieses Projekt, geladen zusammen mit CLAUDE.md. Erstellen Sie es manuell und fügen Sie es zu .gitignore hinzu.
AGENTS.md
Projektstammverzeichnis, .claude/ oder ein beliebiges Verzeichnis
Projektanweisungen, die Sie für KI-Codierungs-Agenten schreiben. Claude Code kann sie laden eigenständig oder zusammen mit CLAUDE.md.
Installierte Plugins
~/.claude/plugins
Geklonte Marketplaces, installierte Plugin-Versionen, der installed_plugins.json-Installationsdatensatz und Pro-Plugin-Daten, verwaltet durch claude plugin-Befehle. Plugins synchronisiert von Ihrem claude.ai-Konto werden in ~/.claude/plugins/synced/ heruntergeladen. Für ein Plugin, das von einem Marketplace mit command-Quelle im Link-Modus installiert wurde, speichert Claude Code hier Links statt einer Kopie, und die Dateien des Plugins bleiben in dem Verzeichnis, das der Befehl ausgibt. Ein command-Quelle erfordert Claude Code v2.1.229 oder später. Ein Plugin, das nach relativem Pfad in einem lokalen Marketplace aufgelistet ist, wird auch an Ort und Stelle geladen aus seinem Quellverzeichnis statt aus einer Cache-Kopie. Siehe Plugin-Caching für die Bereinigung verwaister Versionen.
~/.claude enthält auch Daten, die Claude Code während der Arbeit schreibt: Transkripte, Prompt-Verlauf, Datei-Snapshots, Caches und Logs. Siehe Anwendungsdaten unten.
Wählen Sie die richtige Datei
Verschiedene Arten von Anpassungen befinden sich in verschiedenen Dateien. Verwenden Sie diese Tabelle, um zu finden, wo eine Änderung hingehört.
Diese Tabelle listet jede Datei auf, die der Explorer behandelt. Dateien im Projektbereich befinden sich in Ihrem Repo unter .claude/ (oder im Stammverzeichnis für CLAUDE.md, .mcp.json und .worktreeinclude). Dateien im globalen Bereich befinden sich in ~/.claude/ und gelten für alle Projekte.
Klicken Sie auf einen Dateinamen, um diesen Knoten im Explorer oben zu öffnen.
Skills, Befehlsdateien, Subagenten, Ausgabestile und Regeln lesen ihre Konfiguration aus YAML Frontmatter am Anfang der Datei, und jede akzeptiert ihren eigenen Satz von Feldern. Diese Tabelle listet die Feldnamen für jede Datei auf und verlinkt auf die Referenz, die sie beschreibt.
Agenten, die in einem Plugin ausgeliefert werden, berücksichtigen eine Teilmenge der Subagenten-Felder.
Fehlerbehebung bei der Konfiguration
Wenn eine Einstellung, ein Hook oder eine Datei nicht wirksam wird, siehe Debuggen Sie Ihre Konfiguration für die Inspektionsbefehle und eine Symptom-erste Nachschlagetabelle.
Anwendungsdaten
Über die Konfiguration, die Sie erstellen, hinaus, enthält ~/.claude Daten, die Claude Code während Sitzungen schreibt. Diese Dateien sind Klartext. Alles, das durch ein Tool läuft, wird in einem Transkript auf der Festplatte geschrieben: Dateiinhalte, Befehlsausgabe, eingefügter Text.
Automatisch bereinigt
Claude Code löscht die Dateien in den folgenden Pfaden, sobald sie älter als cleanupPeriodDays sind, solange es die Aufbewahrungsfrist sicher bestimmen kann. Der Standard ist 30 Tage und das Minimum ist 1; das Setzen von 0 schlägt mit einem Validierungsfehler fehl. Die gleiche Altersgrenze gilt für die automatische Entfernung von verwaisten Worktrees.
Pfad unter ~/.claude/
Inhalte
projects/<project>/<session>.jsonl
Vollständiges Gesprächstranskript: jede Nachricht, jeder Tool-Aufruf und jedes Tool-Ergebnis
Ein vorheriges Transkript für die Sitzung, das Claude Code beiseite gelegt hat, anstatt es zu überschreiben oder zu löschen. Es wird nicht in der Sitzungsauswahl angezeigt
projects/<project>/<session>/subagents/
Subagent Gesprächstranskripte, entfernt mit dem übergeordneten Sitzungstranskript, wenn es veraltet
Vor-Bearbeitungs-Snapshots von Dateien, die Claude geändert hat, verwendet für Checkpoint-Wiederherstellung. Enthält Snapshots für die 100 neuesten Checkpoints; Snapshot-Dateien, auf die kein beibehaltener Checkpoint verweist, werden gelöscht, außer dem ersten Snapshot jeder Datei
plans/
Plan-Dateien, die während des Plan-Modus geschrieben werden
debug/
Pro-Sitzungs-Debug-Logs, geschrieben während Debug-Logging aktiviert ist, z. B. wenn Sie mit --debug starten oder /debug ausführen
paste-cache/
Inhalte großer Einfügungen
image-cache/<session>/
Angehängte Bilder, die von Claude Code v2.1.274 und früher gespeichert wurden. Spätere Versionen speichern eingefügte und angehängte Bilder außerhalb von ~/.claude, in einem images/-Verzeichnis für jede Sitzung unter dem temporären Verzeichnis, das CLAUDE_CODE_TMPDIR steuert. Der Durchlauf entfernt die Verzeichnisse anderer Sitzungen, die hier übrig gelassen wurden, unabhängig von ihrem Alter.
uploads/<session>/
Dateien, die Sie aus dem Web oder der mobilen App anhängen, und Fotos, die Sie aus der mobilen App anhängen, wenn Sie eine Remote Control Sitzung anschreiben. Ein Anhang zu einer Cloud-Sitzung wird stattdessen in der eigenen Cloud-Umgebung dieser Sitzung gespeichert, nicht auf Ihrem Computer.
session-env/
Pro-Sitzungs-Umgebungsmetadaten
tasks/
Aufgabenlisten, die von den Task-Tools geschrieben werden, ein Verzeichnis pro Liste
shell-snapshots/
Aliase, Funktionen und Shell-Optionen, die beim Start erfasst und vom Bash-Tool auf jeden Befehl angewendet werden. Wird bei sauberer Beendigung entfernt. Die Bereinigung löscht alle, die nach einem Absturz übrig bleiben.
backups/
Frühere Versionen von ~/.claude.json, kopiert, wenn Claude Code die Datei umschreibt. Claude Code behält die fünf neuesten, plus eine Kopie jeder Version, die es nicht analysieren konnte.
feedback-bundles/
Redigierte Transkript-Archive, die von /feedback auf Drittanbieter-Plattformen oder wenn keine Anthropic-Anmeldedaten konfiguriert sind geschrieben werden, um an Ihr Anthropic-Kontoteam gesendet zu werden
feedback/drafts/
Warteschlange Claude-entworfener Feedback in Erwartung Ihrer Überprüfung in /feedback. Bereinigt nach cleanupPeriodDays oder 30 Tagen, je nachdem, welcher Wert kürzer ist. Wenn die Warteschlange ihre Grenze von 10 Entwürfen erreicht, löscht Claude Code den ältesten Entwurf, um Platz zu schaffen.
usage-data/
report.html und zeitgestempelte Report-Kopien, die von /insights geschrieben werden, plus zwischengespeicherte Pro-Sitzungs-Analysedaten, die zu ihrer Erstellung verwendet werden
skills/.trash/, plugins/.trash/
Skills und Plugins, die die claude.ai-Synchronisierung entfernt hat, z. B. nachdem Sie eine auf claude.ai ausgeschaltet haben oder die Synchronisierung beendet haben. Die Dateien bleiben hier, damit Sie sie wiederherstellen können, bis der Durchlauf sie löscht
todos/, statsig/, logs/
Legacy-Verzeichnisse aus älteren Versionen. Nicht mehr geschrieben. Die Bereinigung entfernt deren Inhalte und dann das leere Verzeichnis.
Sitzungsdateien in sessions/, automatisches Memory und Claude Desktop und Cowork Transkripte folgen jeweils ihrer eigenen Aufbewahrungsregel:
sessions/: enthält eine kleine Datei pro laufender Sitzung, verwendet zur Erkennung gleichzeitiger Sitzungen und Abstürze. Es ist nicht Teil des altersgestützten Durchlaufs: Claude Code entfernt jede Datei, wenn ihre Sitzung beendet wird, und löscht Absturzreste beim nächsten Start.
Automatisches Memory: Der Durchlauf löscht nicht die Memory-Dateien im automatischen Memory Verzeichnis eines Projekts, projects/<project>/memory/. Claude Code entfernt dieses Verzeichnis nur, wenn es für die gesamte Aufbewahrungsfrist leer war. Vor v2.1.228 behandelte der Durchlauf Ordner im Memory-Verzeichnis als Sitzungsdaten und konnte alte Dateien darunter löschen.
Claude Desktop und Cowork Transkripte: Claude Code behält das Transkript einer Sitzung, die Sie in Claude Desktop oder Cowork gestartet oder zuletzt fortgesetzt haben, in jedem Alter. Um diesen Transkripten eine Altersgrenze zu geben, setzen Sie desktopSessionCleanupPeriodDays. Wenn verwaltete EinstellungencleanupPeriodDays setzen, löscht Claude Code diese Transkripte stattdessen nach diesem Zeitraum. Erfordert Claude Code v2.1.248 oder später; frühere Versionen löschen sie nach cleanupPeriodDays.
Claude Code überspringt den altersgestützten Durchlauf in diesen Fällen:
Bare-Modus: Wenn Sie claude -p mit --bare ausführen, führt Claude Code den Durchlauf in dieser Sitzung nicht aus.
Angehaltener Durchlauf: Wenn Claude Code die Aufbewahrungsfrist nicht sicher bestimmen kann, hält es den Aufbewahrungsbereinigungsdurchlauf an; das retention_sweep Ereignis listet jede Konfiguration auf, die es anhält. Wenn die Ursache eine Einstellungsdatei ist, die nicht gelesen oder analysiert werden kann, oder Einstellungsfehler mit cleanupPeriodDays oder desktopSessionCleanupPeriodDays explizit gesetzt, zeigt Claude Code auch eine Warnung in /status an, bis Sie die Einstellungsfehler beheben. Wenn verwaltete EinstellungencleanupPeriodDays bereitstellen, führt Claude Code den Durchlauf in jedem Fall mit dem verwalteten Wert aus.
Sitzungs-Scratchpad-Verzeichnis
Das Scratchpad ist ein Pro-Sitzungs-Verzeichnis, das Claude Code Claude für temporäre Dateien bereitstellt: Zwischenergebnisse, Hilfsskripte und Entwürfe, die nicht in Ihr Projekt gehören. Wenn Claude sagt, dass es etwas „in das Scratchpad" gespeichert hat, befindet sich die Datei dort. Claude verwendet es anstelle von /tmp und kann Dateien darin erstellen, bearbeiten und lesen, ohne eine Berechtigungsaufforderung.
Das Scratchpad befindet sich unter Claude Codes temporärem Verzeichnis statt unter ~/.claude. Finden Sie den aktuellen Sitzungspfad für Ihre Plattform:
<project> ist Ihr Arbeitsverzeichnispfad mit jedem Zeichen außer Buchstaben und Ziffern durch - ersetzt, z. B. -Users-you-my-project. Wenn Sie CLAUDE_CODE_TMPDIR setzen, bewegt sich der Baum stattdessen unter dieses Verzeichnis. Hooks erhalten den aktuellen Sitzungspfad als scratchpad_dir.
Scratchpad-Dateien halten so lange wie das Transkript der Sitzung: Der Aufbewahrungsdurchlauf löscht das Verzeichnis, wenn es das Transkript löscht, und claude project purge berührt das temporäre Verzeichnis nicht. Da sich das Verzeichnis unter dem System-Temp-Speicherort befindet, kann Ihr Betriebssystem es auch löschen, z. B. beim Neustart. Um etwas zu behalten, das Claude dort geschrieben hat, bitten Sie Claude, es in Ihr Projekt zu verschieben.
Eine Sitzung hat ein Scratchpad nur, wenn alle diese Bedingungen erfüllt sind:
Sie sind mit einem claude.ai-Konto angemeldet, nicht mit einem API-Schlüssel
Die Sitzung verwendet die Anthropic API, nicht Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry
Der Aufbewahrungsbereinigungsdurchlauf entfernt die folgenden Pfade nicht. Claude Code behält sie, bis Sie sie löschen, abgesehen von den zwei Caches, die es beim Abmelden löscht.
Pfad unter ~/.claude/
Inhalte
history.jsonl
Jeder Prompt, den Sie eingegeben haben, mit Zeitstempel und Projektpfad. Verwendet für Up-Arrow-Abruf, Ctrl+R Verlaufssuche und ! Shell-Befehl-Vervollständigung.
stats-cache.json
Aggregierte Token- und Kostenzählungen, die von /usage angezeigt werden
remote-settings.json
Zwischengespeicherte Kopie von servergesteuerten Einstellungen für Ihre Organisation, oder {} wenn Ihre Organisation keine konfiguriert hat. Nur vorhanden, wenn die Sitzung sie abruft. Claude Code prüft beim Start und stündlich während einer Sitzung auf Updates. Claude Code löscht es beim Abmelden.
cache/changelog.md
Zwischengespeicherte Kopie des Claude Code Änderungsprotokolls, angezeigt von /release-notes. Im Hintergrund aktualisiert.
policy-limits.json
Zwischengespeicherte Feature-Policy-Einstellungen für Ihre Organisation. Nur für einige Kontotypen vorhanden. Automatisch aktualisiert. Eine policy-limits.json.stamp.json Sidecar-Datei zeichnet auf, welches Konto oder API-Schlüssel der Cache gehört. Claude Code löscht beide Dateien beim Abmelden.
Andere Dateien erscheinen je nachdem, welche Funktionen Sie verwenden. Caches und Lock-Dateien können sicher gelöscht werden. Behalten Sie diese Zustandsdateien:
Transkripte und Verlauf sind nicht verschlüsselt im Ruhezustand. OS-Dateiberechtigungen sind der einzige Schutz. Wenn ein Tool eine .env-Datei liest oder ein Befehl eine Anmeldeinformation ausgibt, wird dieser Wert in projects/<project>/<session>.jsonl geschrieben. Um die Exposition zu reduzieren:
Senken Sie cleanupPeriodDays, um zu verkürzen, wie lange Claude Code Transkripte behält
Setzen Sie die Umgebungsvariable CLAUDE_CODE_SKIP_PROMPT_HISTORY, um das Schreiben von Transkripten und Prompt-Verlauf in jedem Modus zu überspringen. Im nicht-interaktiven Modus können Sie stattdessen --no-session-persistence zusammen mit -p übergeben, oder persistSession: false im TypeScript Agent SDK setzen; das Python SDK hat keine entsprechende Option.
Verwenden Sie Berechtigungsregeln, um Lesevorgänge von Anmeldeinformationsdateien zu verweigern
Lokale Daten löschen
Führen Sie claude project purge aus, um den Zustand zu löschen, den Claude Code für ein Projekt hält. Es löscht:
Transkripte und automatisches Memory unter projects/
Pro-Sitzungs-tasks/, debug/ und file-history/ Einträge
Übereinstimmende Prompt-Zeilen in history.jsonl
Der Projekteintrag in ~/.claude.json
Bilder, die Sie in den Sitzungen des Projekts eingefügt oder angehängt haben, und das Scratchpad jeder Sitzung werden unter Claude Codes temporärem Verzeichnis gespeichert, anstatt unter ~/.claude, daher entfernt der Purge sie nicht. Der Aufbewahrungsdurchlauf löscht die Bilder, sobald sie älter als cleanupPeriodDays sind; das Scratchpad einer bereinigten Sitzung bleibt, bis Sie es löschen oder Ihr Betriebssystem das temporäre Verzeichnis löscht.
Der Befehl gibt den vollständigen Löschplan aus und fordert zur Bestätigung auf, bevor etwas entfernt wird.
Die folgenden Beispiele verwenden ~/work/my-repo als Platzhalter. Ersetzen Sie es mit dem Pfad zu Ihrem Projekt. Wenn kein Zustand dem Pfad entspricht, gibt der Befehl einen Fehler aus und beendet sich mit Status 1.
Zeigen Sie den Plan in der Vorschau an, ohne etwas zu löschen:
claude project purge ~/work/my-repo--dry-run
Der Plan listet jedes übereinstimmende Element und den Grund auf, warum es enthalten ist:
Purge plan for /home/user/work/my-repo:
dir: /home/user/.claude/projects/-home-user-work-my-repo
project transcripts (.jsonl) and memory/
config: projects["/home/user/work/my-repo"]
project entry in ~/.claude.json (trust, history, MCP servers)
filter: /home/user/.claude/history.jsonl
12 prompt(s) typed in this project
shell-snapshots/ are not project-scoped and will not be touched
backups/ may still contain this project entry in old .claude.json snapshots (/home/user/.claude/backups); at most 5 are kept and they rotate out automatically
Dry run: 3 item(s) would be deleted.
Löschen Sie mit einer einzelnen Bestätigungsaufforderung:
claude project purge ~/work/my-repo
Der Befehl gibt den gleichen Plan aus, fragt dann Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N] und löscht nur, wenn Sie y antworten.
Lassen Sie den Pfad weg, um ein Projekt aus einer interaktiven Liste auszuwählen.
Überspringen Sie die Bestätigungsaufforderung zur Verwendung in Skripten:
claude project purge ~/work/my-repo--yes
Übergeben Sie --all statt eines Pfads, um den Status für jedes Projekt auf einmal zu bereinigen, was history.jsonl vollständig löscht, anstatt es zu filtern. Übergeben Sie -i, um den Löschplan Schritt für Schritt durchzugehen.
Der Befehl lässt shell-snapshots/ und backups/ allein, da diese nicht projektbezogen sind, und warnt in der Plan-Ausgabe davor.
Sie können auch jeden der oben genannten Anwendungsdaten-Pfade manuell löschen, abgesehen von den Zustandsdateien zum Behalten. Neue Sitzungen sind nicht betroffen. Die folgende Tabelle zeigt, was Sie für vergangene Sitzungen verlieren.
Löschen
Sie verlieren
~/.claude/projects/
Fortsetzen, Fortfahren und Zurückspulen für vergangene Sitzungen, und automatisches Memory für jedes Projekt
~/.claude/history.jsonl
Up-Arrow-Prompt-Abruf, Ctrl+R Verlaufssuche und ! Shell-Befehl-Vervollständigung
Nichts. Legacy-Verzeichnisse nicht von aktuellen Versionen geschrieben.
Löschen Sie nicht ~/.claude.json, ~/.claude/settings.json oder ~/.claude/plugins/: Diese enthalten Ihre Authentifizierung, Voreinstellungen und installierten Plugins.
1544Über die Konfiguration, die Sie erstellen, hinaus, enthält `~/.claude` Daten, die Claude Code während Sitzungen schreibt. Diese Dateien sind Klartext. Alles, das durch ein Tool läuft, landet in einem Transkript auf der Festplatte: Dateiinhalte, Befehlsausgabe, eingefügter Text.1544Über die Konfiguration, die Sie erstellen, hinaus, enthält `~/.claude` Daten, die Claude Code während Sitzungen schreibt. Diese Dateien sind Klartext. Alles, das durch ein Tool läuft, wird in einem Transkript auf der Festplatte geschrieben: Dateiinhalte, Befehlsausgabe, eingefügter Text.
1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Ein vorheriges Transkript für die Sitzung, das Claude Code beiseite gelegt hat, anstatt es zu überschreiben oder zu löschen. Es wird nicht in der Sitzungsauswahl angezeigt |1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Ein vorheriges Transkript für die Sitzung, das Claude Code beiseite gelegt hat, anstatt es zu überschreiben oder zu löschen. Es wird nicht in der Sitzungsauswahl angezeigt |
1556| `projects/<project>/<session>/subagents/` | [Subagent](/docs/de/sub-agents) Gesprächstranskripte, entfernt mit dem übergeordneten Sitzungstranskript, wenn es veraltet |1556| `projects/<project>/<session>/subagents/` | [Subagent](/docs/de/sub-agents) Gesprächstranskripte, entfernt mit dem übergeordneten Sitzungstranskript, wenn es veraltet |
1557| `projects/<project>/<session>/tool-results/` | Große Tool-Ausgaben, die in separate Dateien verschoben werden |1557| `projects/<project>/<session>/tool-results/` | Große Tool-Ausgaben, die in separate Dateien verschoben werden,und vollständige Kopien von [Bildern, die MCP-Tools zurückgeben](/docs/de/mcp#images-in-tool-results) |
1558| `file-history/<session>/` | Vor-Bearbeitungs-Snapshots von Dateien, die Claude geändert hat, verwendet für [Checkpoint-Wiederherstellung](/docs/de/checkpointing). Enthält Snapshots für die 100 neuesten Checkpoints; Snapshot-Dateien, auf die kein beibehaltener Checkpoint verweist, werden gelöscht, außer dem ersten Snapshot jeder Datei |1558| `file-history/<session>/` | Vor-Bearbeitungs-Snapshots von Dateien, die Claude geändert hat, verwendet für [Checkpoint-Wiederherstellung](/docs/de/checkpointing). Enthält Snapshots für die 100 neuesten Checkpoints; Snapshot-Dateien, auf die kein beibehaltener Checkpoint verweist, werden gelöscht, außer dem ersten Snapshot jeder Datei |
1559| `plans/` | Plan-Dateien, die während des [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) geschrieben werden |1559| `plans/` | Plan-Dateien, die während des [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) geschrieben werden |
1560| `debug/` | Pro-Sitzungs-Debug-Logs, geschrieben während Debug-Logging aktiviert ist, z. B. wenn Sie mit [`--debug`](/docs/de/cli-reference#cli-flags) starten oder `/debug` ausführen |1560| `debug/` | Pro-Sitzungs-Debug-Logs, geschrieben während Debug-Logging aktiviert ist, z. B. wenn Sie mit [`--debug`](/docs/de/cli-reference#cli-flags) starten oder `/debug` ausführen |
1582* **Bare-Modus**: Wenn Sie `claude -p` mit [`--bare`](/docs/de/headless#start-faster-with-bare-mode) ausführen, führt Claude Code den Durchlauf in dieser Sitzung nicht aus.1582* **Bare-Modus**: Wenn Sie `claude -p` mit [`--bare`](/docs/de/headless#start-faster-with-bare-mode) ausführen, führt Claude Code den Durchlauf in dieser Sitzung nicht aus.
1583* **Angehaltener Durchlauf**: Wenn Claude Code die Aufbewahrungsfrist nicht sicher bestimmen kann, hält es den Aufbewahrungsbereinigungsdurchlauf an; das [`retention_sweep` Ereignis](/docs/de/monitoring-usage#retention-sweep-event) listet jede Konfiguration auf, die es anhält. Wenn die Ursache eine Einstellungsdatei ist, die nicht gelesen oder analysiert werden kann, oder Einstellungsfehler mit `cleanupPeriodDays` oder `desktopSessionCleanupPeriodDays` explizit gesetzt, zeigt Claude Code auch eine Warnung in `/status` an, bis Sie die Einstellungsfehler beheben. Wenn [verwaltete Einstellungen](/docs/de/server-managed-settings) `cleanupPeriodDays` bereitstellen, führt Claude Code den Durchlauf in jedem Fall mit dem verwalteten Wert aus.1583* **Angehaltener Durchlauf**: Wenn Claude Code die Aufbewahrungsfrist nicht sicher bestimmen kann, hält es den Aufbewahrungsbereinigungsdurchlauf an; das [`retention_sweep` Ereignis](/docs/de/monitoring-usage#retention-sweep-event) listet jede Konfiguration auf, die es anhält. Wenn die Ursache eine Einstellungsdatei ist, die nicht gelesen oder analysiert werden kann, oder Einstellungsfehler mit `cleanupPeriodDays` oder `desktopSessionCleanupPeriodDays` explizit gesetzt, zeigt Claude Code auch eine Warnung in `/status` an, bis Sie die Einstellungsfehler beheben. Wenn [verwaltete Einstellungen](/docs/de/server-managed-settings) `cleanupPeriodDays` bereitstellen, führt Claude Code den Durchlauf in jedem Fall mit dem verwalteten Wert aus.
15841584
1585<h3 id="session-scratchpad-directory">
1586 Sitzungs-Scratchpad-Verzeichnis
1587</h3>
1588
1589Das Scratchpad ist ein Pro-Sitzungs-Verzeichnis, das Claude Code Claude für temporäre Dateien bereitstellt: Zwischenergebnisse, Hilfsskripte und Entwürfe, die nicht in Ihr Projekt gehören. Wenn Claude sagt, dass es etwas „in das Scratchpad" gespeichert hat, befindet sich die Datei dort. Claude verwendet es anstelle von `/tmp` und kann Dateien darin erstellen, bearbeiten und lesen, ohne eine Berechtigungsaufforderung.
1590
1591Das Scratchpad befindet sich unter Claude Codes temporärem Verzeichnis statt unter `~/.claude`. Finden Sie den aktuellen Sitzungspfad für Ihre Plattform:
1597`<project>` ist Ihr Arbeitsverzeichnispfad mit jedem Zeichen außer Buchstaben und Ziffern durch `-` ersetzt, z. B. `-Users-you-my-project`. Wenn Sie [`CLAUDE_CODE_TMPDIR`](/docs/de/env-vars) setzen, bewegt sich der Baum stattdessen unter dieses Verzeichnis. Hooks erhalten den aktuellen Sitzungspfad als [`scratchpad_dir`](/docs/de/hooks#common-input-fields).
1598
1599Scratchpad-Dateien halten so lange wie das Transkript der Sitzung: Der [Aufbewahrungsdurchlauf](#cleaned-up-automatically) löscht das Verzeichnis, wenn es das Transkript löscht, und [`claude project purge`](#clear-local-data) berührt das temporäre Verzeichnis nicht. Da sich das Verzeichnis unter dem System-Temp-Speicherort befindet, kann Ihr Betriebssystem es auch löschen, z. B. beim Neustart. Um etwas zu behalten, das Claude dort geschrieben hat, bitten Sie Claude, es in Ihr Projekt zu verschieben.
1600
1601Eine Sitzung hat ein Scratchpad nur, wenn alle diese Bedingungen erfüllt sind:
1602
1603* Sie sind mit einem claude.ai-Konto angemeldet, nicht mit einem API-Schlüssel
1604* Die Sitzung verwendet die Anthropic API, nicht Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry
1605* [`enableArtifact`](/docs/de/settings-reference#enableartifact) ist nicht auf `false` gesetzt
1586 Behalten, bis Sie sie löschen1608 Behalten, bis Sie sie löschen
1587</h3>1609</h3>
1594| `stats-cache.json` | Aggregierte Token- und Kostenzählungen, die von `/usage` angezeigt werden |1616| `stats-cache.json` | Aggregierte Token- und Kostenzählungen, die von `/usage` angezeigt werden |
1595| `remote-settings.json` | Zwischengespeicherte Kopie von [servergesteuerten Einstellungen](/docs/de/server-managed-settings) für Ihre Organisation, oder `{}` wenn Ihre Organisation keine konfiguriert hat. Nur vorhanden, wenn die Sitzung sie [abruft](/docs/de/server-managed-settings#platform-availability). Claude Code prüft beim Start und stündlich während einer Sitzung auf Updates. Claude Code löscht es beim Abmelden. |1617| `remote-settings.json` | Zwischengespeicherte Kopie von [servergesteuerten Einstellungen](/docs/de/server-managed-settings) für Ihre Organisation, oder `{}` wenn Ihre Organisation keine konfiguriert hat. Nur vorhanden, wenn die Sitzung sie [abruft](/docs/de/server-managed-settings#platform-availability). Claude Code prüft beim Start und stündlich während einer Sitzung auf Updates. Claude Code löscht es beim Abmelden. |
1596| `cache/changelog.md` | Zwischengespeicherte Kopie des Claude Code Änderungsprotokolls, angezeigt von `/release-notes`. Im Hintergrund aktualisiert. |1618| `cache/changelog.md` | Zwischengespeicherte Kopie des Claude Code Änderungsprotokolls, angezeigt von `/release-notes`. Im Hintergrund aktualisiert. |
1597| `policy-limits.json` | Zwischengespeicherte Feature-Policy-Einstellungen für Ihre Organisation. Nur für einige Kontotypen vorhanden. Automatisch aktualisiert. Ein `policy-limits.json.stamp.json` Sidecar-Datei zeichnet auf, welches Konto oder API-Schlüssel der Cache gehört. Claude Code löscht beide Dateien beim Abmelden. |1619| `policy-limits.json` | Zwischengespeicherte Feature-Policy-Einstellungen für Ihre Organisation. Nur für einige Kontotypen vorhanden. Automatisch aktualisiert. Eine `policy-limits.json.stamp.json` Sidecar-Datei zeichnet auf, welches Konto oder API-Schlüssel der Cache gehört. Claude Code löscht beide Dateien beim Abmelden. |
1626* Übereinstimmende Prompt-Zeilen in `history.jsonl`1648* Übereinstimmende Prompt-Zeilen in `history.jsonl`
1627* Der Projekteintrag in `~/.claude.json`1649* Der Projekteintrag in `~/.claude.json`
16281650
1629Bilder, die Sie in den Sitzungen des Projekts eingefügt oder angehängt haben, werdenunterdemtemporärenVerzeichnisvon Claude Code gespeichert, anstatt unter `~/.claude`, daher entfernt der Purge sie nicht. Der [Aufbewahrungsdurchlauf](#cleaned-up-automatically) löscht sie, sobald sie älter als `cleanupPeriodDays` sind.1651Bilder, die Sie in den Sitzungen des Projekts eingefügt oder angehängt haben, unddas[Scratchpad](#session-scratchpad-directory)jederSitzungwerdenunter Claude Codestemporärem Verzeichnis gespeichert, anstatt unter `~/.claude`, daher entfernt der Purge sie nicht. Der [Aufbewahrungsdurchlauf](#cleaned-up-automatically) löscht die Bilder, sobald sie älter als `cleanupPeriodDays` sind; das Scratchpad einer bereinigten Sitzung bleibt, bis Sie es löschen oder Ihr Betriebssystem das temporäre Verzeichnis löscht.
16301652
1631Der Befehl gibt den vollständigen Löschplan aus und fordert zur Bestätigung auf, bevor etwas entfernt wird.1653Der Befehl gibt den vollständigen Löschplan aus und fordert zur Bestätigung auf, bevor etwas entfernt wird.