Skip to main content

Files on Disk

Claude Code keeps its state in plain files. Some you write, such as settings and CLAUDE.md. Others Claude Code writes, such as transcripts and caches. This page lists them by place, says what each one is, and links to the page with the details.

Source: Explore the .claude Directory and the program.

warning

The files are not encrypted. A secret that a tool prints goes into the transcript. Every prompt you type goes into history.jsonl.

The Big Picture​

Files in a Project​

You usually commit these files, except the ones marked local.

PathStatusYou write?What it isPage
.claude/settings.json
Documented: An official docs page names this item.
✅Shared project settings.Settings Files and Scopes
.claude/settings.local.json
Documented: An official docs page names this item.
✅Your private project settings. Claude Code adds it to your global git excludes.Settings Files and Scopes
CLAUDE.md or .claude/CLAUDE.md
Documented: An official docs page names this item.
✅Project instructions. Files in the working folder and each folder above it load at launch.Memory and Rules
CLAUDE.local.md
Documented: An official docs page names this item.
✅Private project notes. Add it to .gitignore.Memory and Rules
AGENTS.md or .claude/AGENTS.md
Documented: An official docs page names this item.
✅Claude Code reads it when no CLAUDE.md or CLAUDE.local.md is in or above the working folder.Memory and Rules
.claude/rules/**/*.md
Documented: An official docs page names this item.
✅Rules. A paths key limits a rule to matching files.Memory and Rules
<subfolder>/CLAUDE.md
Documented: An official docs page names this item.
✅Loads after Claude reads or edits a file in that subfolder.Memory and Rules
.claude/skills/<name>/SKILL.md
Documented: An official docs page names this item.
✅A project skill.Skills and Commands
.claude/commands/<name>.md
Documented: An official docs page names this item.
✅A project slash command. Skills replace this form, but it still loads.Slash Commands
.claude/agents/*.md
Documented: An official docs page names this item.
✅A project subagent. The closest definition wins.Subagents
.claude/agent-memory/
Documented: An official docs page names this item.
❌Memory of subagents that set memory: project. memory: local uses .claude/agent-memory-local/.Subagent Frontmatter
.claude/output-styles/*.md
Documented: An official docs page names this item.
✅A project output style.Output Styles
.mcp.json
Documented: An official docs page names this item.
✅Project MCP servers. Claude Code asks you to approve them first.MCP Config

Files in Your Home Folder​

CLAUDE_CONFIG_DIR moves ~/.claude. It does not move ~/.claude.json unless you set the variable.

PathStatusYou write?What it isPage
~/.claude.json
Documented: An official docs page names this item.
Mostly noApp state, sign-in data, personal and local MCP servers, and per-project state. Claude Code writes it.Extra Keys and Global Config
~/.claude/settings.json
Documented: An official docs page names this item.
✅Your user settings.Settings Files and Scopes
~/.claude/CLAUDE.md
Documented: An official docs page names this item.
✅Your personal instructions for every project.Memory and Rules
~/.claude/rules/*.md
Documented: An official docs page names this item.
✅Your personal rules. They load before project rules.Memory and Rules
~/.claude/skills/<name>/SKILL.md
Documented: An official docs page names this item.
✅Your personal skills.Skills and Commands
~/.claude/skills/synced/
Documented: An official docs page names this item.
❌Skills from your claude.ai account.Skills and Commands
~/.claude/skills/.trash/, ~/.claude/plugins/.trash/
Documented: An official docs page names this item.
❌Removed synced items. They stay so you can recover them until the retention sweep deletes them. The sweep uses cleanupPeriodDays, which is 30 days by default.Skills and Commands
~/.claude/commands/
Documented: An official docs page names this item.
✅Your personal slash commands.Slash Commands
~/.claude/agents/*.md
Documented: An official docs page names this item.
✅Your personal subagents.Subagents
~/.claude/output-styles/*.md
Documented: An official docs page names this item.
✅Your personal output styles.Output Styles
~/.claude/keybindings.json
Documented: An official docs page names this item.
✅Your keyboard shortcuts. Run /keybindings to open it.Slash Commands
~/.claude/agent-memory/
Documented: An official docs page names this item.
❌Memory of subagents that set memory: user.Subagent Frontmatter

Plugins and Marketplaces​

Source: Plugin Loading Reference.

PathStatusWhat it isPage
~/.claude/plugins/
Documented: An official docs page names this item.
The plugin root. CLAUDE_CODE_PLUGIN_CACHE_DIR sets this parent folder.Plugin Loading
plugins/cache/<marketplace>/<plugin>/<version>/
Undocumented: Only the program shows this item. It can change without notice.
One copy of each installed version.Plugin Loading
plugins/data/<id>/
Documented: An official docs page names this item.
The folder behind ${CLAUDE_PLUGIN_DATA}. It survives updates.Plugin Loading
plugins/installed_plugins.json
Undocumented: Only the program shows this item. It can change without notice.
The install records. Claude Code may keep dated set-aside or unreadable copies.Plugin Loading
plugins/known_marketplaces.json
Documented: An official docs page names this item.
The marketplace records.Plugin Loading
plugins/marketplaces/<name>
Documented: An official docs page names this item.
A clone of each marketplace.Marketplaces
plugins/synced
Documented: An official docs page names this item.
Plugins synced from claude.ai. The id is <name>@synced.Plugin Loading
<plugin>/.claude-plugin/plugin.json
Documented: An official docs page names this item.
The manifest inside a plugin.Plugin Manifest
.claude-plugin/marketplace.json
Documented: An official docs page names this item.
The catalog inside a marketplace repository.Marketplaces
<plugin>/hooks/hooks.json
Documented: An official docs page names this item.
Hooks and mod modules that a plugin ships.Hooks Configuration
.claude-plugin/types/
Documented: An official docs page names this item.
Type files that Claude Code writes for a mod that you load from a folder.Files, Nouns, and Gates

Sessions and Transcripts​

All paths here are under ~/.claude/. <project> is the project folder path. In it, - replaces every character other than a letter or digit. Source: Explore the .claude Directory.

PathStatusWhat it isCleaned by age?
projects/<project>/<session>.jsonl
Documented: An official docs page names this item.
The transcript of one session.✅
projects/<project>/<session>/subagents/
Documented: An official docs page names this item.
Subagent transcripts.✅
projects/<project>/<session>/tool-results/
Documented: An official docs page names this item.
Large tool outputs and MCP images.✅
projects/<project>/memory/
Documented: An official docs page names this item.
Auto memory. MEMORY.md is the index.❌
file-history/<session>/
Documented: An official docs page names this item.
Snapshots from before edits, for rewind.✅
plans/
Documented: An official docs page names this item.
Plan files from plan mode.✅
tasks/
Documented: An official docs page names this item.
Task lists.✅
dev-mods/<session>/
Documented: An official docs page names this item.
Mods that Claude wrote during a session.✅
uploads/<session>/
Documented: An official docs page names this item.
Files attached from the web or mobile app.✅
debug/
Documented: An official docs page names this item.
Debug logs, written while debug logging is on.✅
paste-cache/
Documented: An official docs page names this item.
Large pastes.✅
shell-snapshots/, session-env/
Documented: An official docs page names this item.
Shell setup and per-session metadata.✅
backups/
Documented: An official docs page names this item.
Copies of ~/.claude.json. The five newest stay.✅
sessions/
Documented: An official docs page names this item.
One small file for each running session.❌
history.jsonl
Documented: An official docs page names this item.
Every prompt you typed, for up-arrow and Ctrl+R.Entries age out
feedback-bundles/, feedback/drafts/
Documented: An official docs page names this item.
Feedback archives and drafts that you have not sent.Drafts age out
usage-data/
Documented: An official docs page names this item.
Reports from /insights and their cached data.❌

The full list, the retention rules, and the controls are on Sessions and Storage. The line format of a transcript is on Transcript Format.

Caches and Account Files​

PathStatusWhat it isPage
~/.claude/.credentials.json
Documented: An official docs page names this item.
Your login credentials. On macOS, the Keychain holds them. Claude Code uses this file when the Keychain rejects the write. On Linux and Windows, Claude Code uses this file (mode 0600 on Linux). Keep it private and do not delete it.Sessions and Storage
~/.claude/stats-cache.json
Documented: An official docs page names this item.
Totals that /usage shows.Sessions and Storage
~/.claude/remote-settings.json
Documented: An official docs page names this item.
Cached server-managed settings, or {}.Enterprise Settings
~/.claude/policy-limits.json
Documented: An official docs page names this item.
Cached organization limits. Some account types only.Enterprise Settings
~/.claude/cache/changelog.md
Documented: An official docs page names this item.
A cached copy of the changelog for /release-notes.What Changed
~/.claude/daemon/roster.json, ~/.claude/jobs/<id>/state.json, ~/.claude/jobs/<id>/tmp/
Documented: An official docs page names this item.
The list of running background sessions, the state of each session, and its scratch folder. Keep them. The official "Agent View" page describes them.Sessions and Storage
state/, mods/, bridge-spawn/, seed-admin/, downloads/, cache/model-catalog/
Undocumented: Only the program shows this item. It can change without notice.
Present on a 2.1.305 machine (after 2.1.305 was installed, only cache/model-catalog/ and a type file under mods/handoff/ were written; bridge-spawn/, seed-admin/, and downloads/ are empty and state/ was last written before the install) or named in the program. No docs page describes them. The program describes state/, seed-admin/, bridge-spawn/, and cache/model-catalog/; see the link.Sessions and Storage

Names in the Config Folder​

The tables above show full paths. This table lists each name on its own, so you can look one up. The paths are under ~/.claude/ unless the Where column says otherwise. The program holds more names than this table lists. They are internal files, or names with a use that this page could not confirm.

NameStatusWhereWhat it is
settings.json
Documented: An official docs page names this item.
~/.claude/, .claude/Your user or project settings.
keybindings.json
Documented: An official docs page names this item.
~/.claude/Your keyboard shortcuts. The contexts and actions are on Keybindings.
commands
Documented: An official docs page names this item.
~/.claude/, .claude/Slash commands.
skills
Documented: An official docs page names this item.
~/.claude/, .claude/Skills.
rules
Documented: An official docs page names this item.
~/.claude/, .claude/Rules.
output-styles
Documented: An official docs page names this item.
~/.claude/, .claude/Output styles.
plugins
Documented: An official docs page names this item.
~/.claude/The plugin root.
agent-memory
Documented: An official docs page names this item.
~/.claude/, .claude/Memory of subagents.
projects
Documented: An official docs page names this item.
~/.claude/Transcripts and auto memory, one folder for each project.
sessions
Documented: An official docs page names this item.
~/.claude/One small file for each running session.
tasks
Documented: An official docs page names this item.
~/.claude/Task lists.
plans
Documented: An official docs page names this item.
~/.claude/Plan files from plan mode.
debug
Documented: An official docs page names this item.
~/.claude/Debug logs.
paste-cache
Documented: An official docs page names this item.
~/.claude/Large pastes.
uploads
Documented: An official docs page names this item.
~/.claude/Files attached from the web or mobile app.
dev-mods
Documented: An official docs page names this item.
~/.claude/Mods that Claude wrote during a session.
shell-snapshots
Documented: An official docs page names this item.
~/.claude/Shell setup.
backups
Documented: An official docs page names this item.
~/.claude/Copies of ~/.claude.json. The five newest stay.
usage-data
Documented: An official docs page names this item.
~/.claude/Reports from /insights and their cached data.
jobs
Documented: An official docs page names this item.
~/.claude/The state of background sessions.
daemon
Documented: An official docs page names this item.
~/.claude/The list of running background sessions.
cache
Documented: An official docs page names this item.
~/.claude/Caches, such as changelog.md.
changelog.md
Documented: An official docs page names this item.
~/.claude/cache/A cached copy of the changelog for /release-notes.
stats-cache.json
Documented: An official docs page names this item.
~/.claude/Totals that /usage shows.
remote-settings.json
Documented: An official docs page names this item.
~/.claude/Cached server-managed settings.
policy-limits.json
Documented: An official docs page names this item.
~/.claude/Cached organization limits.
feedback-bundles
Documented: An official docs page names this item.
~/.claude/Feedback archives.
drafts
Documented: An official docs page names this item.
~/.claude/feedback/Feedback drafts that you have not sent.
state
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/Staged settings changes and consent records. See Sessions and Storage.
seed-admin
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/The root for temp folders of cloud-session uploads. See Sessions and Storage.
model-catalog
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/cache/Cached model catalog files and masked-ids.json. See Sessions and Storage.
.config.json
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/The old place of the global config. The program uses it when it is a non-empty file. Otherwise it uses ~/.claude.json.
.last-cleanup
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/Holds an ISO time. The program reads the age of the file to skip a new cleanup run.
.deep-link-register-failed
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/A marker that the deep-link registration failed. The program reads the age of the file. It does not try again for a while.
.last-update-result.json
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/The result of the last update, with the fields outcome (success or failed), status, version_from, version_to, and error_code.
.update.lock
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/The update lock. The program treats a lock younger than 5 minutes as held.
active-time.json
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/A ledger of active time, with version 1 and a windows list.
asset-cache
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/plugins/The cache of plugin binary assets.
cowork_plugins
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/The plugin root in place of plugins when CLAUDE_CODE_USE_COWORK_PLUGINS is on.
daemon.lock
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/The lock file of the daemon.
daemon.log
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/The log of the daemon. The older copy is daemon.log.1.
daemon.status.json
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/Status that the daemon supervisor writes. It holds the supervisor process id.
daemon.scheduled.status.json
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/Status that the scheduled-task worker writes. It holds the worker process id.
gh-pr-status-cache.json
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/A cache of pull request statuses from GitHub.
mcp-needs-auth-cache.json
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/The MCP needs-auth cache.
my-closed-issues.json
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/cache/A cached list of closed issues. Each entry has number, title, and closedAt.
startup-perf
Undocumented: Only the program shows this item. It can change without notice.
~/.claude/A .json and a .txt file that CLAUDE_CODE_PROFILE_STARTUP=1 writes. See Probes.

Managed Files​

An administrator puts these on the machine. A user cannot override them.

PathStatusWhat it isPage
managed-settings.json and managed-settings.d/*.json
Documented: An official docs page names this item.
Organization settings. The folder is next to the file. Its files merge in alphabetical order.Settings Files and Scopes
Managed CLAUDE.md
Documented: An official docs page names this item.
Organization instructions. A user cannot exclude it.Memory and Rules
managed-mcp.json
Documented: An official docs page names this item.
A fixed set of MCP servers. It gives the organization exclusive control.MCP Settings and Policy
Managed skills <managed dir>/.claude/skills/
Documented: An official docs page names this item.
Skills for all users on a machine. They win over personal and project skills.Skills and Commands

The folder is /Library/Application Support/ClaudeCode/ on macOS, /etc/claude-code/ on Linux and WSL, and C:\Program Files\ClaudeCode\ on Windows.

Settings Precedence​

When two settings files set the same key, the higher one wins.

1. Managed settings
2. --settings (command line)
3. .claude/settings.local.json
4. .claude/settings.json
5. ~/.claude/settings.json

List keys such as permissions.allow merge across files. The exceptions and the merge rules are on Settings Files and Scopes.

Example​

You want to find where Claude Code kept the last session in /work/app. Then you want to remove old ones.

ls ~/.claude/projects/-work-app/
claude purge --dry-run

The first command lists the transcripts of that project. The second shows what claude purge would delete. It deletes nothing.

Exact Fields​

The exact fields of ~/.claude.json are in this schema: https://clawdipedia.cc/schemas/claude-code-claude-json.json. The program builds this payload in code, not with a validator. So the schema comes from that code. A field marked x-unverified has a type that the code does not show. A field marked x-observed is a field that a probe saw. It lists every field of this release. Build on the fields it names. Look each one up there before you rely on it.