Claude files
Julien Béranger
+ Claude Sonnet 5
Claude Code reads its configuration from two places: the global ~/.claude/ folder (plus ~/.claude.json), and each project's root and .claude/ folder. The inventory below was taken on 2026-09-22.
Global (~)
Config and instructions
| File | Role |
|---|---|
~/.claude/CLAUDE.md | Global instructions, loaded in every session (11 KB) |
~/.claude/settings.json | Global settings: permissions, hooks, env (28 KB) |
~/.claude/config.json | Small config file (89 bytes, last changed October 2025) |
~/.claude.json | App state written by Claude Code itself: sign-in, user and local-scope MCP servers, per-project trust (100 KB) |
~/.claude.json.backup* (6 files in ~) | Old backups; the July one weighs 464 KB |
~/.claude/backups/.claude.json.backup.* (5 files) | Rolling backups Claude Code keeps before rewriting ~/.claude.json |
Skills and commands
~/.claude/skills/:add,bypass,check-pricing,clean-up,genji-sync,list(withlist.sh),md,qgen-issue,synced/,.trash/~/.claude/commands/share.md
Plugins
~/.claude/plugins/installed_plugins.json,known_marketplaces.json~/.claude/plugins/cache/,marketplaces/,synced/
Memory and transcripts
~/.claude/projects/<encoded-path>/: session transcripts for 30 projects~/.claude/projects/*/memory/: auto memory for 26 of them,-Users-juincluded
Runtime state and cache
history.jsonl,stats-cache.json,.last-cleanupsessions/: 4 live sessions (.json+.key)ide/: 10 lock files, probably left over from closed VS Code windowscache/:changelog.md,model-catalogdebug/,file-history/(170 entries),session-env/(368 entries),shell-snapshots/,telemetry/,todos/
No managed policy folder (/Library/Application Support/ClaudeCode) and no Claude folder in ~/Library/Application Support.
Per project
| Project | Files |
|---|---|
| awad, genji-passkey, presidentielle, rukh-ui, rukh-v3-ui, w3hc-web, w3hc-website | .claude/CLAUDE.md, .claude/settings.json, .claude/settings.local.json, .claude/commands/w3pk-local.md |
| genji | Same as above, plus a root CLAUDE.md |
| rukh | .claude/CLAUDE.md |
| shebam | .claude/CLAUDE.md, .claude/settings.local.json |
| qgen | .claude/settings.local.json; .claude/skills/: check-dtu (+ refs.sh), check-pricing, context-update (+ validate.sh), qgen-issue |
| xszc | .claude/settings.local.json, .claude/skills/switch-network.json |
| personal-website | CLAUDE.md, empty .claude/ |
| ROAC-registrar | CLAUDE.md |
| affix-ui, affix-v3, avventura-ui, avventura-v3, love, w3pk, wulong, zk-api | .claude/settings.local.json |
Third-party files, not written by you:
love/lib/openzeppelin-contracts/CLAUDE.mdand.claude/, shipped with OpenZeppelin Contracts~/.vscode/extensions/: Prettier'sCLAUDE.mdand.claude/, CMake Tools'.mcp.json
Things to clean up
- Stray skill:
xszc/.claude/skills/switch-network.jsonis not inside a<name>/SKILL.mdfolder, so it never loads as a skill. - Duplicate skills:
check-pricingandqgen-issueexist both globally and in qgen; inside qgen, both copies are offered. - Copied command:
w3pk-local.mdis duplicated in 7 repos. One copy in~/.claude/commands/would cover them all. - Old backups: the six
~/.claude.json.backup*files in~are no longer needed; Claude Code now keeps its backups in~/.claude/backups/.
File types you could use
None of these exist on this machine yet. All paths come from the .claude directory reference.
CLAUDE.local.md
Personal instructions for one project, kept out of git. It sits at the project root next to CLAUDE.md and loads alongside it, appended after CLAUDE.md in the same directory, so it is the last thing Claude reads at that level.
- Use it for: things only you need in that repo, such as local URLs, test accounts, a personal deviation from the team's
CLAUDE.md. - Add it to
.gitignore: Claude Code does not do it for you. - Worktrees: a gitignored file exists only in the worktree where you created it. To share it across worktrees, put the content in your home directory and import it with
@~/path/to/file.mdinstead. - Watch out: a
CLAUDE.local.mdcounts as aCLAUDE.md, so in a repo that relies onAGENTS.md, adding one stops Claude from readingAGENTS.mdunless you switch the project instructions setting toclaude-md-and-agents-md.
.mcp.json
MCP servers for one project, shared with the team through git. It sits at the project root.
MCP servers have three scopes:
| Scope | Stored in | Shared |
|---|---|---|
| Local (default) | ~/.claude.json, under the project's path | No |
| Project | .mcp.json at the project root | Yes, via git |
| User | ~/.claude.json, top level | No, but applies to every project |
-
Format:
{ "mcpServers": { "api-server": { "type": "http", "url": "${API_BASE_URL:-https://api.example.com}/mcp", "headers": { "Authorization": "Bearer ${API_KEY}" } } } } -
Secrets:
${VAR}and${VAR:-default}expand from the environment, so keys stay out of the repo. -
Approval: interactive sessions ask you to approve a project's servers before using them. Reset your choices with
claude mcp reset-project-choices. -
Create one:
claude mcp add --scope project <name> <url>. -
Precedence: when the same server name is defined in several scopes, local wins over project, which wins over user. The whole entry comes from the winning scope; fields are not merged.
Other locations
| Path | Scope | Role |
|---|---|---|
.claude/rules/*.md, ~/.claude/rules/*.md | Project / global | Rules: CLAUDE.md split into topic files, optionally loaded only for matching paths |
.claude/agents/, ~/.claude/agents/ | Project / global | Subagents with their own prompt, tools and context window |
.claude/agent-memory/, ~/.claude/agent-memory/ | Project / global | Persistent memory for subagents (memory: project or memory: user) |
.claude/output-styles/, ~/.claude/output-styles/ | Project / global | Output styles that change how Claude writes its replies |
.claude/workflows/, ~/.claude/workflows/ | Project / global | Workflow scripts that orchestrate subagents |
~/.claude/keybindings.json | Global | Custom keyboard shortcuts |
~/.claude/themes/*.json | Global | Custom color themes |
.worktreeinclude | Project | Lists gitignored files, such as .env, to copy into new worktrees |
AGENTS.md | Project | Instructions shared with other coding agents; read when there is no CLAUDE.md |
/Library/Application Support/ClaudeCode/CLAUDE.md and managed-settings.json | Machine | Managed policy that overrides everything. Meant for organizations, not useful on a personal Mac |
Precedence
Settings, highest first (from the settings docs):
- Managed settings
- Command line (
claude --settings) .claude/settings.local.json.claude/settings.json~/.claude/settings.json
CLAUDE.md files don't override each other: they are concatenated, from the filesystem root down to the working directory, with each directory's CLAUDE.local.md after its CLAUDE.md. Files in subdirectories load on demand, when Claude reads files there.