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

FileRole
~/.claude/CLAUDE.mdGlobal instructions, loaded in every session (11 KB)
~/.claude/settings.jsonGlobal settings: permissions, hooks, env (28 KB)
~/.claude/config.jsonSmall config file (89 bytes, last changed October 2025)
~/.claude.jsonApp 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 (with list.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-ju included

Runtime state and cache

  • history.jsonl, stats-cache.json, .last-cleanup
  • sessions/: 4 live sessions (.json + .key)
  • ide/: 10 lock files, probably left over from closed VS Code windows
  • cache/: changelog.md, model-catalog
  • debug/, 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

ProjectFiles
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
genjiSame 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-websiteCLAUDE.md, empty .claude/
ROAC-registrarCLAUDE.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.md and .claude/, shipped with OpenZeppelin Contracts
  • ~/.vscode/extensions/: Prettier's CLAUDE.md and .claude/, CMake Tools' .mcp.json

Things to clean up

  • Stray skill: xszc/.claude/skills/switch-network.json is not inside a <name>/SKILL.md folder, so it never loads as a skill.
  • Duplicate skills: check-pricing and qgen-issue exist both globally and in qgen; inside qgen, both copies are offered.
  • Copied command: w3pk-local.md is 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.md instead.
  • Watch out: a CLAUDE.local.md counts as a CLAUDE.md, so in a repo that relies on AGENTS.md, adding one stops Claude from reading AGENTS.md unless you switch the project instructions setting to claude-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:

ScopeStored inShared
Local (default)~/.claude.json, under the project's pathNo
Project.mcp.json at the project rootYes, via git
User~/.claude.json, top levelNo, 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

PathScopeRole
.claude/rules/*.md, ~/.claude/rules/*.mdProject / globalRules: CLAUDE.md split into topic files, optionally loaded only for matching paths
.claude/agents/, ~/.claude/agents/Project / globalSubagents with their own prompt, tools and context window
.claude/agent-memory/, ~/.claude/agent-memory/Project / globalPersistent memory for subagents (memory: project or memory: user)
.claude/output-styles/, ~/.claude/output-styles/Project / globalOutput styles that change how Claude writes its replies
.claude/workflows/, ~/.claude/workflows/Project / globalWorkflow scripts that orchestrate subagents
~/.claude/keybindings.jsonGlobalCustom keyboard shortcuts
~/.claude/themes/*.jsonGlobalCustom color themes
.worktreeincludeProjectLists gitignored files, such as .env, to copy into new worktrees
AGENTS.mdProjectInstructions shared with other coding agents; read when there is no CLAUDE.md
/Library/Application Support/ClaudeCode/CLAUDE.md and managed-settings.jsonMachineManaged policy that overrides everything. Meant for organizations, not useful on a personal Mac

Precedence

Settings, highest first (from the settings docs):

  1. Managed settings
  2. Command line (claude --settings)
  3. .claude/settings.local.json
  4. .claude/settings.json
  5. ~/.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.

Further reading