Claude Code kan projectbestanden niet zien: waarom en wat je eraan kunt doen in 2026
MarkdownWaarom Claude Code projectbestanden niet kan vinden: het is gestart vanuit de verkeerde map, het bestand staat in een submap of het staat in .gitignore. Zo geef je toegang met add-dir, cd en instellingen.
Lees het volledige artikel
Een bekend beeld: je vraagt Claude Code om een bestand aan te passen, en het antwoordt dat zo’n bestand niet bestaat. Of het verandert stilzwijgend iets heel anders dan je bedoelde. Je opent de map — het bestand staat er, precies waar het hoort. Maar Claude lijkt het niet op te merken.
Bijna altijd is er één reden, en is er niets kapot. Claude ziet niet alle bestanden op je computer. Het heeft alleen toegang tot de map van waaruit je het hebt gestart. Starten in een naastgelegen map of onder de projecthoofdmap kan benodigde bestanden buiten de werkboom plaatsen. Starten vanuit een bovenliggende map zoals je thuismap geeft juist een bredere scope; het maakt een onderliggend project niet onbereikbaar. Ik leg stap voor stap uit waarom dit zo werkt en hoe je Claude toegang geeft tot de bestanden die het nodig heeft. Ik citeer opdrachten en instellingen rechtstreeks uit de officiële Claude Code-documentatie, die ik begin september 2026 heb gecontroleerd.
Aanvullend materiaal over het configureren van tools vind je in de Ailoot-documentatie.
Waarom kan Claude Code sommige projectbestanden niet zien?
Belangrijkste inzicht
Claude Code leest bestanden niet van de hele schijf, maar alleen uit de map van waaruit je het hebt gestart. Deze map heet de werkmap. Claude kan alles daarin en in de submappen zien en lezen zonder het te vragen. Alles daarbuiten — in een aangrenzende map, één niveau hoger of op een andere schijf — is niet toegankelijk totdat je zelf toegang verleent. De meest voorkomende reden dat een bestand “niet zichtbaar” is, is dus eenvoudig: je hebt Claude vanuit een andere map gestart. Controleer eerst precies waar je het hebt geopend.
Standaard werkt Claude Code met één map: de map waarin je de opdracht claude hebt ingevoerd en de sessie hebt gestart. De documentatie zegt dit rechtstreeks.
Standaard heeft Claude toegang tot bestanden in de map van waaruit je het hebt gestart.
Deze map is de werkmap. Daarbinnen leest Claude elk bestand zonder extra vragen: een prompt bewerken, code doorzoeken, een specifiek bestand lezen — het werkt allemaal meteen. Maar alles buiten deze map is standaard niet toegankelijk. Een aangrenzende map, een map één niveau hoger, een andere schijf — Claude kijkt daar pas als je het toestaat.
Een werkmapmismatch kan verschil maken. Stel dat het project /Users/you/my-shop is, maar Claude vanuit de naastgelegen map /Users/you/other-project startte. De index.html in my-shop ligt buiten die werkboom. Starten vanuit /Users/you is een ander geval: my-shop ligt daaronder en is niet onbereikbaar alleen omdat je in de thuismap begon, al is de gekozen context breder dan bedoeld. Toegang tot een map betekent ook niet dat elk bestand al is gelezen.
Hierna bespreek ik hoe je dit controleert en oplost: eerst stellen we vast vanuit welke map Claude is gestart, daarna geven we het op verschillende manieren toegang tot de bestanden die het nodig heeft — van een eenmalige instructie tot een permanente instelling.
Hoe controleer je vanuit welke map Claude Code is gestart?
Belangrijkste inzicht
Vraag Claude in welke map het zich bevindt, of vraag het de huidige map te tonen met de opdracht pwd — die controleert alleen en verandert niets. Vergelijk wat het toont met de werkelijke locatie van je project. Komen de paden niet overeen, dan is dat de reden: Claude is vanuit de verkeerde map gestart. Een nog betrouwbaardere oplossing is de sessie te sluiten en Claude opnieuw rechtstreeks vanuit de projectmap te starten: ga er in de terminal naartoe en voer daar claude in.
Controleer voordat je iets oplost of de map inderdaad het probleem is. Dat is eenvoudig. Vraag Claude in de chat om te tonen in welke map het zich momenteel bevindt — het voert dan pwd uit. Dat is veilig: de opdracht toont alleen het pad en verandert niets.
pwd
Het antwoord toont de echte werkmap. Vergelijk die met het volledige projectpad: /Users/you/other-project ligt naast /Users/you/my-shop, terwijl /Users/you erboven ligt. In het eerste geval ligt my-shop buiten de werkboom; in het tweede valt het erbinnen maar is dat specifieke project niet als hoofdmap gekozen.
De netste manier om deze mismatch op te lossen, is Claude rechtstreeks vanuit de projectmap te starten. Sluit de huidige sessie, ga in de terminal naar de juiste map en start Claude daar:
# Vervang dit voorbeeldpad door je echte projecthoofdmap.
cd /Users/you/my-shop
claude
Nu is my-shop de werkmap en zijn alle projectbestanden zichtbaar. Dezelfde regel geldt in een editor zoals VS Code: open de map waarin het project staat. Niet de map één niveau erboven en ook niet de hele schijf. De map die je opent, bepaalt wat Claude als zijn werkmap beschouwt.
Als opnieuw starten onhandig is — bijvoorbeeld omdat je Claude in deze sessie al context hebt gegeven en die niet wilt verliezen — kun je onderweg mappen toevoegen of wisselen. De volgende twee secties bespreken hoe.
Hoe kun je Claude Code een bestand in een aangrenzende map laten zien?
Belangrijkste inzicht
Voeg de gewenste map zonder de sessie opnieuw te starten rechtstreeks in de chat toe met de opdracht /add-dir: voer /add-dir en het pad naar de map in. De bestanden daarin zijn dan op dezelfde manier beschikbaar als die in de hoofdmap. Wil je de toegang al openen wanneer Claude start, voeg dan de vlag --add-dir met een pad toe aan de opdracht claude. En als je wilt dat een map elke keer automatisch wordt geopend, voeg die dan onder de sleutel additionalDirectories toe aan de instellingen. In alle drie de gevallen kunnen bestanden in de toegevoegde map zonder afzonderlijke bevestiging worden gelezen.
Soms staat een project niet in één map. De code staat op de ene plek, afbeeldingen of tekst in een aangrenzende map en gedeelde componenten ergens anders in de buurt. Claude telkens opnieuw starten in een andere map is onhandig. Je kunt het beter toegang geven tot de gewenste map terwijl de hoofdmap de werkmap blijft.
De eenvoudigste manier is dit rechtstreeks in de actieve sessie te doen met de opdracht:
/add-dir ../assets
Voer /add-dir en het pad naar de map in, en Claude krijgt meteen toegang tot de bestanden daarin, op dezelfde manier als tot bestanden in de hoofdmap. Het vraagt niet opnieuw om toestemming: voor de toegevoegde map gelden dezelfde regels als voor de werkmap.
Voor bestanden in extra mappen gelden dezelfde toegangsregels als voor de hoofdwerkmap: ze worden zonder prompt gelezen.
Als je van tevoren weet dat je met meerdere mappen gaat werken, open je de toegang zodra Claude start — met hetzelfde pad, maar met een vlag:
claude --add-dir ../assets
En als je in een project steeds dezelfde aangrenzende map nodig hebt, hoef je die niet elke keer handmatig toe te voegen. Het instellingenbestand settings.json heeft een sleutel additionalDirectories. Vermeld daar de paden; ze worden dan automatisch geopend wanneer Claude start:
{
"permissions": {
"additionalDirectories": ["../assets", "../shared"]
}
}
Een aandachtspunt voor Windows: je kunt geen netwerkmap toevoegen met een pad zoals \\server\shared — Claude accepteert zulke paden niet. Koppel de map als een aparte schijf met een stationsletter en geef die letter vervolgens door met --add-dir. Dit probleem doet zich niet voor bij gewone lokale mappen.
Wat als het toevoegen van een aangrenzende map niet genoeg is en je naar een heel andere map moet? Daarvoor bestaat een aparte opdracht, die hieronder aan bod komt.
Hoe schakel je Claude Code tijdens een sessie over naar een andere map?
Belangrijkste inzicht
Met de opdracht /cd verander je de hoofdwerkmap zonder de sessie te sluiten: voer /cd en een pad in, en Claude gaat daarheen terwijl de gespreksgeschiedenis behouden blijft. Tijdens de overgang neemt het het instructiebestand CLAUDE.md uit de nieuwe map over en vraagt het je, als je daar nog niet eerder hebt gewerkt, te bevestigen dat je die map vertrouwt. Het verschil met /add-dir is dat /add-dir een aangrenzende map naast de hoofdmap opent, terwijl /cd de hele werkmap naar een nieuwe locatie verplaatst. De opdracht is beschikbaar vanaf versie 2.1.169.
Soms is een aangrenzende map toevoegen niet genoeg — je moet de hoofdmap veranderen en naar een ander project gaan zonder de opgebouwde context te verliezen. Gebruik de opdracht /cd:
/cd ../another-project
Daarna beschouwt Claude de nieuwe map als zijn werkmap. Je behoudt de volledige gespreksgeschiedenis, maar de locatie die Claude als uitgangspunt voor bestanden gebruikt, verandert naar de nieuwe plek. Claude neemt ook het instructiebestand CLAUDE.md uit de nieuwe map over, als dat daar aanwezig is — zo past het zich aan de regels van het nieuwe project aan.
Houd rekening met het vertrouwen: als je nog niet eerder in deze map hebt gewerkt, vraagt Claude bij het verplaatsen of je die vertrouwt. Dit is een beveiliging: een instructiebestand in een onbekende map kan van alles bevatten, dus controleert Claude eerst of het je project is. Bevestig dit en ga verder.
Het verschil tussen de twee opdrachten is eenvoudig. /add-dir houdt de hoofdmap als werkmap en opent daarnaast een aangrenzende map — handig als onderdelen van een project verspreid staan. /cd verplaatst de hele werkmap naar een nieuwe locatie — handig als je naar een ander project overschakelt. De opdracht /cd is geïntroduceerd in versie 2.1.169. Ontbreekt die, werk Claude Code dan bij. Ik heb een aparte gids over Claude Code bijwerken.
Dat Claude Code bestanden kan zien, is alleen de basis. Stabiele resultaten komen niet alleen voort uit toegang tot bestanden. Ze hangen af van wat die bestanden bevatten en hoe je context rond het project opbouwt.
Waarom kan Claude Code een bestand in een submap niet zien?
Belangrijkste inzicht
Submappen werken anders dan aangrenzende mappen: Claude heeft er toegang toe, maar de inhoud ervan wordt niet meteen onderdeel van zijn context. Claude laadt instructiebestanden en de inhoud van submappen op verzoek, wanneer het daar zoekt. Bij het opstarten worden ze niet geladen. Daarom kan een bestand in een diep geneste submap “onzichtbaar” zijn totdat je Claude het pad rechtstreeks geeft. De oplossing is eenvoudig: geef Claude het exacte pad naar het bestand of vraag het het bestand eerst te lezen; dan wordt het zichtbaar.
Het is belangrijk om hier twee verschillende situaties niet met elkaar te verwarren. Een aangrenzende map (buiten het project) is volledig ontoegankelijk totdat je die toevoegt. Een submap binnen het project is anders: Claude heeft er toegang toe, maar houdt de inhoud ervan niet vanaf het begin in gedachten.
Zo werkt het. Wanneer Claude start, laadt het wat zich op de bovenste niveaus van het project bevindt. Bestanden uit submappen laadt het op verzoek, wanneer het daarheen gaat om iets te lezen. De documentatie beschrijft dit gedrag voor instructiebestanden; dezelfde logica geldt ook voor context in het algemeen.
Claude ontdekt bestanden in submappen van de werkmap. In plaats van ze bij het opstarten te laden, haalt het ze erbij wanneer het bestanden in die submappen leest.
In gewone taal: het bestand in een diep geneste submap is niet verdwenen en is volledig toegankelijk. Claude heeft het alleen nog niet onthouden omdat het daar nog niet heeft gekeken — daarom kan het lijken alsof Claude een bestand “niet kan zien”, ook al staat het er en is het toegankelijk.
Je lost dit in één regel op. Geef Claude rechtstreeks het bestandspad — bijvoorbeeld src/components/header.jsx — of vraag het simpelweg het bestand eerst te lezen. Zodra het daar kijkt, komt het bestand in de context en kun je er zoals gewoonlijk mee werken. Je hoeft geen instellingen te wijzigen.
Waar verdwijnen bestanden uit het @-menu en wat heeft .gitignore ermee te maken?
Belangrijkste inzicht
Wanneer je het teken @ invoert, toont Claude Code een lijst met bestanden waaruit je kunt kiezen. Standaard verbergt deze lijst alles wat in .gitignore staat — servicemappen, omgevingsbestanden en builduitvoer. Een bestand kan dus precies staan waar het hoort, maar toch ontbreken in het @-menu. De instelling respectGitignore bepaalt dit: die staat standaard aan en verbergt deze bestanden. Zet de waarde op false en het menu toont ook bestanden die in .gitignore staan. Je kunt het pad naar zo’n bestand altijd handmatig invoeren.
Een andere veelvoorkomende reden om te denken dat Claude een bestand is “kwijtgeraakt”, is de bestandskiezer. Wanneer je @ invoert, verschijnt er een lijst waarmee je eenvoudig een bestand selecteert zonder het volledige pad te typen. Maar de lijst toont niet alles.
Standaard verbergt het @-menu bestanden die in .gitignore staan. Dat bestand geeft aan wat niet aan de gedeelde repository moet worden toegevoegd: servicemappen, bestanden met wachtwoorden en omgevingsinstellingen, en voltooide builduitvoer. De gedachte hierachter is duidelijk — meestal hoef je niet handmatig met deze bestanden te werken, dus zouden ze de lijst alleen maar onoverzichtelijk maken. Maar soms heb je een van die bestanden wel nodig en staat het niet in het menu.
De instelling respectGitignore bepaalt dit. Standaard staat die aan, waardoor bestanden uit .gitignore niet in het menu verschijnen. Wil je ze zien, zet de waarde dan op false:
{
"respectGitignore": false
}
Je kunt hetzelfde doen zonder het bestand te bewerken, met de opdracht /config in Claude Code. De schakelaar heet daar “Respect .gitignore in file picker.” Schakel hem uit en de verborgen bestanden keren terug in het menu.
Een belangrijk aandachtspunt: respectGitignore geldt alleen voor het @-menu en heeft niets te maken met toegang tot bestanden. Zelfs wanneer een bestand in de lijst verborgen is, kun je het pad altijd handmatig invoeren en zal Claude het lezen. Het menu is een gemaksfunctie; het bepaalt de toegangsgrens niet.
Wat moet je doen als Claude Code een specifiek bestand niet kan lezen?
Belangrijkste inzicht
Soms is de map correct, maar weigert Claude nog steeds één specifiek bestand te lezen. Meestal komt dat door een beperking in de instellingen. Het bestand settings.json kan deny-regels bevatten die het lezen van bepaalde bestanden blokkeren, meestal .env-bestanden met sleutels en wachtwoorden. Er is ook een instelling die het lezen van alles buiten de werkmappen volledig blokkeert. Controleer beide plekken in settings.json. Houd er ook rekening mee dat de beperking voor .env standaardbeveiliging is; je moet die niet zonder goede reden verwijderen.
Als de map zeker juist is en toegang openstaat, maar Claude één specifiek bestand nog steeds niet wil lezen, is de toegang waarschijnlijk beperkt. Beperkingen staan in het instellingenbestand settings.json en zijn er in twee soorten.
De eerste soort is een gerichte beperking voor specifieke bestanden. In de instellingen heten deze deny-regels. Ze gelden meestal voor het bestand .env, waarin sleutels en wachtwoorden worden opgeslagen:
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)"
]
}
}
Zo’n regel blokkeert Claude bij het lezen van de opgegeven bestanden, en dat is bewust zo. Sleutels en wachtwoorden horen niet in een gesprek met het model terecht te komen, dus is .env standaard afgeschermd. Als Claude weigert .env of een vergelijkbaar bestand met geheimen te lezen, is dat opzettelijk gedrag. Verwijder deze beperking niet zonder een dwingende reden.
De tweede soort is een algemene beperking voor alles buiten de werkmappen. De instelling blockReadsOutsideWorkingDirectories bepaalt dit. Wanneer die is ingeschakeld, weigert Claude elk bestand buiten de werkmap te lezen, zelfs als je het rechtstreeks probeert te openen. Staat de waarde op true en heb je een extern bestand nodig, voeg dan de map toe met /add-dir of schakel de beperking uit:
{
"permissions": {
"blockReadsOutsideWorkingDirectories": false
}
}
Deze instelling is geïntroduceerd in versie 2.1.257. Als het bestand na alles wat je geprobeerd hebt nog steeds ontoegankelijk is, controleer dan zowel deny als blockReadsOutsideWorkingDirectories.
Waar begin je als Claude Code bestanden niet kan zien?
Belangrijkste inzicht
Begin met het controleren van de map: vraag Claude met pwd de huidige map te tonen en vergelijk die met de locatie van het project. Komen ze niet overeen, start Claude dan opnieuw vanuit de projectmap of ga erheen met /cd. Bestanden uit een aangrenzende map nodig? Open die met /add-dir. Kun je een bestand in een submap niet zien? Geef Claude rechtstreeks het pad. Ontbreekt een bestand in het @-menu? Dat heeft te maken met .gitignore — wijzig respectGitignore. Is één bestand vergrendeld? Zoek naar een deny-beperking in settings.json.
Hier is een kort stappenplan dat je van boven naar beneden kunt volgen.
- Controleer de werkmap: vraag Claude met
pwdde huidige map te tonen en vergelijk die met de locatie van het project. - Verschillen de mappen, start Claude dan opnieuw vanuit de juiste map (
cd project, daarnaclaude) of ga erheen met de opdracht/cd. - Bestanden uit een aangrenzende map nodig? Voeg die toe met
/add-dirof met de vlag--add-dirwanneer je Claude start. - Staat een bestand uit een submap niet in de context? Geef Claude rechtstreeks het pad of vraag het het bestand te lezen.
- Ontbreekt een bestand in het
@-menu? Dat komt door.gitignore. ZetrespectGitignoreopfalseof haal het vinkje weg in/config. - Is één specifiek bestand vergrendeld? Controleer de regels
denyenblockReadsOutsideWorkingDirectoriesinsettings.json.
In negen van de tien gevallen lost de eerste stap alles op: Claude is vanuit de verkeerde map gestart. Toegang tot bestanden is de basis, maar bouwt je project niet voor je. Ik heb uitgebreid uitgelegd hoe je context rond Claude opbouwt zodat het het hele project in gedachten houdt en de draad niet kwijtraakt in mijn gids over het Second Brain in Claude Code.
Bronnen
- Claude Code - Machtigingen configureren, officiële documentatie - standaardwerkmap, --add-dir en /add-dir, /cd, additionalDirectories, toegang zonder prompts, netwerkpaden
- Claude Code - Claude's geheugen beheren, officiële documentatie - submapbestanden op verzoek laden, CLAUDE.md, imports
- Claude Code - Instellingenreferentie, officiële documentatie - respectGitignore en het @-menu, blockReadsOutsideWorkingDirectories en versie 2.1.257
- Claude Code - Instellingen, officiële documentatie - deny-regels en het blokkeren van het lezen van .env
Vind aanvullend materiaal over werken met tools in de Ailoot-documentatie.
Meer details
Vragen en antwoorden
Waarom verschilt starten vanuit de thuismap van starten in een naastgelegen project?
Een project onder je thuismap ligt daarbinnen; starten vanuit de thuismap plaatst het dus niet buiten de werkboom maar geeft bredere context dan bedoeld. Een naastgelegen map valt erbuiten. Vergelijk volledige paden voordat je ontbrekende toegang vaststelt.
Betekent toegang tot een submap dat de bestanden al in context staan?
Nee. Geef de agent het bestandspad en vraag het te lezen. Wordt dat geweigerd, bekijk dan de toepasselijke machtigingen; ontbreken in een keuzemenu en een geweigerde leesactie zijn verschillende problemen.