The CLAUDE.md you wrote last lesson sits in your project’s top folder. That’s the most common spot, but not the only one. The same file can live in three different places, and the difference between them is who and when it applies to.
Project, personal, and nested — three locations, three scopes. Claude reads all of them that apply and stacks them together.
The three places
1. Project — CLAUDE.md at the top of the repo.
This is the one you already made. It’s about this project: how to run it, its conventions, what to avoid. Because it lives in the repo, it gets committed to git — so every teammate (and their Claude) gets the exact same notes. This is the shared one.
2. Personal — CLAUDE.md in your home folder, at ~/.claude/CLAUDE.md.
This one isn’t tied to any project. It applies to every project you open, on your machine only. It’s the place for how you, personally, like to work — “explain your reasoning before making big changes,” “I prefer concise answers,” “I’m still learning, so define jargon when you use it.” Nobody else sees it. It’s your default, everywhere.
3. Nested — a CLAUDE.md deeper inside a big project.
In a project split into pieces — your site has a server/ folder for its tiny backend, separate from the plain HTML pages up top — you can drop a CLAUDE.md inside a subfolder. Claude picks it up when it’s working on files in that part of the tree. Most people never need this — it’s for big, mixed codebases. Just know it exists.
They stack — they don’t fight
Here’s the part that’s genuinely useful: these don’t override each other. They combine.
When you’re working in a project, Claude reads your personal
CLAUDE.mdand the project’sCLAUDE.mdand any nested one that applies — all at once.
So your personal “keep answers concise” rides along on top of the project’s “plain HTML and CSS, don’t touch messages.json.” General preferences in your home folder; project-specific facts in the repo. They layer cleanly, like putting on a sweater over a shirt — both are still there.
Which one should you reach for?
A quick rule:
- Would every teammate want this? → project
CLAUDE.md(in the repo). - Is this just about how you like to work, across all your projects? → personal
~/.claude/CLAUDE.md. - Does it only matter inside one corner of a giant repo? → nested
CLAUDE.md.
When in doubt, project-level is the safe default. You can always move a line to your personal file later.
See two of them stack
“Three places that stack” is easier to believe once you’ve watched two of them sit in the same project at once. You can set this up without leaving the chat. With your project open in Claude Desktop, ask:
Add a project CLAUDE.md saying it's a plain HTML/CSS site (don't touch
messages.json), and a second CLAUDE.md inside the server/ folder saying
that folder is the tiny Node backend. Then show me both files.
Claude proposes the two files, you accept each one in the visual diff, and they appear in the file pane — one named CLAUDE.md at the top of the project, one at server/CLAUDE.md. Two files, two scopes: one for the whole project, one just for server/. When Claude touches a backend file, it reads both.
Want to find every CLAUDE.md yourself later? You don’t need a command for that either — the file pane shows them right where they live, and you can always ask “list every CLAUDE.md in this project” and Claude will turn them all up.
The third place — your personal ~/.claude/CLAUDE.md — lives in your home folder, not the project, so it won’t show up alongside these. But it layers on top of these two exactly the same way, on every project you open.
What’s next
CLAUDE.md is something you write down on purpose. But Claude can also keep notes of its own — things it remembers about you and your work from one conversation to the next, without you writing anything. That’s memory, and it’s next.