Blog

Claude Code kan ikke se projektfiler: hvorfor og hvad du kan gøre i 2026

Markdown

Hvorfor Claude Code ikke kan finde projektfiler: Det blev startet fra den forkerte mappe, filen ligger i en undermappe eller er i .gitignore. Sådan giver du adgang med add-dir, cd og indstillinger.

Læs hele artiklen

Et velkendt scenarie: Du beder Claude Code om at rette en fil, og det svarer, at filen ikke findes. Eller også ændrer det lydløst noget helt andet end det, du mente. Du åbner mappen – filen ligger der, lige hvor den skal være. Men Claude ser ikke ud til at opdage den.

Næsten altid er der én grund, og intet er i stykker. Claude kan ikke se filer på hele computeren. Det kan kun få adgang til den mappe, det blev startet fra. Start i en nabomappe eller under projektroden kan placere nødvendige filer uden for arbejdstræet. Start fra en overordnet mappe som hjemmemappen giver derimod et bredere omfang; det gør ikke et underliggende projekt utilgængeligt. Jeg forklarer trin for trin, hvorfor det fungerer sådan, og hvordan du giver Claude adgang til de filer, det har brug for. Jeg citerer kommandoer og indstillinger direkte fra den officielle Claude Code-dokumentation, som jeg gennemgik i begyndelsen af september 2026.

Du kan finde flere materialer om konfiguration af værktøjer i Ailoot-dokumentationen.

Hvorfor kan Claude Code ikke se nogle projektfiler?

Vigtigste pointe

Claude Code læser ikke filer fra hele drevet, men kun fra den mappe, hvor du startede det. Denne mappe kaldes arbejdsbiblioteket. Claude kan se og læse alt i mappen og dens undermapper uden at spørge. Alt uden for den – i en nabomappe, en mappe højere oppe eller på et andet drev – er utilgængeligt, indtil du selv giver adgang. Den mest almindelige grund til, at en fil ”ikke er synlig”, er altså enkel: Du startede Claude fra en anden mappe. Tjek først præcis, hvor du åbnede det.

Som standard arbejder Claude Code med én mappe: den mappe, hvor du indtastede kommandoen claude og startede sessionen. Det står direkte i dokumentationen.

Som standard har Claude adgang til filer i den mappe, hvor du startede det.

— Claude Code Docs, Konfigurer tilladelser, officiel dokumentation

Denne mappe er dets arbejdsbibliotek. Her læser Claude alle filer uden ekstra spørgsmål: redigering af en prompt, søgning i kode, læsning af en bestemt fil – det hele fungerer med det samme. Men alt uden for denne mappe er som standard utilgængeligt. En nabomappe, en mappe en etage oppe eller et andet drev – Claude kigger ikke der, før du giver det tilladelse.

Her kan en forkert arbejdsmappe gøre en forskel. Antag, at projektet er /Users/you/my-shop, men du startede Claude fra /Users/you/other-project, en nabomappe. index.html i my-shop ligger uden for dette arbejdstræ. Start fra /Users/you er et andet tilfælde: my-shop er en undermappe og er ikke utilgængelig alene på grund af start fra hjemmemappen, selv om den valgte kontekst er bredere end tilsigtet. Adgang til en mappe betyder heller ikke, at alle filer allerede er læst.

Nu gennemgår jeg, hvordan du kontrollerer og løser det: Først bekræfter vi, hvilken mappe Claude blev startet fra, og derefter giver vi det adgang til de filer, det har brug for, på forskellige måder – fra en engangsinstruktion til en permanent indstilling.

Hvordan kan du tjekke, hvilken mappe Claude Code blev startet fra?

Vigtigste pointe

Spørg Claude, hvilken mappe det befinder sig i, eller bed det vise den aktuelle mappe med kommandoen pwd – den tjekker kun og ændrer intet. Sammenlign den viste sti med projektets faktiske placering. Hvis stierne er forskellige, er det årsagen: Claude blev startet fra den forkerte mappe. En endnu mere pålidelig løsning er at lukke sessionen og starte Claude igen direkte fra projektmappen: Gå til den i terminalen, og indtast claude dér.

Før du løser noget, skal du sikre dig, at det faktisk er mappen, der er problemet. Det er nemt at tjekke. Bed Claude i chatten om at vise, hvilken mappe det befinder sig i – det kører pwd, som er sikkert: Kommandoen viser kun stien og ændrer ikke noget.

pwd

Svaret viser den faktiske arbejdsmappe. Sammenlign den med hele projektstien: /Users/you/other-project er nabo til /Users/you/my-shop, mens /Users/you er dens overordnede mappe. I nabotilfældet ligger my-shop uden for arbejdstræet; den overordnede mappe indeholder projektet, men vælger ikke dette specifikke projekt som rod.

Den enkleste måde at løse denne uoverensstemmelse på er at starte Claude direkte fra projektmappen. Luk den aktuelle session, gå til den rigtige mappe i terminalen, og start Claude derfra:

# Erstat denne eksempelsti med din faktiske projektrod.
cd /Users/you/my-shop
claude

Nu bliver my-shop arbejdsmappe, og alle projektfilerne er synlige. Den samme regel gælder i en editor som VS Code: Åbn den mappe, der indeholder projektet. Ikke mappen en mappe højere oppe og ikke hele drevet. Den mappe, du åbner, afgør, hvad Claude betragter som sit arbejdsbibliotek.

Hvis det er besværligt at starte igen – for eksempel fordi du allerede har givet Claude kontekst i denne session og ikke vil miste den – kan du tilføje eller skifte mappe undervejs. De næste to afsnit handler om det.

Hvordan kan du vise Claude Code en fil i en nabomappe?

Vigtigste pointe

Du kan tilføje den mappe, du har brug for, uden at genstarte sessionen: Brug kommandoen /add-dir direkte i chatten, indtast /add-dir efterfulgt af mappestien, så bliver filerne tilgængelige på samme vilkår som filerne i hovedmappen. Hvis du vil åbne adgangen, allerede når Claude starter, skal du tilføje flaget --add-dir med en sti til kommandoen claude. Og hvis du vil have, at en mappe åbnes automatisk hver gang, skal du tilføje den under nøglen additionalDirectories i indstillingerne. I alle tre tilfælde kan filer i den tilføjede mappe læses uden særskilte bekræftelser.

Nogle gange ligger et projekt ikke kun i én mappe. Koden ligger ét sted, billeder eller tekst i en nabomappe, og delte komponenter et andet sted i nærheden. Det er besværligt at genstarte Claude i hver mappe efter tur. Det er bedre at give det adgang til den mappe, det har brug for, mens hovedmappen forbliver arbejdsbiblioteket.

Den enkleste måde er at gøre det direkte i den aktive session med kommandoen:

/add-dir ../assets

Indtast /add-dir og mappestien, så får Claude straks adgang til filerne på samme vilkår som filerne i hovedmappen. Det spørger ikke om tilladelse igen: Den tilføjede mappe følger de samme regler som arbejdsbiblioteket.

Filer i yderligere mapper følger de samme adgangsregler som hovedarbejdsbiblioteket: De læses uden en prompt.

— Claude Code Docs, Konfigurer tilladelser, officiel dokumentation

Hvis du på forhånd ved, at du skal arbejde med flere mapper, kan du åbne adgangen, så snart Claude starter – med den samme sti, men med et flag:

claude --add-dir ../assets

Hvis du altid har brug for den samme nabomappe i et projekt, behøver du ikke tilføje den manuelt hver gang. Indstillingsfilen settings.json har en nøgle, der hedder additionalDirectories. Angiv stierne dér, så åbnes de automatisk, hver gang Claude starter:

{
  "permissions": {
    "additionalDirectories": ["../assets", "../shared"]
  }
}

En ting at være opmærksom på i Windows: Du kan ikke tilføje en netværksmappe med en sti som \\server\shared – Claude accepterer ikke sådanne stier. Tilknyt den som et separat drev med et drevbogstav, og angiv derefter bogstavet med --add-dir. Almindelige lokale mapper har ikke dette problem.

Hvad nu, hvis det ikke er nok at tilføje en nabomappe, og du helt skal skifte til en anden mappe? Det findes der en separat kommando til, som vi gennemgår nedenfor.

Hvordan kan du skifte Claude Code til en anden mappe under en session?

Vigtigste pointe

Kommandoen /cd ændrer hovedmappen uden at lukke sessionen: Indtast /cd og en sti, så flytter Claude dertil med samtalehistorikken intakt. Under flytningen henter det instruktionsfilen CLAUDE.md fra den nye mappe, og hvis du ikke har arbejdet dér før, beder det dig bekræfte, at du har tillid til den. Forskellen fra /add-dir er, at /add-dir åbner en nabomappe ved siden af hovedmappen, mens /cd flytter hele arbejdsbiblioteket til en ny placering. Kommandoen findes fra og med version 2.1.169.

Nogle gange er det ikke nok at tilføje en nabomappe – du skal ændre hovedmappen og flytte til et andet projekt uden at miste den kontekst, du har opbygget. Brug kommandoen /cd:

/cd ../another-project

Derefter behandler Claude den nye mappe som sit arbejdsbibliotek. Du beholder hele samtalehistorikken, men det sted, Claude bruger som udgangspunkt for filer, ændres til den nye placering. Claude henter også instruktionsfilen CLAUDE.md fra den nye mappe, hvis der er en – det tilpasser sig altså reglerne for det nye projekt.

En ting at vide om tillid: Hvis du ikke har arbejdet i denne mappe før, spørger Claude, om du har tillid til den, når du flytter dertil. Det er en sikkerhedsforanstaltning: En instruktionsfil i en ukendt mappe kan indeholde hvad som helst, så Claude tjekker først, at det er dit projekt. Bekræft, og fortsæt derefter.

Forskellen mellem de to kommandoer er enkel. /add-dir beholder hovedmappen som arbejdsbibliotek og åbner en nabomappe ud over den – nyttigt, når dele af et projekt ligger spredt. /cd flytter hele arbejdsbiblioteket til en ny placering – nyttigt, når du skifter til et andet projekt. Kommandoen /cd blev introduceret i version 2.1.169, så hvis den mangler, skal du opdatere Claude Code. Jeg har en separat guide om hvordan du opdaterer Claude Code.

At Claude Code kan se filer, er kun grundlaget. Stabile resultater kommer ikke alene af filadgang. De afhænger af, hvad filerne indeholder, og hvordan du opbygger kontekst omkring projektet.

Hvorfor kan Claude Code ikke se en fil i en undermappe?

Vigtigste pointe

Undermapper fungerer anderledes end nabomapper: Claude har adgang til dem, men indholdet kommer ikke straks ind i dets kontekst. Claude indlæser instruktionsfiler og indholdet af undermapper efter behov, når det kigger i dem. Det indlæser dem ikke ved opstart. Derfor kan en fil i en dybt indlejret undermappe være ”usynlig”, indtil du giver Claude dens sti direkte. Løsningen er enkel: Giv Claude den nøjagtige sti til filen, eller bed det først om at læse filen, så bliver den synlig.

Det er vigtigt ikke at forveksle to forskellige situationer. En nabomappe (uden for projektet) er helt utilgængelig, indtil du tilføjer den. En undermappe i projektet er anderledes: Claude har adgang til den, men har ikke indholdet i tankerne fra starten.

Sådan fungerer det. Når Claude starter, indlæser det det, der ligger på projektets øverste niveauer. Det indlæser filer fra undermapper efter behov, når det går derhen for at læse noget. Dokumentationen beskriver denne adfærd for instruktionsfiler, og den samme logik gælder for kontekst generelt.

Claude finder filer i undermapper til arbejdsbiblioteket. I stedet for at indlæse dem ved opstart henter det dem ind, når det læser filer i de undermapper.

— Claude Code Docs, Administrer Claudes hukommelse, officiel dokumentation

Sagt med almindelige ord: Filen i en dybt indlejret undermappe er ikke forsvundet og er fuldt tilgængelig. Claude har bare ikke husket den endnu, fordi det ikke har kigget dér – derfor kan det føles, som om Claude ”ikke kan se” en fil, selv om den findes og er tilgængelig.

Du kan løse det med én linje. Giv Claude filstien direkte – for eksempel src/components/header.jsx – eller bed det ganske enkelt om at læse filen først. Så snart det kigger dér, kommer filen ind i konteksten, og du kan arbejde med den som normalt. Du behøver ikke ændre nogen indstillinger.

Hvor forsvinder filer fra @-menuen, og hvad har .gitignore med det at gøre?

Vigtigste pointe

Når du skriver symbolet @, viser Claude Code en liste over filer, du kan vælge. Som standard skjuler listen alt, der står i .gitignore – servicemapper, miljøfiler og buildoutput. En fil kan altså ligge præcis dér, hvor den skal, uden at blive vist i @-menuen. Indstillingen respectGitignore styrer dette: Den er som standard slået til og skjuler disse filer. Sæt den til false, så viser menuen også filer, der står i .gitignore. Du kan altid indtaste stien til sådan en fil manuelt.

En anden almindelig grund til at tro, at Claude har ”mistet” en fil, er filvælgeren. Når du skriver @, vises en liste, så det er nemt at vælge en fil uden at indtaste hele stien. Men listen viser ikke alt.

Som standard skjuler @-menuen filer, der står i .gitignore. Denne fil angiver, hvad der ikke skal tilføjes til det delte repository: servicemapper, filer med adgangskoder og miljøindstillinger samt færdigt buildoutput. Logikken er klar – som regel behøver du ikke arbejde manuelt med disse filer, så de ville blot gøre listen rodet. Men nogle gange har du brug for en af dem, og den findes ikke i menuen.

Indstillingen respectGitignore styrer dette. Den er som standard slået til, så filer fra .gitignore ikke vises i menuen. Hvis du vil se dem, skal du ændre den til false:

{
  "respectGitignore": false
}

Du kan gøre det samme uden at redigere filen ved at bruge kommandoen /config i Claude Code. Til/fra-knappen dér hedder ”Respekter .gitignore i filvælgeren”. Fjern markeringen, så kommer de skjulte filer tilbage i menuen.

En vigtig ting at være opmærksom på: respectGitignore gælder kun @-menuen og har intet med filadgang at gøre. Selv når en fil er skjult fra listen, kan du altid indtaste dens sti manuelt, og så læser Claude den. Menuen er en bekvemmelighedsfunktion; den fastlægger ikke adgangsgrænsen.

Hvad skal du gøre, hvis Claude Code ikke kan læse en bestemt fil?

Vigtigste pointe

Nogle gange er mappen den rigtige, men Claude nægter stadig at læse en bestemt fil. Årsagen er som regel en begrænsning i indstillingerne. Filen settings.json kan indeholde deny-regler, der blokerer læsning af bestemte filer, oftest .env-filer med nøgler og adgangskoder. Der er også en indstilling, der blokerer læsning af alt uden for arbejdsmapperne. Tjek begge steder i settings.json. Husk også, at .env-begrænsningen er en standardbeskyttelse; du bør ikke fjerne den uden en god grund.

Hvis mappen helt sikkert er den rigtige, og adgangen er åben, men Claude stadig ikke vil læse en bestemt fil, er den sandsynligvis begrænset. Begrænsningerne findes i indstillingsfilen settings.json og er af to slags.

Den første slags er en målrettet begrænsning af bestemte filer. I indstillingerne er det deny-regler, og de gælder oftest filen .env, hvor nøgler og adgangskoder gemmes:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)"
    ]
  }
}

En sådan regel forhindrer Claude i at læse de angivne filer, og det er med vilje. Nøgler og adgangskoder bør ikke ende i en samtale med modellen, så .env er låst som standard. Hvis du ser, at Claude ikke vil læse .env eller en lignende fil med hemmeligheder, er det tilsigtet, og du bør ikke fjerne denne begrænsning uden en tungtvejende grund.

Den anden slags er en generel begrænsning af alt uden for arbejdsmapperne. Indstillingen blockReadsOutsideWorkingDirectories styrer den. Når den er aktiveret, nægter Claude at læse filer uden for arbejdsbiblioteket, selv hvis du forsøger at åbne dem direkte. Hvis den er sat til true, og du har brug for en ekstern fil, kan du enten tilføje dens mappe med /add-dir eller slå begrænsningen fra:

{
  "permissions": {
    "blockReadsOutsideWorkingDirectories": false
  }
}

Denne indstilling blev introduceret i version 2.1.257. Hvis du har prøvet alt andet, men filen stadig er utilgængelig, er det værd at tjekke både deny og blockReadsOutsideWorkingDirectories.

Hvor skal du begynde, hvis Claude Code ikke kan se filer?

Vigtigste pointe

Start med at tjekke mappen: Bed Claude vise den aktuelle mappe med pwd, og sammenlign den med projektets placering. Hvis de ikke stemmer overens, skal du starte Claude igen fra projektmappen eller gå derhen med /cd. Har du brug for filer fra en nabomappe? Åbn den med /add-dir. Kan Claude ikke se en fil i en undermappe? Giv Claude stien direkte. Mangler en fil i @-menuen? Det skyldes .gitignore – ændr respectGitignore. Er en fil låst? Se efter en deny-begrænsning i settings.json.

Her er en kort plan, du kan følge fra start til slut.

  1. Tjek arbejdsmappen: Bed Claude vise den aktuelle mappe med pwd, og sammenlign den med projektets placering.
  2. Hvis mapperne er forskellige, skal du starte Claude igen fra den rigtige mappe (cd project og derefter claude) eller gå derhen med kommandoen /cd.
  3. Har du brug for filer fra en nabomappe? Tilføj den med /add-dir eller flaget --add-dir, når du starter Claude.
  4. Er en fil fra en undermappe ikke i konteksten? Giv Claude stien direkte, eller bed det læse filen.
  5. Mangler en fil i @-menuen? Det skyldes .gitignore. Sæt respectGitignore til false, eller fjern markeringen i /config.
  6. Er en bestemt fil låst? Tjek reglerne deny og blockReadsOutsideWorkingDirectories i settings.json.

I ni ud af ti tilfælde løser det første trin alt: Claude blev startet fra den forkerte mappe. Filadgang er grundlaget, men den bygger ikke projektet for dig. Jeg har beskrevet i detaljer, hvordan du bygger kontekst op omkring Claude, så det holder hele projektet i tankerne og ikke mister tråden, i min guide til Second Brain i Claude Code.

Kilder

Find flere materialer om arbejde med værktøjer i Ailoot-dokumentationen.

Flere oplysninger

Spørgsmål og svar

Hvorfor er start fra hjemmemappen anderledes end start i et naboprojekt?

Et projekt under hjemmemappen er en undermappe, så start hjemmefra placerer det ikke uden for arbejdstræet; det giver en bredere kontekst end tilsigtet. En nabo til arbejdsmappen ligger udenfor. Sammenlign de fulde stier, før du diagnosticerer manglende adgang.

Betyder adgang til en undermappe, at filerne allerede er i konteksten?

Nej. Giv agenten filstien, og bed den læse filen. Undersøg gældende tilladelser, hvis læsningen afvises. En fil, der mangler i valgmenuen, og en afvist fillæsning er forskellige problemer.

Alle artikler