Claude Code kan inte se projektfiler: varför och vad du kan göra 2026
MarkdownVarför Claude Code inte hittar projektfiler: det startades från fel mapp, filen ligger i en undermapp eller finns i .gitignore. Så ger du åtkomst med add-dir, cd och inställningar.
Läs hela artikeln
En välbekant situation: du ber Claude Code att fixa en fil, och det svarar att filen inte finns. Eller så ändrar det tyst något helt annat än det du menade. Du öppnar mappen – filen finns där, precis där den ska vara. Men Claude verkar inte märka den.
Nästan alltid finns det en enkel förklaring, och inget är trasigt. Claude ser inte filer på hela datorn. Det kan bara komma åt mappen som du startade det från. Start i en syskonmapp eller under projektroten kan placera nödvändiga filer utanför arbetsträdet. Start från en överordnad mapp som hemmet ger i stället bredare omfattning; det gör inte ett underordnat projekt oåtkomligt. Jag förklarar steg för steg varför det fungerar så och hur du ger Claude åtkomst till filerna det behöver. Jag citerar kommandon och inställningar direkt från den officiella dokumentationen för Claude Code, som jag kontrollerade i början av september 2026.
Mer material om hur du konfigurerar verktyg finns i Ailoot-dokumentationen.
Varför kan Claude Code inte se vissa projektfiler?
Det viktigaste
Claude Code läser inte filer från hela enheten, utan bara från mappen där du startade det. Den här mappen kallas arbetskatalogen. Claude kan se och läsa allt som finns i den och dess undermappar utan att fråga. Allt utanför den – i en intilliggande mapp, en nivå upp eller på en annan enhet – är otillgängligt tills du själv ger åtkomst. Den vanligaste orsaken till att en fil ”inte syns” är alltså enkel: du startade Claude från en annan mapp. Kontrollera först exakt var du öppnade det.
Som standard arbetar Claude Code med en enda mapp: den där du skrev kommandot claude och startade sessionen. Det står uttryckligen i dokumentationen.
Som standard har Claude åtkomst till filer i mappen där du startade det.
Den här mappen är dess arbetskatalog. I den läser Claude alla filer utan extra frågor: redigera en prompt, söka i kod, läsa en viss fil – allt fungerar direkt. Men allt utanför den här mappen är otillgängligt som standard. En intilliggande mapp, en mapp en nivå upp eller en annan enhet – Claude tittar inte där förrän du ger det åtkomst.
Där kan en felvald arbetsmapp spela roll. Anta att projektet är /Users/you/my-shop, men att du startade Claude från syskonmappen /Users/you/other-project. index.html i my-shop ligger utanför det arbetsträdet. Start från /Users/you är ett annat fall: my-shop är underordnat och blir inte oåtkomligt bara för att du började från hemmet, även om vald kontext är bredare än avsett. Åtkomst till en mapp betyder inte heller att varje fil redan har lästs.
Nu går jag igenom hur du kontrollerar och åtgärdar det: först bekräftar vi vilken mapp Claude startades från, sedan ger vi det åtkomst till filerna som behövs på olika sätt – från en instruktion som gäller en gång till en permanent inställning.
Hur kontrollerar du vilken mapp Claude Code startades från?
Det viktigaste
Fråga Claude vilken mapp det befinner sig i, eller be det visa den aktuella katalogen med kommandot pwd – det kontrollerar bara och ändrar ingenting. Jämför sökvägen som visas med projektets faktiska plats. Om sökvägarna skiljer sig åt är det orsaken: Claude startades från fel mapp. En ännu säkrare lösning är att avsluta sessionen och starta Claude på nytt direkt från projektmappen: gå dit i terminalen och skriv claude.
Innan du åtgärdar något bör du kontrollera att det verkligen är mappen som är problemet. Det är enkelt att kolla. Be Claude i chatten visa vilken katalog det befinner sig i – det kör pwd, vilket är säkert: kommandot visar bara sökvägen och ändrar ingenting.
pwd
Svaret visar faktisk arbetskatalog. Jämför med projektets fullständiga sökväg: /Users/you/other-project är syskon till /Users/you/my-shop, medan /Users/you är dess överordnade mapp. Syskonfallet placerar my-shop utanför arbetsträdet; föräldrafallet inkluderar det men väljer inte det specifika projektet som rot.
Det enklaste sättet att lösa den här skillnaden är att starta Claude direkt från projektmappen. Avsluta den aktuella sessionen, gå till rätt mapp i terminalen och starta Claude därifrån:
# Ersätt denna exempelsökväg med din faktiska projektrot.
cd /Users/you/my-shop
claude
Nu blir my-shop arbetsmappen, och alla projektfiler är synliga. Samma regel gäller i en redigerare som VS Code: öppna mappen som innehåller projektet. Inte mappen en nivå ovanför och inte hela enheten. Mappen du öppnar avgör vad Claude betraktar som sin arbetskatalog.
Om det är besvärligt att starta om – till exempel om du redan har gett Claude sammanhang i den här sessionen och inte vill förlora det – kan du lägga till eller byta mapp under pågående session. Det tar de två följande avsnitten upp.
Hur visar du Claude Code en fil i en intilliggande mapp?
Det viktigaste
Utan att starta om sessionen lägger du till den mapp du behöver med kommandot /add-dir direkt i chatten: skriv /add-dir följt av mappsökvägen, så blir filerna tillgängliga på samma villkor som filerna i huvudmappen. Om åtkomsten ska öppnas redan när Claude startar lägger du till flaggan --add-dir med en sökväg i kommandot claude. Och om du vill att en mapp ska öppnas automatiskt varje gång lägger du till den under nyckeln additionalDirectories i inställningarna. I alla tre fallen kan filer i den tillagda mappen läsas utan separata bekräftelser.
Ibland finns ett projekt i flera mappar. Koden finns på ett ställe, bilder eller text i en intilliggande mapp och delade komponenter någon annanstans i närheten. Det är opraktiskt att starta om Claude i varje mapp i tur och ordning. Det är bättre att ge det åtkomst till mappen som behövs och låta huvudmappen vara arbetskatalogen.
Det enklaste sättet är att göra det direkt i den aktiva sessionen med kommandot:
/add-dir ../assets
Skriv /add-dir och mappsökvägen, så får Claude genast åtkomst till filerna på samma villkor som till filerna i huvudmappen. Det frågar inte om tillåtelse igen: den tillagda mappen följer samma regler som arbetskatalogen.
Filer i ytterligare kataloger följer samma åtkomstregler som huvudkatalogen: de läses utan en fråga.
Om du redan vet att du ska arbeta med flera mappar kan du öppna åtkomsten direkt när Claude startar – med samma sökväg, men med en flagga:
claude --add-dir ../assets
Om du alltid behöver samma intilliggande mapp i ett projekt behöver du inte lägga till den manuellt varje gång. I inställningsfilen settings.json finns nyckeln additionalDirectories. Lista sökvägarna där, så öppnas de automatiskt varje gång Claude startar:
{
"permissions": {
"additionalDirectories": ["../assets", "../shared"]
}
}
En sak att tänka på i Windows: du kan inte lägga till en nätverksmapp med en sökväg som \\server\shared – Claude godtar inte sådana sökvägar. Montera den som en separat enhet med en enhetsbokstav och ange sedan bokstaven med --add-dir. Vanliga lokala mappar har inte det här problemet.
Vad händer om det inte räcker att lägga till en intilliggande mapp och du behöver byta till en helt annan mapp? Det finns ett separat kommando för det, som vi går igenom härnäst.
Hur byter du Claude Code till en annan mapp under en session?
Det viktigaste
Kommandot /cd byter huvudmapp utan att avsluta sessionen: skriv /cd och en sökväg, så flyttar sig Claude dit och behåller konversationshistoriken. Under flytten hämtar det instruktionsfilen CLAUDE.md från den nya mappen och ber dig bekräfta att du litar på den om du inte har arbetat där tidigare. Skillnaden mot /add-dir är att /add-dir öppnar en intilliggande mapp bredvid huvudmappen, medan /cd flyttar hela arbetskatalogen till en ny plats. Kommandot finns från och med version 2.1.169.
Ibland räcker det inte att lägga till en intilliggande mapp – du behöver byta huvudmapp och gå till ett annat projekt utan att förlora sammanhanget du har byggt upp. Använd kommandot /cd:
/cd ../another-project
Därefter behandlar Claude den nya mappen som sin arbetskatalog. Du behåller hela konversationshistoriken, men platsen Claude använder som utgångspunkt för filer ändras till den nya platsen. Claude hämtar också instruktionsfilen CLAUDE.md från den nya mappen, om det finns en sådan – det anpassar sig alltså till det nya projektets regler.
En sak att känna till om förtroende: om du inte har arbetat i den här mappen tidigare frågar Claude om du litar på den när du flyttar dit. Det är en säkerhetsåtgärd: en instruktionsfil i en okänd mapp kan innehålla vad som helst, så Claude kontrollerar först att det är ditt projekt. Bekräfta och fortsätt sedan.
Skillnaden mellan de två kommandona är enkel. /add-dir behåller huvudmappen som arbetskatalog och öppnar dessutom en intilliggande mapp – användbart när delar av ett projekt ligger utspridda. /cd flyttar hela arbetskatalogen till en ny plats – användbart när du byter till ett annat projekt. Kommandot /cd infördes i version 2.1.169, så uppdatera Claude Code om det saknas. Jag har en separat guide om hur du uppdaterar Claude Code.
Att Claude Code ser filer är bara grunden. Stabilt resultat kommer inte enbart av filåtkomst. Det beror på vad filerna innehåller och hur du bygger sammanhang kring projektet.
Varför kan Claude Code inte se en fil i en undermapp?
Det viktigaste
Undermappar fungerar annorlunda än intilliggande mappar: Claude har åtkomst till dem, men innehållet förs inte in i dess sammanhang direkt. Claude hämtar instruktionsfiler och innehållet i undermappar vid behov, när det tittar i dem. Det laddar inte in dem vid start. Därför kan en fil i en djupt nästlad undermapp vara ”osynlig” tills du anger sökvägen direkt för Claude. Lösningen är enkel: ge Claude filens exakta sökväg eller be det läsa filen först, så blir den synlig.
Det är viktigt att inte blanda ihop två olika situationer. En intilliggande mapp (utanför projektet) är helt otillgänglig tills du lägger till den. En undermapp inuti projektet är annorlunda: Claude har åtkomst till den, men har inte mappens innehåll i minnet från början.
Så här fungerar det. När Claude startar läser det in sådant som finns på projektets översta nivåer. Det hämtar filer från undermappar vid behov, när det går dit för att läsa något. Dokumentationen beskriver det här beteendet för instruktionsfiler, och samma princip gäller för sammanhang i allmänhet.
Claude hittar filer i undermappar till arbetskatalogen. I stället för att läsa in dem vid start hämtar det in dem när det läser filer i de undermapparna.
Enkelt uttryckt: filen i en djupt nästlad undermapp har inte försvunnit och är fullt tillgänglig. Claude har bara inte kommit ihåg den ännu eftersom det inte har tittat där – därför kan det kännas som om Claude ”inte ser” en fil trots att den finns där och går att komma åt.
Du kan lösa det på en rad. Ange sökvägen till filen direkt för Claude – till exempel src/components/header.jsx – eller be det helt enkelt läsa filen först. Så snart det tittar där förs filen in i sammanhanget, och du kan arbeta med den som vanligt. Du behöver inte ändra några inställningar.
Varför saknas filer i @-menyn, och vad har .gitignore med det att göra?
Det viktigaste
När du skriver symbolen @ visar Claude Code en lista över filer du kan välja mellan. Som standard döljer listan allt som finns med i .gitignore – systemmappar, miljöfiler och byggresultat. En fil kan alltså finnas precis där den ska, men ändå inte visas i @-menyn. Inställningen respectGitignore styr det här: den är aktiverad som standard och döljer de filerna. Sätt den till false, så visar menyn även filer som listas i .gitignore. Du kan alltid ange sökvägen till en sådan fil manuellt.
En annan vanlig orsak till att tro att Claude har ”tappat bort” en fil är filväljaren. När du skriver @ visas en lista, så att du enkelt kan välja en fil utan att skriva hela sökvägen. Men listan visar inte allt.
Som standard döljer @-menyn filer som listas i .gitignore. Den filen anger vad som inte ska läggas till i det delade kodförrådet: systemmappar, filer som innehåller lösenord och miljöinställningar samt färdiga byggresultat. Tanken är tydlig – oftast behöver du inte arbeta manuellt med de filerna, så de skulle bara göra listan rörigare. Men ibland behöver du en sådan fil, och den syns inte i menyn.
Inställningen respectGitignore styr detta. Den är aktiverad som standard, så filer från .gitignore visas inte i menyn. Om du vill se dem ändrar du den till false:
{
"respectGitignore": false
}
Du kan göra samma sak utan att redigera filen genom att använda kommandot /config i Claude Code. Växlingsknappen där heter ”Respektera .gitignore i filväljaren”. Avmarkera den, så visas de dolda filerna i menyn igen.
En viktig sak att tänka på: respectGitignore gäller bara @-menyn och har ingenting med filåtkomst att göra. Även när en fil är dold i listan kan du alltid ange sökvägen manuellt, så läser Claude den. Menyn är en bekvämlighetsfunktion; den avgör inte åtkomstgränsen.
Vad ska du göra om Claude Code inte kan läsa en viss fil?
Det viktigaste
Ibland är mappen rätt, men Claude vägrar ändå läsa en viss fil. Orsaken är vanligtvis en begränsning i inställningarna. Filen settings.json kan innehålla deny-regler som blockerar läsning av vissa filer, oftast .env-filer med nycklar och lösenord. Det finns också en inställning som blockerar läsning av allt utanför arbetsmapparna. Kontrollera båda ställena i settings.json. Kom också ihåg att .env-begränsningen är en standardsäkerhetsåtgärd; du bör inte ta bort den utan goda skäl.
Om mappen definitivt är rätt och åtkomsten är öppen, men Claude ändå inte läser en viss fil, är den troligen spärrad. Begränsningar finns i inställningsfilen settings.json och är av två slag.
Den första är en riktad begränsning för enskilda filer. I inställningarna är det här deny-regler, som oftast gäller filen .env, där nycklar och lösenord lagras:
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)"
]
}
}
En sådan regel hindrar Claude från att läsa de angivna filerna, och det är avsiktligt. Nycklar och lösenord ska inte hamna i en konversation med modellen, så .env är låst som standard. Om du märker att Claude inte läser .env eller en liknande fil som innehåller hemligheter är det avsiktligt, och du bör inte ta bort den här begränsningen utan ett tungt vägande skäl.
Den andra typen är en allmän begränsning av allt utanför arbetsmapparna. Inställningen blockReadsOutsideWorkingDirectories styr detta. När den är aktiverad vägrar Claude läsa alla filer utanför arbetskatalogen, även om du försöker öppna dem direkt. Om den är satt till true och du behöver en extern fil kan du antingen lägga till dess mapp med /add-dir eller stänga av begränsningen:
{
"permissions": {
"blockReadsOutsideWorkingDirectories": false
}
}
Den här inställningen infördes i version 2.1.257. Om du har försökt allt annat men filen fortfarande är otillgänglig är det värt att kontrollera både deny och blockReadsOutsideWorkingDirectories.
Var ska du börja om Claude Code inte kan se filer?
Det viktigaste
Börja med att kontrollera mappen: be Claude visa den aktuella katalogen med pwd och jämför den med projektets plats. Om de inte stämmer överens startar du om Claude från projektmappen eller flyttar dit med /cd. Behöver du filer från en intilliggande mapp? Öppna den med /add-dir. Kan Claude inte se en fil i en undermapp? Ange sökvägen direkt för Claude. Saknas en fil i @-menyn? Det har med .gitignore att göra – ändra respectGitignore. Är en fil låst? Leta efter en deny-begränsning i settings.json.
Här är en kort plan att följa uppifrån och ned.
- Kontrollera arbetsmappen: be Claude visa den aktuella katalogen med
pwdoch jämför den med projektets plats. - Om mapparna skiljer sig åt startar du om Claude från rätt mapp (
cd project, sedanclaude) eller flyttar dit med kommandot/cd. - Behöver du filer från en intilliggande mapp? Lägg till den med
/add-direller flaggan--add-dirnär du startar Claude. - Finns en fil från en undermapp inte i sammanhanget? Ange sökvägen direkt för Claude eller be det läsa filen.
- Saknas en fil i
@-menyn? Det beror på.gitignore. SättrespectGitignoretillfalseeller avmarkera rutan i/config. - Är en viss fil låst? Kontrollera reglerna
denyochblockReadsOutsideWorkingDirectoriesisettings.json.
I nio fall av tio löser det första steget allt: Claude startades från fel mapp. Filåtkomst är grunden, men den bygger inte projektet åt dig. Jag har beskrivit i detalj hur du bygger sammanhang kring Claude så att det håller hela projektet i minnet och inte tappar tråden i min guide till Second Brain i Claude Code.
Källor
- Claude Code - Konfigurera behörigheter, officiell dokumentation - standardarbetskatalog, --add-dir och /add-dir, /cd, additionalDirectories, åtkomst utan frågor, nätverkssökvägar
- Claude Code - Hantera Claudes minne, officiell dokumentation - inläsning av undermapparnas filer vid behov, CLAUDE.md, importer
- Claude Code - Referens för inställningar, officiell dokumentation - respectGitignore och @-menyn, blockReadsOutsideWorkingDirectories och version 2.1.257
- Claude Code - Inställningar, officiell dokumentation - deny-regler och blockering av läsning av .env
Hitta mer material om hur du arbetar med verktyg i Ailoot-dokumentationen.
Fler detaljer
Frågor om den här guiden: Claude Code kan inte se projektfiler: varför och vad du kan göra 2026
Varför skiljer sig start från hemmappen från start i ett syskonprojekt?
Ett projekt under hemmappen är en underkatalog, så start från hemmet placerar det inte utanför arbetskatalogträdet; den ger bredare kontext än avsett. Ett syskon till arbetsmappen ligger utanför den. Jämför fullständiga sökvägar före diagnos av saknad åtkomst.
Betyder åtkomst till en undermapp att filerna redan finns i kontexten?
Nej. Ge agenten filens sökväg och be den läsa filen. Om läsningen nekas granskar du tillämpliga behörigheter; en fil som saknas i valmenyn och en nekad filläsning är olika problem.