CLAUDE.md Zone.Identifier Files: What to Do With Them
A Zone.Identifier file next to your CLAUDE.md is Windows metadata from a browser download—not the instruction file itself. Here is how to tell them apart and clean up safely.
Updated 4 min read
If you see a file named CLAUDE.md:Zone.Identifier or CLAUDE.md.Zone.Identifier in your project, it is a Windows Alternate Data Stream created when the file was downloaded through a browser or extracted from a ZIP archive. It has nothing to do with CLAUDE.md's contents—it is metadata Windows attaches to track where a file came from. You can delete it without affecting your instruction file. Tools like fenbs can hold a context note recording the lesson for any team member who sees the same thing.
This is a cross-platform setup issue that appears most often on Windows developer machines when CLAUDE.md is distributed as a download rather than created directly in the terminal. The fix is straightforward once you understand what the file is.
What Zone.Identifier means
Windows uses Alternate Data Streams (ADS) to store metadata alongside files without changing the file itself. When you download a file through Edge, Chrome, or another browser on Windows, Windows attaches a Zone.Identifier stream that records the URL and the security zone the file came from. This is used by Windows SmartScreen and other security features to identify files downloaded from the internet.
On a standard Windows filesystem, the Zone.Identifier stream is invisible to most tools—you do not see it in File Explorer or in a normal dir listing. It becomes visible (and sometimes appears as a separate file) in a few situations: when copying between filesystems (Windows to WSL, Windows to a Mac-formatted drive), when using certain tools that list all streams, or when the ADS appears in a directory listing inside WSL.
The content of the stream is a short INI-format text, something like:
[ZoneTransfer] ZoneId=3 ReferrerUrl=https://example.com/ HostUrl=https://example.com/CLAUDE.md
ZoneId=3 means "downloaded from the internet." ZoneId=1 would be a local intranet file. The stream has no effect on how Claude Code reads CLAUDE.md.
How it appears alongside CLAUDE.md
In WSL (Windows Subsystem for Linux), alternate data streams sometimes appear as separate files with :Zone.Identifier appended to the name. Running ls -la in WSL in a directory where CLAUDE.md was downloaded may show both CLAUDE.md and CLAUDE.md:Zone.Identifier. Some tools that copy from Windows to Linux also create a separate CLAUDE.md.Zone.Identifier file.
Claude Code, running in that directory, will see both entries. It reads CLAUDE.md correctly. The Zone.Identifier file is ignored by Claude Code because it does not match the expected filenames. But it can be confusing to see it, and some tools may try to process it as a text file.
How to check which file is which
Before deleting anything, confirm which file contains your CLAUDE.md instructions. Open the actual CLAUDE.md file and check that it contains your project instructions. Then check the Zone.Identifier file—it should contain the short INI-format Zone.Identifier block, nothing more.
# In WSL or a Unix shell: cat CLAUDE.md # Should show your project instructions cat CLAUDE.md:Zone.Identifier # or cat "CLAUDE.md:Zone.Identifier" # Should show [ZoneTransfer] block only
If both files look like project instructions, something went wrong in the copy and you may have two versions. Compare them carefully before deleting either.
Cleaning up safely
Delete the Zone.Identifier file once you have confirmed it contains only the metadata block and nothing else. In WSL or a Unix shell, use rm with the exact filename. On Windows, you can remove the alternate data stream with PowerShell.
rm "CLAUDE.md:Zone.Identifier" # or, if it appears as a separate file: rm CLAUDE.md.Zone.Identifier
Remove-Item -Path .\CLAUDE.md -Stream Zone.Identifier
After deleting, confirm that CLAUDE.md still reads correctly and that the Zone.Identifier file is gone. Add the pattern to .gitignore if you want to prevent it from being committed: *.Zone.Identifier or *:Zone.Identifier.
Preventing it from appearing again
The Zone.Identifier stream appears because the file was downloaded through a browser. To avoid it, create CLAUDE.md directly in your project with a text editor or your terminal rather than downloading it. If you distribute CLAUDE.md as part of a template or starter kit, document this step so teammates know to expect it on Windows.
See CLAUDE.md examples for instructions on creating CLAUDE.md from scratch rather than downloading a template.
Record the lesson for your team
fenbs Lessons learned stores cross-platform setup findings like this one: what the Zone.Identifier file is, which command removes it, and how to prevent it on new machines. One team member discovers it; everyone else finds the answer in the context the next session reads. Create a free account and add the lesson to your project.
Create a free accountFree for one person · No credit card · Works with Claude, ChatGPT, Cursor and more
How to do this with fenbs
Record the confirmed cross-platform setup lesson in fenbs so the next team member who sees Zone.Identifier knows what to do.
- Create a free account and add your project in fenbs.
- Connect Claude Code from Integrations and follow the MCP setup guide.
- Add a Lesson in fenbs: "CLAUDE.md:Zone.Identifier appears on Windows when CLAUDE.md is downloaded through a browser. It is Windows metadata; delete it with
rm CLAUDE.md:Zone.Identifierin WSL orRemove-Item -Path .\CLAUDE.md -Stream Zone.Identifierin PowerShell. Add *.Zone.Identifier to .gitignore." - Link the lesson to any relevant task that was affected by the issue.
- Before the next cross-platform setup, ask Claude Code to read the lessons for this project. It will surface this note before the Zone.Identifier file appears and causes confusion.
fenbs does not manage your filesystem or git configuration. It keeps the team's confirmed setup knowledge in one place—context notes, decisions, and lessons—so the same discovery does not have to happen twice. The next person who sees a Zone.Identifier file finds the answer before it slows them down.