The folder where you start Claude Code is its main working directory. Claude can read files there as needed. You can add another directory with --add-dir or /add-dir, and access outside the working scope still follows the active permission rules.
Start in the Project Folder
Whatever folder your terminal is in when you type claude becomes the main working directory.
Let's use the practice folder we created earlier. Open your terminal and go to it:
In Windows PowerShell:
cd "$HOME\Documents\practice"On macOS or Linux:
cd ~/Documents/practiceThen start Claude Code:
claudeStarting in practice keeps the session focused on that folder and its subfolders. Claude reads files when the task needs them. If another directory is required, add it explicitly and review the access you are granting.
For a first project, copying the required file into the project folder keeps access and versioning simple. For files that should stay elsewhere, add the directory explicitly or attach the file through the interface you are using.
Five Things Claude Can Do With Your Files
Once Claude is in your project folder, it can:
- Read files
- "What's in index.html?" or "Show me the contents of notes.txt." Claude opens the named file and reads what the task requires.
- Create files
- "Create a file called about.html with an about page." Claude writes the file from scratch and puts it in your project folder.
- Edit files
- "In style.css, change the background color to dark blue." Claude finds the file, finds the specific part, and changes it.
- Organize and rename
- "Rename all the .jpeg files to use .jpg instead" or "Move all images into a folder called assets." Claude rearranges things.
- Search across files
- "Find every file that mentions the word 'invoice'" or "Which CSS file controls the font size?" Claude searches through everything and tells you what it found.
You describe the file action in plain English, then review what Claude reads or changes.
The @ Shortcut
Sometimes you want to point Claude at a specific file. Instead of saying "look at the file called styles/main.css," you can use the @ symbol:
Look at @styles/main.css and tell me what colors are definedThe @ shortcut is just a faster way to reference files. Claude will find them either way, but @ makes it explicit. Especially useful when you have many files with similar names.
Beyond Single Files: Working With Groups
You can also use @ to reference a folder:
Look at everything in @notes/ and tell me what topics come up most oftenUse @notes/ to point Claude at the folder, then state the scope you want checked. Claude may search and read the relevant files rather than place the entire folder into the context window at once. For a large folder, ask it to report which files it inspected.
I use folder references for comparison, repeated formatting, and finding patterns across several files.
Pulling insights from scattered files is the obvious one. You have a folder of meeting notes, customer feedback, or research documents. Instead of reading them one by one, ask Claude to find the common threads. "What are people complaining about most?" "What requests keep coming up?" "Where do these documents contradict each other?"
You can also apply a consistent format. Say you have raw content and a template you like. Point Claude at both: "Rewrite @raw-notes.md using the structure from @my-template.md." The template becomes a reusable pattern.
Comparison works the same way. "Read @proposal-v1.md and @proposal-v2.md and tell me what changed." Or point at a folder of competitor websites you've saved and ask for a comparison.
Claude can search and compare several files in one task. For a large folder, I ask it to name the files it inspected so I can check the basis of the answer.
Showing Claude Images
Claude Code can also inspect a pasted screenshot or an image file.
Paste a screenshot with the shortcut supported by your terminal. Current defaults include Ctrl+V, Cmd+V in iTerm2, and Alt+V on Windows and WSL. You can also reference an image file by path.
For design work, provide the screenshot and describe which parts matter, such as layout, colours, or spacing. I would treat the result as a first version and review it against the reference.
You can also reference image files in your project:
Look at @mockup.png and build an HTML page that matches this designBeyond design, images work for:
- Screenshots of error messages (faster than typing them out)
- Charts and graphs you want analyzed
- Handwritten notes you want transcribed
- UI mockups you want turned into code
- Photos of whiteboards from brainstorming sessions
Use an image when the visual difference is easier to show than describe.
Finding Current Information
Claude Code can also search the web when you need current information:
Check the current official documentation for this framework's form
validation. Cite the source and propose the change before editing.Use this when the behavior may have changed. A cited proposal lets you check the source before applying it to your files.
Where Claude Puts Things
When you ask Claude to create a file, it puts it in the folder where you started Claude Code. If you want files somewhere specific, say so:
- "Create
pages/about.html" puts it in apagessubfolder - "Create
about.html" puts it in the project root - "Create a
cssfolder and putstyles.cssinside it" creates the folder and file
Be specific about where things should go, especially as your project grows. "Create a file" is fine for practice. "Create pages/contact.html" is better for real work.
What Claude Remembers
File reads and tool results use the session's context window. Long sessions can be compacted, so do not assume every earlier detail remains equally available.
Claude Code saves CLI sessions locally. Start a new session when you want a clean task, or use claude --continue, claude --resume, or /resume when you want the previous conversation and tool history back.
Project files and instructions remain the durable record between sessions.
Real-World Example
My website is now close to a thousand files spread across more than a hundred folders. CSS files, PHP files, JavaScript, images, documentation.
When I need something, I'm specific: "Look at public/css/components/nav.css and fix the mobile menu animation." That path gives Claude a narrow place to inspect before it proposes the change.
But I can also go broad: "Search all CSS files for anything using the color green." Claude scans the CSS files and gives me a list. That is faster than checking each file manually.
I point Claude at one file for a narrow change and ask it to search the project when the location is not known.
Next up: how I make an instruction specific enough to review the result.