Blog

Claude Code ne vidi projektnih datotek: zakaj in kaj storiti v 2026

Markdown

Zakaj Claude Code ne najde projektnih datotek: zagnali ste ga iz napačne mape, datoteka je v podmapi ali pa je navedena v .gitignore. Kako omogočiti dostop z add-dir, cd in nastavitvami.

Preberi celoten članek

Znana situacija: Claude Code prosite, naj popravi datoteko, on pa odgovori, da ta ne obstaja. Ali pa tiho spremeni nekaj povsem drugega od tistega, kar ste imeli v mislih. Odprete mapo — datoteka je tam, točno na svojem mestu. Toda Claude je, kot kaže, ne opazi.

Skoraj vedno obstaja en sam razlog in nič ni pokvarjeno. Claude ne vidi datotek na celotnem računalniku. Dostopa lahko samo do mape, iz katere ste ga zagnali. Zagon v sosednji mapi ali pod korenom projekta lahko potrebne datoteke postavi zunaj delovnega drevesa. Zagon iz nadrejene mape, kot je domača, pa razširi obseg; podrejenega projekta ne naredi nedostopnega. Korak za korakom bom pojasnil, zakaj to deluje tako in kako Claudeu omogočiti dostop do datotek, ki jih potrebuje. Ukaze in nastavitve navajam neposredno iz uradne dokumentacije Claude Code, ki sem jo preveril v začetku septembra 2026.

Dodatna gradiva o nastavitvah orodij so na voljo v dokumentaciji Ailoot.

Zakaj Claude Code ne vidi nekaterih projektnih datotek?

Ključna ugotovitev

Claude Code datotek ne bere s celotnega pogona, temveč samo iz mape, iz katere ste ga zagnali. Ta mapa se imenuje delovni imenik. Claude lahko brez vprašanj vidi in bere vse, kar je v njem in njegovih podmapah. Vse zunaj njega — v sosednji mapi, eno raven višje ali na drugem pogonu — je nedostopno, dokler mu dostopa ne omogočite sami. Zato je najpogostejši razlog, da datoteka »ni vidna«, preprost: Claude ste zagnali iz druge mape. Najprej preverite, od kod natančno ste ga odprli.

Claude Code privzeto deluje z eno mapo: tisto, v kateri ste vnesli ukaz claude in zagnali sejo. Dokumentacija to pove neposredno.

Claude ima privzeto dostop do datotek v mapi, iz katere ste ga zagnali.

— Claude Code Docs, Configure permissions, uradna dokumentacija

Ta mapa je njegov delovni imenik. V njej Claude brez dodatnih vprašanj prebere katero koli datoteko: uredi prompt, poišče kodo ali prebere določeno datoteko — vse deluje takoj. Vse zunaj te mape pa je privzeto nedostopno. Sosednja mapa, mapa eno raven višje, drug pogon — Claude jih ne bo pregledal, dokler mu tega ne dovolite.

Tukaj je lahko pomembno neskladje delovne mape. Recimo, da je projekt /Users/you/my-shop, Claudea pa ste zagnali iz sosednje mape /Users/you/other-project. index.html v my-shop je zunaj tega delovnega drevesa. Zagon iz /Users/you je drugačen: my-shop je podrejena mapa in ni nedostopna samo zato, ker ste začeli v domači, čeprav je izbrani kontekst širši od želenega. Dostop do mape tudi ne pomeni, da so bile vse datoteke že prebrane.

V nadaljevanju bom pojasnil, kako to preveriti in odpraviti: najprej bomo ugotovili, iz katere mape je bil Claude zagnan, nato pa mu bomo na različne načine omogočili dostop do potrebnih datotek — od enkratnega navodila do trajne nastavitve.

Kako preverite, iz katere mape je bil zagnan Claude Code?

Ključna ugotovitev

Claudea vprašajte, v kateri mapi je, ali pa ga prosite, naj s pomočjo ukaza pwd prikaže trenutni imenik — ta ukaz samo preveri stanje in ničesar ne spremeni. Prikazano pot primerjajte z dejansko lokacijo projekta. Če se poti razlikujeta, je to razlog: Claude je bil zagnan iz napačne mape. Še zanesljivejša rešitev je, da sejo zaprete in Claudea znova zaženete neposredno iz projektne mape: v terminalu se premaknite vanjo in tam vnesite claude.

Preden kar koli popravljate, se prepričajte, da je težava res v mapi. To lahko hitro preverite. V klepetu prosite Claudea, naj prikaže imenik, v katerem je trenutno — zagnal bo pwd, kar je varno: ukaz samo prikaže pot in se ničesar ne dotakne.

pwd

Odgovor pokaže dejanski delovni imenik. Primerjajte ga s polno potjo projekta: /Users/you/other-project je sosed /Users/you/my-shop, /Users/you pa njegova nadrejena mapa. V prvem primeru je my-shop zunaj delovnega drevesa; nadrejena mapa ga vključuje, vendar tega projekta ne izbere kot koren.

Najboljši način za odpravo tega neskladja je, da Claudea zaženete neposredno iz projektne mape. Zaprite trenutno sejo, v terminalu se premaknite v pravo mapo in od tam zaženite Claudea:

# To ponazoritveno pot zamenjajte z dejanskim korenom projekta.
cd /Users/you/my-shop
claude

Zdaj bo my-shop delovna mapa, vidne pa bodo vse projektne datoteke. Enako pravilo velja v urejevalniku, kot je VS Code: odprite mapo, ki vsebuje projekt. Ne mape eno raven višje in ne celotnega pogona. Mapa, ki jo odprete, določa, kaj Claude šteje za svoj delovni imenik.

Če je ponovni zagon nepriročen — na primer, če ste Claudeu v tej seji že podali kontekst in ga ne želite izgubiti — lahko sproti dodate mapo ali preklopite vanjo. To opisujeta naslednja razdelka.

Kako Claudeu Code pokažete datoteko v sosednji mapi?

Ključna ugotovitev

Ne da bi znova zagnali sejo, dodajte potrebno mapo neposredno v klepetu z ukazom /add-dir: vnesite /add-dir in pot do mape, nato pa bodo njene datoteke dostopne enako kot datoteke v glavni mapi. Če želite dostop omogočiti že ob zagonu Claudea, ukazu claude dodajte zastavico --add-dir in pot. Če želite, da se mapa samodejno odpre vsakič, jo dodajte pod ključ additionalDirectories v nastavitvah. V vseh treh primerih lahko datoteke v dodani mapi berete brez ločenih potrditev.

Včasih projekt ni shranjen samo v eni mapi. Koda je na enem mestu, slike ali besedilo v sosednji mapi, skupne komponente pa nekje drugje v bližini. Nepriročno je vsakič znova zagnati Claudea v drugi mapi. Bolje je, da mu omogočite dostop do potrebne mape, glavna mapa pa ostane delovni imenik.

Najpreprosteje to storite neposredno v aktivni seji z ukazom:

/add-dir ../assets

Vnesite /add-dir in pot do mape, Claude pa bo takoj dobil dostop do njenih datotek, enako kot do datotek v glavni mapi. Za dovoljenje ne bo znova vprašal: za dodano mapo veljajo enaka pravila kot za delovni imenik.

Za datoteke v dodatnih imenikih veljajo enaka pravila dostopa kot za glavni delovni imenik: preberejo se brez prompta.

— Claude Code Docs, Configure permissions, uradna dokumentacija

Če že vnaprej veste, da boste delali z več mapami, dostop omogočite takoj ob zagonu Claudea — uporabite isto pot, vendar z zastavico:

claude --add-dir ../assets

Če v projektu vedno potrebujete isto sosednjo mapo, vam je ni treba vsakič ročno dodajati. Datoteka z nastavitvami settings.json vsebuje ključ additionalDirectories. Tam navedite poti in vsakič, ko zaženete Claudea, se bodo samodejno odprle:

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

Za Windows velja ena izjema: omrežne mape ne morete dodati s potjo, kot je \\server\shared — Claude takšnih poti ne sprejema. Priklopite jo kot ločen pogon s črko pogona, nato pa to črko podajte z možnostjo --add-dir. Običajne lokalne mape nimajo te težave.

Kaj pa, če dodajanje sosednje mape ne zadostuje in se morate v celoti premakniti v drugo mapo? Za to obstaja ločen ukaz, ki je opisan spodaj.

Kako med sejo preklopite Claude Code v drugo mapo?

Ključna ugotovitev

Ukaz /cd spremeni glavno delovno mapo, ne da bi zaprl sejo: vnesite /cd in pot, Claude pa se bo premaknil tja, zgodovina pogovora pa bo ostala nedotaknjena. Med prehodom bo iz nove mape prevzel datoteko z navodili CLAUDE.md in vas, če tam še niste delali, prosil za potrditev, da ji zaupate. Razlika med ukazoma je v tem, da /add-dir odpre sosednjo mapo poleg glavne, /cd pa celoten delovni imenik premakne na novo lokacijo. Ukaz je na voljo od različice 2.1.169 naprej.

Včasih dodajanje sosednje mape ne zadostuje — spremeniti morate glavno mapo in se premakniti v drug projekt, ne da bi izgubili že zgrajeni kontekst. Uporabite ukaz /cd:

/cd ../another-project

Nato bo Claude novo mapo obravnaval kot svoj delovni imenik. Celotna zgodovina pogovora se ohrani, spremeni pa se lokacija, ki jo Claude uporablja kot izhodišče za datoteke. Claude prevzame tudi datoteko z navodili CLAUDE.md iz nove mape, če je tam — torej se prilagodi pravilom novega projekta.

Glede zaupanja morate vedeti naslednje: če v tej mapi še niste delali, vas bo Claude ob prehodu vprašal, ali ji zaupate. To je varnostni ukrep: datoteka z navodili v neznani mapi lahko vsebuje kar koli, zato Claude najprej preveri, ali je to vaš projekt. Potrdite in nadaljujte.

Razlika med ukazoma je preprosta. /add-dir ohrani glavno mapo kot delovni imenik in poleg nje odpre sosednjo mapo — uporabno, ko so deli projekta razpršeni naokrog. /cd premakne celoten delovni imenik na novo lokacijo — uporabno, ko preklopite na drug projekt. Ukaz /cd je bil uveden v različici 2.1.169, zato posodobite Claude Code, če ga ni. Imam ločen vodič o posodabljanju Claude Code.

Claudeova zmožnost videti datoteke je samo temelj. Stabilni rezultati niso posledica zgolj dostopa do datotek. Odvisni so od tega, kaj te datoteke vsebujejo in kako zgradite kontekst okoli projekta.

Zakaj Claude Code ne vidi datoteke v podmapi?

Ključna ugotovitev

Podmape delujejo drugače kot sosednje mape: Claude ima dostop do njih, vendar se njihova vsebina ne vključi v njegov kontekst takoj. Datoteke z navodili in vsebino podmap naloži po potrebi, ko jih odpre. Ob zagonu jih ne naloži. Zato je datoteka v globoko ugnezdeni podmapi lahko »nevidna«, dokler Claudeu neposredno ne podate njene poti. Rešitev je preprosta: Claudeu podajte točno pot do datoteke ali ga prosite, naj jo najprej prebere, in datoteka bo postala vidna.

Pomembno je, da ne zamenjujete dveh različnih okoliščin. Sosednja mapa (zunaj projekta) je povsem nedostopna, dokler je ne dodate. Podmapa znotraj projekta je drugačna: Claude ima dostop do nje, vendar njene vsebine od začetka ne ohranja v mislih.

Tako deluje. Ob zagonu Claude naloži vsebino z najvišjih ravni projekta. Datoteke iz podmap naloži po potrebi, ko se vanje odpravi, da bi kaj prebral. Dokumentacija to vedenje opisuje za datoteke z navodili, enaka logika pa velja za kontekst na splošno.

Claude odkrije datoteke v podmapah delovnega imenika. Namesto da bi jih naložil ob zagonu, jih vključi, ko bere datoteke v teh podmapah.

— Claude Code Docs, Manage Claude's memory, uradna dokumentacija

Preprosto povedano: datoteka v globoko ugnezdeni podmapi ni izginila in je v celoti dostopna. Claude se je samo še ni zapomnil, ker tam še ni pogledal — zato se lahko zdi, da Claude »ne vidi« datoteke, čeprav je tam in je dostopna.

To lahko odpravite v eni vrstici. Claudeu neposredno podajte pot do datoteke — na primer src/components/header.jsx — ali ga preprosto prosite, naj jo najprej prebere. Ko jo odpre, bo datoteka vključena v kontekst in z njo boste lahko delali kot običajno. Nastavitev vam ni treba spreminjati.

Kje izginejo datoteke iz menija @ in kaj ima s tem .gitignore?

Ključna ugotovitev

Ko vnesete znak @, Claude Code prikaže seznam datotek, med katerimi lahko izbirate. Privzeto ta seznam skrije vse, kar je navedeno v .gitignore — servisne mape, okoljske datoteke in izhodne datoteke gradnje. Datoteka je torej lahko na pravem mestu, vendar se v meniju @ ne prikaže. To določa nastavitev respectGitignore: privzeto je vključena in te datoteke skrije. Nastavite jo na false in meni bo prikazal tudi datoteke, navedene v .gitignore. Pot do takšne datoteke lahko vedno vnesete ročno.

Še en pogost razlog, da mislite, da je Claude »izgubil« datoteko, je izbirnik datotek. Ko vnesete @, se prikaže seznam, s katerega lahko preprosto izberete datoteko, ne da bi vnašali njeno celotno pot. Seznam pa ne prikaže vsega.

Meni @ privzeto skrije datoteke, navedene v .gitignore. Ta datoteka določa, česa ne bi smeli dodati v skupno shrambo: servisnih map, datotek z gesli in okoljskimi nastavitvami ter dokončanih izhodnih datotek gradnje. Razlog je jasen — s temi datotekami običajno ni treba delati ročno, zato bi le po nepotrebnem polnile seznam. Včasih pa katero od njih potrebujete, vendar je ni v meniju.

To določa nastavitev respectGitignore. Privzeto je vključena, zato datoteke iz .gitignore niso prikazane v meniju. Če jih želite videti, jo nastavite na false:

{
  "respectGitignore": false
}

Enako lahko storite brez urejanja datoteke, in sicer z ukazom /config v Claude Code. Stikalo se imenuje “Respect .gitignore in file picker.” Odznačite ga in skrite datoteke se bodo vrnile v meni.

Pomembna opomba: nastavitev respectGitignore velja samo za meni @ in ni povezana z dostopom do datotek. Tudi če je datoteka skrita s seznama, lahko njeno pot vedno vnesete ročno, Claude pa jo bo prebral. Meni je priročna funkcija; ne določa meja dostopa.

Kaj storiti, če Claude Code ne more prebrati določene datoteke?

Ključna ugotovitev

Včasih je mapa prava, vendar Claude še vedno noče prebrati določene datoteke. Običajno je razlog omejitev v nastavitvah. Datoteka settings.json lahko vsebuje pravila deny, ki blokirajo branje določenih datotek — najpogosteje datotek .env s ključi in gesli. Obstaja tudi nastavitev, ki v celoti blokira branje vsega zunaj delovnih map. Preverite obe možnosti v settings.json. Ne pozabite, da je omejitev za .env privzeti varnostni ukrep; brez dobrega razloga je ne bi smeli odstraniti.

Če je mapa zagotovo prava in je dostop omogočen, Claude pa še vedno noče prebrati določene datoteke, je najverjetneje omejena. Omejitve so v datoteki z nastavitvami settings.json in so dveh vrst.

Prva vrsta je ciljna omejitev za določene datoteke. V nastavitvah so to pravila deny, ki se najpogosteje uporabljajo za datoteko .env, v kateri so shranjeni ključi in gesla:

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

Takšno pravilo Claudeu prepreči branje določenih datotek in to je namerno. Ključi in gesla ne bi smeli pristati v pogovoru z modelom, zato je .env privzeto zaklenjen. Če opazite, da Claude noče prebrati .env ali podobne datoteke s skrivnostmi, je to predvideno vedenje in omejitve brez tehtnega razloga ne bi smeli odstraniti.

Druga vrsta je splošna omejitev za vse zunaj delovnih map. Ureja jo nastavitev blockReadsOutsideWorkingDirectories. Ko je omogočena, Claude noče prebrati nobene datoteke zunaj delovnega imenika, tudi če jo poskušate odpreti neposredno. Če je nastavljena na true in potrebujete zunanjo datoteko, dodajte njeno mapo z ukazom /add-dir ali izklopite omejitev:

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

Ta nastavitev je bila uvedena v različici 2.1.257. Če ste poskusili vse drugo, datoteka pa je še vedno nedostopna, preverite tako deny kot blockReadsOutsideWorkingDirectories.

Kje začeti, če Claude Code ne vidi datotek?

Ključna ugotovitev

Začnite s preverjanjem mape: Claudea prosite, naj z ukazom pwd prikaže trenutni imenik, nato pa ga primerjajte z lokacijo projekta. Če se ne ujemata, Claudea znova zaženite iz projektne mape ali se tja premaknite z ukazom /cd. Potrebujete datoteke iz sosednje mape? Odprite dostop z /add-dir. Ne vidi datoteke v podmapi? Claudeu neposredno podajte njeno pot. Datoteke ni v meniju @? Vzrok je povezan z .gitignore — spremenite respectGitignore. Ena datoteka je zaklenjena? V settings.json poiščite omejitev deny.

Tukaj je kratek načrt, ki mu lahko sledite po vrsti.

  1. Preverite delovno mapo: Claudea prosite, naj z ukazom pwd prikaže trenutni imenik, nato pa ga primerjajte z lokacijo projekta.
  2. Če se mapi razlikujeta, Claudea znova zaženite iz prave mape (cd project, nato claude) ali se tja premaknite z ukazom /cd.
  3. Potrebujete datoteke iz sosednje mape? Dodajte jo z /add-dir ali ob zagonu Claudea uporabite zastavico --add-dir.
  4. Datoteke iz podmape ni v kontekstu? Claudeu neposredno podajte njeno pot ali ga prosite, naj datoteko prebere.
  5. Datoteke ni v meniju @? Vzrok je .gitignore. Nastavite respectGitignore na false ali počistite potrditveno polje v /config.
  6. Določena datoteka je zaklenjena? Preverite pravili deny in blockReadsOutsideWorkingDirectories v settings.json.

V devetih primerih od desetih prvi korak reši vse: Claude je bil zagnan iz napačne mape. Dostop do datotek je temelj, vendar projektov ne zgradi namesto vas. V vodniku o Second Brain v Claude Code sem podrobno opisal, kako zgraditi kontekst okoli Claudea, da bo ohranil pregled nad celotnim projektom in ne bo izgubil rdeče niti.

Viri

Dodatna gradiva o uporabi orodij poiščite v dokumentaciji Ailoot.

Več podrobnosti

Vprašanja in odgovori: Claude Code ne vidi projektnih datotek: zakaj in kaj storiti v 2026

Zakaj se zagon iz domače mape razlikuje od zagona v sosednjem projektu?

Projekt pod domačim imenikom je podrejen, zato ga začetek v domači mapi ne postavi zunaj delovnega drevesa; da širši kontekst od želenega. Sosed delovne mape je zunaj nje. Pred diagnozo manjkajočega dostopa primerjajte polne poti.

Ali dostop do podmape pomeni, da so njene datoteke že v kontekstu?

Ne. Agentu podajte pot datoteke in zahtevajte branje. Če je branje zavrnjeno, preglejte veljavna dovoljenja; datoteka, ki manjka v izbirniku, in zavrnjeno branje sta različni težavi.

Vsi članki