Tinklaraštis

Claude Code nemato projekto failų: kodėl ir ką daryti 2026 m.

Markdown

Kodėl Claude Code neranda projekto failų: jis paleistas iš netinkamo aplanko, failas yra poaplankyje arba nurodytas .gitignore. Kaip suteikti prieigą naudojant add-dir, cd ir settings.

Skaityti visą straipsnį

Pažįstama situacija: paprašote Claude Code pataisyti failą, o jis atsako, kad tokio failo nėra. Arba tyliai pakeičia visai ką kita, nei turėjote omenyje. Atidarote aplanką — failas yra ten, kur ir turi būti. Tačiau atrodo, kad Claude jo nepastebi.

Beveik visada tam yra viena priežastis, ir niekas nėra sugedę. Claude nemato failų visame kompiuteryje. Jis gali pasiekti tik aplanką, iš kurio jį paleidote. Paleidus gretimame aplanke ar žemiau projekto šaknies, reikalingi failai gali likti už darbinio medžio ribų. Paleidus iš aukštesnio aplanko, pavyzdžiui, namų, sritis tampa platesnė; tai nepadaro jame esančio projekto nepasiekiamo. Žingsnis po žingsnio paaiškinsiu, kodėl taip veikia ir kaip suteikti Claude prieigą prie reikiamų failų. Cituoju komandas ir nustatymus tiesiai iš oficialios Claude Code dokumentacijos, kurią patikrinau 2026 m. rugsėjo pradžioje.

Daugiau medžiagos apie įrankių konfigūravimą rasite Ailoot dokumentacijoje.

Kodėl Claude Code nemato kai kurių projekto failų?

Svarbiausia išvada

Claude Code skaito failus ne iš viso disko, o tik iš aplanko, iš kurio jį paleidote. Šis aplankas vadinamas darbiniu katalogu. Claude gali matyti ir skaityti viską, kas yra jame ir jo poaplankiuose, nieko neklausdamas. Visa, kas yra už jo ribų — gretimame aplanke, vienu lygiu aukščiau arba kitame diske, — neprieinama, kol patys nesuteiksite prieigos. Taigi dažniausia priežastis, kodėl failas „nematomas“, paprasta: Claude paleidote iš kito aplanko. Pirmiausia tiksliai patikrinkite, iš kur jį atidarėte.

Pagal numatytuosius nustatymus Claude Code dirba su vienu aplanku — tuo, kuriame įvedėte komandą claude ir paleidote seansą. Dokumentacijoje tai nurodyta tiesiogiai.

Pagal numatytuosius nustatymus Claude turi prieigą prie failų aplanke, iš kurio jį paleidote.

— Claude Code Docs, Configure permissions, oficiali dokumentacija

Šis aplankas yra jo darbinis katalogas. Jame Claude gali iš karto skaityti bet kurį failą be papildomų klausimų: redaguoti užklausą, ieškoti kode, skaityti konkretų failą — viskas veikia iškart. Tačiau visa, kas yra už šio aplanko ribų, pagal numatytuosius nustatymus neprieinama. Claude neieškos gretimame aplanke, aplanke vienu lygiu aukščiau ar kitame diske, kol to neleisite.

Čia gali būti svarbus darbinio aplanko neatitikimas. Tarkime, projektas yra /Users/you/my-shop, bet Claude paleidote iš gretimo /Users/you/other-project. Failas index.html aplanke my-shop yra už to darbo medžio ribų. Paleidimas iš /Users/you yra kitas atvejis: my-shop yra jo poaplankis ir vien paleidimas iš namų nedaro jo nepasiekiamo, nors pasirinktas kontekstas platesnis nei norėjote. Prieiga prie aplanko taip pat nereiškia, kad kiekvienas failas jau perskaitytas.

Toliau parodysiu, kaip tai patikrinti ir ištaisyti: pirmiausia nustatysime, iš kurio aplanko paleistas Claude, tada įvairiais būdais suteiksime jam prieigą prie reikiamų failų — nuo vienkartinės instrukcijos iki nuolatinio nustatymo.

Kaip patikrinti, iš kurio aplanko paleistas Claude Code?

Svarbiausia išvada

Paklauskite Claude, kuriame aplanke jis yra, arba paprašykite parodyti dabartinį katalogą komanda pwd — ji tik patikrina ir nieko nekeičia. Palyginkite parodytą vietą su tikrąja projekto vieta. Jei keliai skiriasi, štai priežastis: Claude paleistas iš netinkamo aplanko. Dar patikimesnis sprendimas — uždaryti seansą ir iš naujo paleisti Claude tiesiai iš projekto aplanko: terminale pereikite į jį ir ten įveskite claude.

Prieš ką nors taisydami įsitikinkite, kad problema tikrai susijusi su aplanku. Tai lengva patikrinti. Pokalbyje paprašykite Claude parodyti katalogą, kuriame jis šiuo metu yra — jis paleis pwd, o tai saugu: ši komanda tik parodo kelią ir nieko neliečia.

pwd

Atsakyme parodytas tikrasis darbo katalogas. Palyginkite jį su visu projekto keliu: /Users/you/other-project yra gretimas /Users/you/my-shop, o /Users/you — jo aukštesnis aplankas. Gretimo aplanko atveju my-shop lieka už darbo medžio; aukštesnis aplankas jį apima, bet nepasirenka to konkretaus projekto kaip šaknies.

Tvarkingiausias būdas išspręsti šį neatitikimą — paleisti Claude tiesiai iš projekto aplanko. Uždarykite dabartinį seansą, terminale pereikite į reikiamą aplanką ir paleiskite Claude iš ten:

# Šį pavyzdinį kelią pakeiskite tikrąja projekto šaknimi.
cd /Users/you/my-shop
claude

Dabar darbinis aplankas bus my-shop, ir visi projekto failai bus matomi. Ta pati taisyklė galioja ir tokioje redaktorėje kaip VS Code: atidarykite aplanką, kuriame yra projektas. Ne aplanką vienu lygiu aukščiau ir ne visą diską. Atidarytas aplankas nulemia, ką Claude laiko savo darbiniu katalogu.

Jei iš naujo paleisti nepatogu — pavyzdžiui, šiame seanse jau suteikėte Claude konteksto ir nenorite jo prarasti, — galite pridėti arba pakeisti aplankus seanso metu. Apie tai rašoma kituose dviejuose skyriuose.

Kaip parodyti Claude Code failą gretimame aplanke?

Svarbiausia išvada

Nerestartuodami seanso, pridėkite reikiamą aplanką tiesiog pokalbyje komanda /add-dir: įveskite /add-dir ir aplanko kelią, o jo failai bus pasiekiami tokiomis pačiomis sąlygomis kaip pagrindinio aplanko failai. Jei norite suteikti prieigą vos paleidus Claude, prie komandos claude pridėkite vėliavėlę --add-dir ir kelią. O jei norite, kad aplankas būtų atidaromas automatiškai kiekvieną kartą, nustatymuose įtraukite jį prie rakto additionalDirectories. Visais trimis atvejais pridėto aplanko failus galima skaityti be atskirų patvirtinimų.

Kartais projektas laikomas ne viename aplanke. Kodas yra vienoje vietoje, vaizdai ar tekstai — gretimame aplanke, o bendrinami komponentai — kažkur netoliese. Kaskart iš naujo paleisti Claude kitame aplanke nepatogu. Geriau suteikti jam prieigą prie reikiamo aplanko, paliekant pagrindinį aplanką darbiniu katalogu.

Paprasčiausia tai padaryti tiesiai aktyviame seanse šia komanda:

/add-dir ../assets

Įveskite /add-dir ir aplanko kelią, ir Claude iškart galės pasiekti jo failus tokiomis pačiomis sąlygomis kaip pagrindinio aplanko failus. Jis daugiau neprašys leidimo: pridėtam aplankui taikomos tos pačios taisyklės kaip darbiniam katalogui.

Papildomuose kataloguose esantiems failams taikomos tos pačios prieigos taisyklės kaip ir pagrindiniame darbiniame kataloge: jie skaitomi nepateikiant užklausos.

— Claude Code Docs, Configure permissions, oficiali dokumentacija

Jei iš anksto žinote, kad dirbsite su keliais aplankais, atverkite prieigą vos paleidę Claude — naudokite tą patį kelią, bet pridėkite vėliavėlę:

claude --add-dir ../assets

O jei projekte nuolat reikia to paties gretimo aplanko, jo nereikia kiekvieną kartą pridėti rankiniu būdu. Nustatymų faile settings.json yra raktas additionalDirectories. Įrašykite ten kelius, ir jie bus atidaromi automatiškai kiekvieną kartą paleidus Claude:

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

Vienas niuansas dėl „Windows“: negalite pridėti tinklo aplanko naudodami tokį kelią kaip \\server\shared — Claude tokių kelių nepriima. Prijunkite jį kaip atskirą diską su disko raide ir tada nurodykite tą raidę naudodami --add-dir. Įprastiems vietiniams aplankams tai negalioja.

O kas, jei gretimo aplanko pridėti nepakanka ir reikia persikelti į visiškai kitą aplanką? Tam skirtą komandą aptarsime toliau.

Kaip perkelti Claude Code į kitą aplanką seanso metu?

Svarbiausia išvada

Komanda /cd pakeičia pagrindinį darbinį aplanką neuždarydama seanso: įveskite /cd ir kelią, o Claude persikels ten, išsaugodamas pokalbio istoriją. Persikėlęs jis aptiks naujame aplanke esantį instrukcijų failą CLAUDE.md ir, jei ten dar nedirbote, paprašys patvirtinti, kad tuo aplanku pasitikite. Skirtumas nuo /add-dir tas, kad /add-dir atveria gretimą aplanką šalia pagrindinio, o /cd perkelia visą darbinį katalogą į naują vietą. Ši komanda prieinama nuo 2.1.169 versijos.

Kartais gretimo aplanko pridėti nepakanka — reikia pakeisti pagrindinį aplanką ir pereiti prie kito projekto neprarandant sukaupto konteksto. Naudokite komandą /cd:

/cd ../another-project

Po to Claude naują aplanką laikys savo darbiniu katalogu. Išsaugosite visą pokalbio istoriją, bet pasikeis vieta, kuria Claude remiasi ieškodamas failų. Claude taip pat aptiks naujame aplanke esantį instrukcijų failą CLAUDE.md, jei toks yra, — taip prisitaikys prie naujo projekto taisyklių.

Apie pasitikėjimą verta žinoti štai ką: jei šiame aplanke dar nedirbote, persikeldamas Claude paklaus, ar juo pasitikite. Tai apsaugos priemonė: instrukcijų faile, esančiame nepažįstamame aplanke, gali būti bet kas, todėl Claude pirmiausia patikrina, ar tai jūsų projektas. Patvirtinkite ir tęskite.

Skirtumas tarp šių dviejų komandų paprastas. /add-dir palieka pagrindinį aplanką darbiniu katalogu ir papildomai atveria gretimą aplanką — tai naudinga, kai projekto dalys išdėstytos skirtingose vietose. /cd perkelia visą darbinį katalogą į naują vietą — tai naudinga pereinant prie kito projekto. Komanda /cd įdiegta 2.1.169 versijoje, tad jei jos nėra, atnaujinkite Claude Code. Atskirą vadovą apie Claude Code atnaujinimą rasite čia.

Tai, kad Claude Code mato failus, tėra pagrindas. Stabilūs rezultatai priklauso ne vien nuo prieigos prie failų. Juos lemia tai, kas tuose failuose yra ir kaip kuriate projekto kontekstą.

Kodėl Claude Code nemato failo poaplankyje?

Svarbiausia išvada

Poaplankiai veikia kitaip nei gretimi aplankai: Claude gali juos pasiekti, tačiau jų turinys iškart nepatenka į jo kontekstą. Instrukcijų failus ir poaplankių turinį Claude įkelia pagal poreikį, kai juose ko nors ieško. Paleidimo metu jis jų neįkelia. Todėl giliai įdėtame poaplankyje esantis failas gali būti „nematomas“, kol tiesiogiai nepateiksite Claude jo kelio. Sprendimas paprastas: nurodykite Claude tikslų failo kelią arba paprašykite pirmiausia perskaityti failą — tada jis taps matomas.

Svarbu nepainioti dviejų skirtingų situacijų. Gretimas aplankas (esantis už projekto ribų) visiškai nepasiekiamas, kol jo nepridėsite. Projekto viduje esantis poaplankis — visai kas kita: Claude jį pasiekia, bet iš pradžių jo turinio įsidėmėjęs neturi.

Štai kaip tai veikia. Paleistas Claude įkelia tai, kas yra aukščiausiuose projekto lygiuose. Failus iš poaplankių jis įkelia pagal poreikį, kai ten nueina ką nors perskaityti. Dokumentacijoje toks elgesys aprašytas kalbant apie instrukcijų failus, o ta pati logika taikoma ir kontekstui apskritai.

Claude aptinka failus darbiniame kataloge esančiuose poaplankiuose. Užuot įkėlęs juos paleidimo metu, jis įtraukia juos skaitydamas failus tuose poaplankiuose.

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

Paprastai tariant, giliai įdėtame poaplankyje esantis failas niekur nedingo ir yra visiškai pasiekiamas. Claude jo dar tiesiog neįsidėmėjo, nes ten neieškojo — todėl gali atrodyti, kad Claude „nemato“ failo, nors jis yra ir yra pasiekiamas.

Tai išspręsite viena eilute. Tiesiogiai nurodykite Claude failo kelią, pavyzdžiui, src/components/header.jsx, arba tiesiog paprašykite jo pirmiausia perskaityti failą. Kai tik Claude ten pasižiūrės, failas pateks į kontekstą ir galėsite su juo dirbti kaip įprasta. Nustatymų keisti nereikia.

Kodėl failų nėra meniu @ ir kuo čia dėtas .gitignore?

Svarbiausia išvada

Įvedus simbolį @, Claude Code parodo failų, iš kurių galima pasirinkti, sąrašą. Pagal numatytuosius nustatymus jame paslepiama viskas, kas nurodyta .gitignore — tarnybiniai aplankai, aplinkos failai ir kūrimo išvesties failai. Tad failas gali būti savo vietoje, bet vis tiek nerodomas meniu @. Šį veikimą valdo nustatymas respectGitignore: jis įjungtas pagal numatytuosius nustatymus ir slepia tokius failus. Nustatykite jį į false, ir meniu taip pat rodys .gitignore nurodytus failus. Tokio failo kelią visada galite įvesti rankiniu būdu.

Kita dažna priežastis, dėl kurios atrodo, kad Claude „pameta“ failą, yra failų parinkiklis. Įvedus @ pasirodo sąrašas, iš kurio patogu pasirinkti failą neįrašant viso jo kelio. Tačiau sąraše rodomi ne visi failai.

Pagal numatytuosius nustatymus meniu @ slepia .gitignore nurodytus failus. Šis failas nurodo, ko nereikėtų įtraukti į bendrinamą saugyklą: tarnybinių aplankų, failų su slaptažodžiais ir aplinkos nustatymais bei užbaigto kūrimo išvesties. Logika aiški — paprastai tokių failų nereikia tvarkyti rankiniu būdu, todėl jie tik užgriozdintų sąrašą. Tačiau kartais prireikia vieno iš jų, o meniu jo nėra.

Šį veikimą valdo nustatymas respectGitignore. Jis įjungtas pagal numatytuosius nustatymus, todėl .gitignore nurodyti failai meniu nerodomi. Jei norite juos matyti, pakeiskite nustatymą į false:

{
  "respectGitignore": false
}

Tą patį galite padaryti ir neredaguodami failo, naudodami Claude Code komandą /config. Perjungiklis vadinasi „Respect .gitignore in file picker“. Panaikinkite jo žymėjimą, ir paslėpti failai vėl bus rodomi meniu.

Svarbu: respectGitignore taikomas tik meniu @ ir neturi nieko bendra su prieiga prie failų. Net jei failas paslėptas sąraše, jo kelią visada galite įvesti rankiniu būdu, ir Claude jį perskaitys. Meniu tėra patogumo funkcija; jis nenustato prieigos ribų.

Ką daryti, jei Claude Code negali perskaityti konkretaus failo?

Svarbiausia išvada

Kartais aplankas parinktas teisingai, tačiau Claude vis tiek atsisako skaityti vieną konkretų failą. Dažniausiai taip yra dėl nustatymuose taikomo apribojimo. Faile settings.json gali būti deny taisyklių, blokuojančių konkrečių failų skaitymą; dažniausiai tai būna .env failai su raktais ir slaptažodžiais. Taip pat yra nustatymas, kuris visiškai blokuoja visko, kas yra už darbinių aplankų ribų, skaitymą. Patikrinkite abi vietas faile settings.json. Nepamirškite, kad .env apribojimas yra numatytoji apsaugos priemonė — neturėtumėte jo pašalinti be rimtos priežasties.

Jei aplankas tikrai tinkamas ir prieiga leidžiama, tačiau Claude vis tiek neskaito vieno konkretaus failo, greičiausiai jam taikomas apribojimas. Apribojimai aprašyti nustatymų faile settings.json; jie būna dviejų rūšių.

Pirmoji rūšis — konkretūs apribojimai konkretiems failams. Nustatymuose tai yra deny taisyklės, dažniausiai taikomos .env failui, kuriame saugomi raktai ir slaptažodžiai:

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

Tokia taisyklė neleidžia Claude skaityti nurodytų failų, ir tai daroma tyčia. Raktai ir slaptažodžiai neturėtų patekti į pokalbį su modeliu, todėl .env pagal numatytuosius nustatymus yra užrakintas. Jei matote, kad Claude neskaito .env ar panašaus failo su slaptais duomenimis, taip ir numatyta — neturėtumėte pašalinti šio apribojimo neturėdami rimtos priežasties.

Antroji rūšis — bendras apribojimas viskam, kas yra už darbinių aplankų ribų. Jį valdo nustatymas blockReadsOutsideWorkingDirectories. Jį įjungus, Claude atsisako skaityti bet kokį failą už darbinio katalogo ribų, net jei bandote jį atidaryti tiesiogiai. Jei nustatymas yra true ir jums reikia išorinio failo, pridėkite jo aplanką naudodami /add-dir arba išjunkite apribojimą:

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

Šis nustatymas įdiegtas 2.1.257 versijoje. Jei jau viską išbandėte, bet failas vis dar nepasiekiamas, verta patikrinti ir deny, ir blockReadsOutsideWorkingDirectories.

Nuo ko pradėti, jei Claude Code nemato failų?

Svarbiausia išvada

Pradėkite nuo aplanko patikros: paprašykite Claude naudojant pwd parodyti dabartinį katalogą ir palyginkite jį su projekto vieta. Jei jie nesutampa, paleiskite Claude iš naujo projekto aplanke arba pereikite ten naudodami /cd. Reikia failų iš gretimo aplanko? Atverkite jį naudodami /add-dir. Nemato failo poaplankyje? Tiesiogiai nurodykite Claude jo kelią. Failo nėra meniu @? Tai susiję su .gitignore — pakeiskite respectGitignore. Vienas failas užrakintas? Ieškokite deny apribojimo faile settings.json.

Štai trumpas planas, kurį galite vykdyti nuo pradžios iki pabaigos.

  1. Patikrinkite darbinį aplanką: paprašykite Claude naudojant pwd parodyti dabartinį katalogą ir palyginkite jį su projekto vieta.
  2. Jei aplankai nesutampa, paleiskite Claude iš naujo tinkamame aplanke (cd project, tada claude) arba pereikite ten komanda /cd.
  3. Reikia failų iš gretimo aplanko? Pridėkite jį naudodami /add-dir arba vėliavėlę --add-dir paleisdami Claude.
  4. Failas iš poaplankio nepateko į kontekstą? Tiesiogiai nurodykite Claude jo kelią arba paprašykite perskaityti failą.
  5. Failo nėra meniu @? Dėl to kaltas .gitignore. Nustatykite respectGitignore į false arba panaikinkite žymėjimą langelyje /config.
  6. Vienas konkretus failas užrakintas? Patikrinkite taisykles deny ir blockReadsOutsideWorkingDirectories faile settings.json.

Devyniais atvejais iš dešimties pirmasis žingsnis išsprendžia viską: Claude buvo paleistas iš netinkamo aplanko. Prieiga prie failų yra pagrindas, bet ji pati projekto nesukurs. Išsamiai aprašiau, kaip kurti Claude kontekstą, kad jis aprėptų visą projektą ir nepamestų minties, vadove apie Antrąjį protą Claude Code.

Šaltiniai

Daugiau medžiagos apie darbą su įrankiais rasite Ailoot dokumentacijoje.

Išsamiau

Klausimai ir atsakymai

Kuo paleidimas iš namų aplanko skiriasi nuo paleidimo gretimame projekte?

Projektas po namų katalogu yra jo poaplankis, todėl paleidimas iš namų nepalieka jo už to darbo medžio ribų, o suteikia platesnį kontekstą nei norėta. Darbinio aplanko gretimas projektas yra už jo ribų. Prieš diagnozuodami trūkstamą prieigą palyginkite visus kelius.

Ar prieiga prie poaplankio reiškia, kad jo failai jau kontekste?

Ne. Pateikite agentui failo kelią ir paprašykite jį perskaityti. Jei skaityti draudžiama, peržiūrėkite taikomus leidimus; pasirinkimo meniu nematomas failas ir atmestas skaitymas yra skirtingos problemos.

Visi straipsniai