Where to Put CLAUDE.md on Windows

A practical guide to CLAUDE.md file locations on Windows: the project-level path, the user-level path, WSL considerations, and how to confirm Claude Code is reading the file.

Updated 4 min read

CLAUDE.md has two main locations on Windows: the project root (for instructions that apply to that specific project) and your Windows user folder under .claude (for personal instructions that apply everywhere you use Claude Code). Getting the path right is the first step — if the file is in the wrong place, Claude Code will not find it and your instructions will have no effect.

If you work across multiple machines or with a team, tools like fenbs let you keep shared project rules in one place that every connected assistant reads, without relying on a file being in the right place on each person's computer. But for per-machine and per-project instructions, the correct file path is what matters. This page covers both levels.

Project-level CLAUDE.md

Place the project-level CLAUDE.md in the root of your project folder — the same directory as your .git folder, package.json, or whatever marks the top of that codebase. When you open that folder in Claude Code, it reads the file automatically.

On Windows, a typical project path looks like this:

Project-level CLAUDE.md path on Windows
C:\Users\YourName\projects\my-project\CLAUDE.md

The file must be named exactly CLAUDE.md (uppercase, with the .md extension). A file named claude.md or CLAUDE.txt will not be picked up. Claude Code also reads CLAUDE.md files in parent directories, so if you have a workspace folder containing multiple projects, you can place a workspace-level CLAUDE.md one level above them.

User-level CLAUDE.md

The user-level CLAUDE.md applies to every Claude Code session on that machine, regardless of which project is open. It lives in a .claude folder inside your Windows user home directory.

User-level CLAUDE.md path on Windows
C:\Users\YourName\.claude\CLAUDE.md

The .claude folder may not exist yet. Create it manually in Windows Explorer or with mkdir $env:USERPROFILE\.claude in PowerShell. Then create the CLAUDE.md file inside it. This is a good place for personal preferences that apply across all your projects: your preferred coding style, tools you always use, or reminders that apply to every session.

WSL and the Windows Subsystem for Linux

If you run Claude Code inside WSL (Windows Subsystem for Linux), the file paths follow Linux conventions rather than Windows ones. Your project folder in WSL has a path like /home/username/projects/my-project/CLAUDE.md, and the user-level file is at /home/username/.claude/CLAUDE.md.

The Windows file system is accessible from WSL at /mnt/c/, so a Windows project at C:\Users\YourName\projects\my-project is visible at /mnt/c/Users/YourName/projects/my-project. If you open Claude Code inside WSL and navigate to a path under /mnt/c/, it will look for CLAUDE.md at the Linux path equivalent.

The practical rule is: the CLAUDE.md path must match the environment where Claude Code is running. If you open Claude Code in a WSL terminal, use Linux paths. If you open it in a Windows terminal (PowerShell or Command Prompt), use Windows paths. See the Claude Code on Windows guide for more on this.

How to verify Claude Code is reading the file

The simplest check is to add a distinctive phrase to your CLAUDE.md — something like "Always greet me with: CLAUDE.md loaded" — and start a new session. If Claude Code includes that phrase in its first response, it found the file. If not, the file is in the wrong location or has the wrong name.

You can also ask Claude Code directly: "Which CLAUDE.md files are you reading for this session?" It will describe the files it found and their paths. If it lists no files, your CLAUDE.md is not in a location it checks.

One common source of confusion on Windows is file encoding. Claude Code expects UTF-8 text files. If you create a CLAUDE.md in Notepad, it may save with a Byte Order Mark (BOM) at the start. Most editors handle this correctly, but if you have trouble with characters being misread, save the file explicitly as UTF-8 without BOM in your editor's save settings.

Shared project rules beyond one machine

Project-level CLAUDE.md files are committed to your repository, so they travel with the code. Any team member who checks out the branch gets the same instructions. But decisions that change — current tasks, which library was chosen last week, lessons from the last sprint — need a place that does not require a git commit to update.

How fenbs helps

Keep shared project rules where every assistant reads them

Add project decisions, standing rules, and where things stand to fenbs. A connected assistant reads those facts at the start of each session, from any machine, without needing a specific file to be in the right place. Your CLAUDE.md covers the stable repo-level facts; fenbs covers everything that changes.

Create a free account

Free for one person · No credit card · Works with Claude, ChatGPT, Cursor and more

How to do this with fenbs

  1. Create a free account. Start a project and add your standing project rules as Decisions and rules.
  2. Create a CLAUDE.md at your project root with the stable instructions: commands, structure, and constraints that live in the repo.
  3. Add a user-level CLAUDE.md at C:\Users\YourName\.claude\CLAUDE.md for personal preferences that apply everywhere.
  4. Connect Claude Code to fenbs from Integrations and ask it to read the project context at the start of each session.
  5. When a rule changes, update it in fenbs. The stable structural rules stay in CLAUDE.md; the current state of the project stays in fenbs.

For help writing good content for the file once it is in the right place, see CLAUDE.md examples. If Claude Code seems to be ignoring the file, see CLAUDE.md not working for troubleshooting steps.

Questions people ask.

Does the CLAUDE.md filename need to be uppercase on Windows?

Windows file names are case-insensitive, so claude.md and CLAUDE.md resolve to the same file on Windows. However, if you commit the file to a git repository shared with Linux or macOS users, use the uppercase form (CLAUDE.md) to match the expected path on those systems.

Can I have both a project-level and a user-level CLAUDE.md?

Yes. Claude Code reads both, combining the instructions. The user-level file is a good place for personal preferences; the project file is for project-specific rules. If any instruction conflicts, the project-level file generally takes precedence.

What if my project is inside WSL but I want to run Claude Code in Windows?

Open Claude Code in the environment where the files live. If your project is in the WSL file system, open Claude Code inside WSL. If it is on the Windows file system (a drive like C:), open Claude Code in a Windows terminal. Mixing environments causes path mismatches.

Where exactly is the .claude folder on Windows?

It is at C:\Users\YourName\.claude\, where YourName is your Windows account name. You can check your home directory path by running "echo %USERPROFILE%" in Command Prompt or "$env:USERPROFILE" in PowerShell.

Can I commit the user-level CLAUDE.md to git?

No. The user-level CLAUDE.md is outside any project repository. It is for personal preferences on that machine. Project rules that the team should share belong in the project-level CLAUDE.md, which is committed to the repository.

More in Prompts and skills for AI work

All Prompts and skills for AI work articles

Start with one thing.

Free for one person · No credit card · Works with Claude, ChatGPT, Cursor and more

There is nothing to set up first. Write one line and you’ve started.