---
title: Claude files
description: Inventory of every Claude Code file on this Mac, global and per project, plus the file types not used yet and what each would do.
date: 2026-09-22
lang: en-US
author: Julien Béranger
model: Claude Sonnet 5
source: https://julienberanger.com/claude-code-files-inventory
---

# Claude files

[Claude Code](https://code.claude.com/docs/en/claude-directory) 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](https://code.claude.com/docs/en/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](https://modelcontextprotocol.io/) 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](https://code.claude.com/docs/en/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](https://code.visualstudio.com/) 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

| 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.md` and `.claude/`, shipped with [OpenZeppelin Contracts](https://github.com/OpenZeppelin/openzeppelin-contracts)
- `~/.vscode/extensions/`: [Prettier](https://prettier.io/)'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](https://code.claude.com/docs/en/claude-directory).

### `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](https://code.claude.com/docs/en/memory#import-additional-files), 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`](https://code.claude.com/docs/en/memory#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](https://code.claude.com/docs/en/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:**

  ```json
  {
    "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](https://code.claude.com/docs/en/memory#organize-rules-with-claude/rules/): `CLAUDE.md` split into topic files, optionally loaded only for matching `paths` |
| `.claude/agents/`, `~/.claude/agents/` | Project / global | [Subagents](https://code.claude.com/docs/en/sub-agents) 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](https://code.claude.com/docs/en/claude-directory#ce-output-styles) that change how Claude writes its replies |
| `.claude/workflows/`, `~/.claude/workflows/` | Project / global | [Workflow scripts](https://code.claude.com/docs/en/claude-directory#ce-workflows) that orchestrate subagents |
| `~/.claude/keybindings.json` | Global | [Custom keyboard shortcuts](https://code.claude.com/docs/en/claude-directory#ce-keybindings) |
| `~/.claude/themes/*.json` | Global | [Custom color themes](https://code.claude.com/docs/en/claude-directory#ce-themes) |
| `.worktreeinclude` | Project | Lists [gitignored files](https://code.claude.com/docs/en/claude-directory#ce-worktreeinclude), 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](https://code.claude.com/docs/en/managed-settings) that overrides everything. Meant for organizations, not useful on a personal Mac |

## Precedence

Settings, highest first (from the [settings docs](https://code.claude.com/docs/en/settings)):

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](https://code.claude.com/docs/en/memory), 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

- [Explore the `.claude` directory](https://code.claude.com/docs/en/claude-directory)
- [How Claude remembers your project](https://code.claude.com/docs/en/memory)
- [Settings files and precedence](https://code.claude.com/docs/en/settings)
- [Connect Claude Code to tools via MCP](https://code.claude.com/docs/en/mcp)
- [Hooks](https://code.claude.com/docs/en/hooks)
