Blog

Claude Code nevidí soubory projektu: proč a co dělat v roce 2026

Markdown

Proč Claude Code nemůže najít soubory projektu: byl spuštěn z nesprávné složky, soubor je v podsložce nebo je v .gitignore. Jak udělit přístup pomocí add-dir, cd a nastavení.

Přečíst celý článek

Známá situace: požádáte Claude Code, aby opravil soubor, a on odpoví, že takový soubor neexistuje. Nebo potichu změní něco úplně jiného, než jste měli na mysli. Otevřete složku — soubor tam je, přesně tam, kde má být. Claude si ho ale jako by nevšímá.

Téměř vždy je důvod jediný a nic není rozbité. Claude nevidí soubory v celém počítači. Má přístup pouze ke složce, ze které jste ho spustili. Spuštění v sousední složce nebo pod kořenem projektu může potřebné soubory umístit mimo pracovní strom. Spuštění z rodiče, například domovské složky, naopak rozsah rozšiřuje; nečiní podřízený projekt nedostupným. Krok za krokem vysvětlím, proč to tak funguje a jak Claudovi zpřístupnit potřebné soubory. Příkazy a nastavení cituji přímo z oficiální dokumentace Claude Code, kterou jsem kontroloval na začátku září 2026.

Další materiály o konfiguraci nástrojů najdete v dokumentaci Ailoot.

Proč Claude Code nevidí některé soubory projektu?

Hlavní poznatek

Claude Code nečte soubory z celého disku, ale pouze ze složky, ve které jste ho spustili. Této složce se říká pracovní adresář. Claude v ní a jejích podsložkách vidí a čte vše bez dotazů. Všechno mimo ni — v sousední složce, o úroveň výš nebo na jiném disku — je nedostupné, dokud mu přístup sami neudělíte. Nejčastějším důvodem, proč soubor „není vidět“, je tedy prostý fakt: Claude jste spustili z jiné složky. Nejprve přesně zkontrolujte, odkud jste ho otevřeli.

Claude Code ve výchozím nastavení pracuje s jednou složkou: tou, ve které jste zadali příkaz claude a spustili relaci. Dokumentace to říká přímo.

Ve výchozím nastavení má Claude přístup k souborům ve složce, ze které jste ho spustili.

— Claude Code Docs, Configure permissions, oficiální dokumentace

Tato složka je jeho pracovní adresář. Uvnitř Claude čte libovolný soubor bez dalších dotazů: úprava zadání, hledání v kódu, čtení konkrétního souboru — všechno funguje hned. Všechno mimo tuto složku je ale ve výchozím nastavení nedostupné. Sousední složka, složka o úroveň výš, jiný disk — Claude se tam nepodívá, dokud mu to nepovolíte.

Nesoulad pracovní složky může být podstatný. Je-li projekt /Users/you/my-shop, ale Claude běží v sousedním /Users/you/other-project, leží index.html v my-shop mimo pracovní strom. Spuštění z /Users/you je jiné: my-shop je potomek a není nedostupný jen kvůli spuštění z domova, vybraný kontext je ale širší, než jste zamýšleli. Přístup do složky také neznamená, že byly všechny soubory již přečteny.

Dále ukážu, jak to zkontrolovat a napravit: nejprve zjistíme, ze které složky byl Claude spuštěn, a pak mu různými způsoby zpřístupníme potřebné soubory — od jednorázového pokynu po trvalé nastavení.

Jak zjistíte, ze které složky byl Claude Code spuštěn?

Hlavní poznatek

Zeptejte se Claude, v jaké složce se nachází, nebo ho požádejte, aby příkazem pwd zobrazil aktuální adresář — pouze ho zkontroluje a nic nezmění. Porovnejte zobrazenou cestu se skutečným umístěním projektu. Pokud se cesty liší, znáte důvod: Claude byl spuštěn z nesprávné složky. Ještě spolehlivější řešení je relaci zavřít a spustit Claude znovu přímo ze složky projektu: v terminálu do ní přejděte a zadejte claude.

Než začnete cokoli opravovat, ujistěte se, že problém opravdu spočívá ve složce. Ověření je snadné. V chatu požádejte Claude, aby zobrazil adresář, ve kterém se právě nachází — spustí příkaz pwd, který je bezpečný: pouze zobrazí cestu a ničeho se nedotkne.

pwd

Odpověď ukáže skutečný pracovní adresář. Porovnejte jej s úplnou cestou projektu: /Users/you/other-project je sourozenec /Users/you/my-shop, zatímco /Users/you je jeho rodič. Sousední případ umisťuje my-shop mimo pracovní strom; rodičovský ho zahrnuje, ale nevybírá konkrétní projekt jako kořen.

Nejčistší způsob, jak tento nesoulad vyřešit, je spustit Claude přímo ze složky projektu. Zavřete aktuální relaci, v terminálu přejděte do správné složky a odtud spusťte Claude:

# Ukázkovou cestu nahraďte skutečným kořenem projektu.
cd /Users/you/my-shop
claude

Nyní bude pracovní složkou my-shop a všechny soubory projektu budou na dohled. Stejné pravidlo platí v editoru, jako je VS Code: otevřete složku obsahující projekt. Ne složku o úroveň výš ani celý disk. Složka, kterou otevřete, určuje, co Claude považuje za svůj pracovní adresář.

Pokud je opětovné spuštění nepohodlné — například jste už v této relaci poskytli Claude kontext a nechcete o něj přijít — můžete složky přidat nebo přepnout za běhu. Tomu se věnují následující dvě části.

Jak Claude Code zpřístupníte soubor v sousední složce?

Hlavní poznatek

Aniž byste relaci restartovali, přidejte potřebnou složku příkazem /add-dir přímo v chatu: zadejte /add-dir a cestu ke složce; její soubory pak budou dostupné stejně jako soubory v hlavní složce. Chcete-li přístup otevřít hned při spuštění Claude, přidejte do příkazu claude příznak --add-dir s cestou. A pokud chcete složku otevírat automaticky pokaždé, přidejte ji do nastavení pod klíč additionalDirectories. Ve všech třech případech lze soubory v přidané složce číst bez samostatného potvrzení.

Někdy projekt není uložený jen v jedné složce. Kód je na jednom místě, obrázky nebo texty v sousední složce a sdílené komponenty někde poblíž. Opakovaně spouštět Claude pokaždé v jiné složce je nepohodlné. Lepší je zpřístupnit mu potřebnou složku a ponechat hlavní složku jako pracovní adresář.

Nejjednodušší je udělat to přímo v aktivní relaci příkazem:

/add-dir ../assets

Zadejte /add-dir a cestu ke složce; Claude okamžitě získá přístup k jejím souborům stejně jako k souborům v hlavní složce. Znovu o povolení žádat nebude: pro přidanou složku platí stejná pravidla jako pro pracovní adresář.

Pro soubory v dalších adresářích platí stejná pravidla přístupu jako pro hlavní pracovní adresář: čtou se bez výzvy.

— Claude Code Docs, Configure permissions, oficiální dokumentace

Pokud předem víte, že budete pracovat s více složkami, otevřete přístup hned při spuštění Claude — použijte stejnou cestu, ale s příznakem:

claude --add-dir ../assets

A pokud stejnou sousední složku v projektu potřebujete pořád, nemusíte ji pokaždé přidávat ručně. Soubor nastavení settings.json obsahuje klíč additionalDirectories. Uveďte tam cesty a automaticky se otevřou při každém spuštění Claude:

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

Jedna výjimka se týká Windows: síťovou složku nelze přidat pomocí cesty typu \\server\shared — Claude takové cesty nepřijímá. Připojte ji jako samostatný disk s písmenem jednotky a poté toto písmeno předejte pomocí --add-dir. U běžných místních složek tento problém nenastává.

Co když přidání sousední složky nestačí a potřebujete přejít do úplně jiné složky? K tomu slouží samostatný příkaz, kterému se budeme věnovat níže.

Jak během relace přepnete Claude Code do jiné složky?

Hlavní poznatek

Příkaz /cd změní hlavní pracovní složku bez ukončení relace: zadejte /cd a cestu a Claude se přesune, přičemž historie konverzace zůstane zachována. Během přesunu načte instrukční soubor CLAUDE.md z nové složky, a pokud jste tam dosud nepracovali, požádá vás o potvrzení, že jí důvěřujete. Rozdíl oproti /add-dir je v tom, že /add-dir zpřístupní sousední složku vedle hlavní, zatímco /cd přesune celý pracovní adresář na nové místo. Příkaz je dostupný od verze 2.1.169.

Někdy nestačí přidat sousední složku — potřebujete změnit hlavní složku a přejít do jiného projektu, aniž byste ztratili dosavadní kontext. Použijte příkaz /cd:

/cd ../another-project

Poté Claude považuje novou složku za svůj pracovní adresář. Celá historie konverzace zůstane zachována, ale místo, které Claude používá jako referenční bod pro soubory, se přesune. Claude také načte instrukční soubor CLAUDE.md z nové složky, pokud tam nějaký je — přizpůsobí se tak pravidlům nového projektu.

Je dobré vědět, jak je to s důvěrou: pokud jste v této složce dosud nepracovali, Claude se při přesunu zeptá, zda jí důvěřujete. Jde o bezpečnostní opatření: instrukční soubor v neznámé složce může obsahovat cokoli, takže Claude nejprve ověří, že jde o váš projekt. Potvrďte důvěru a pokračujte.

Rozdíl mezi oběma příkazy je jednoduchý. /add-dir ponechá hlavní složku jako pracovní adresář a zpřístupní vedle ní sousední složku — hodí se, když jsou části projektu roztroušené. /cd přesune celý pracovní adresář na nové místo — hodí se při přechodu do jiného projektu. Příkaz /cd byl představen ve verzi 2.1.169, takže pokud ho nemáte, aktualizujte Claude Code. Mám samostatný návod na aktualizaci Claude Code.

To, že Claude Code vidí soubory, je pouze základ. Stabilní výsledky nevycházejí jen z přístupu k souborům. Závisí na tom, co tyto soubory obsahují a jak kolem projektu budujete kontext.

Proč Claude Code nevidí soubor v podsložce?

Hlavní poznatek

Podsložky fungují jinak než sousední složky: Claude k nim má přístup, ale jejich obsah se do kontextu nedostane hned. Claude načítá instrukční soubory a obsah podsložek na vyžádání, když je začne prohledávat. Při spuštění je nenačítá. Soubor hluboko vnořený v podsložce proto může být „neviditelný“, dokud Claudovi přímo nepředáte jeho cestu. Řešení je jednoduché: uveďte přesnou cestu k souboru nebo Claude požádejte, aby ho nejprve přečetl — a soubor se objeví.

Je důležité nezaměňovat dvě různé situace. Sousední složka (mimo projekt) je zcela nedostupná, dokud ji nepřidáte. Podsložka uvnitř projektu je něco jiného: Claude k ní přístup má, ale její obsah nemá od začátku v kontextu.

Funguje to takto. Při spuštění Claude načte obsah z nejvyšších úrovní projektu. Soubory z podsložek načítá na vyžádání, když do nich přejde a něco si přečte. Dokumentace tento postup popisuje u instrukčních souborů; stejná logika platí obecně i pro kontext.

Claude vyhledává soubory v podsložkách pracovního adresáře. Namísto načtení při spuštění je načte, když čte soubory v těchto podsložkách.

— Claude Code Docs, Manage Claude's memory, oficiální dokumentace

Jednoduše řečeno: soubor v hluboko vnořené podsložce nezmizel a je plně dostupný. Claude si ho jen ještě nevybavil, protože se tam dosud nepodíval — proto může působit dojmem, že soubor „nevidí“, přestože tam je a má k němu přístup.

Oprava zabere jeden řádek. Přímo Claude zadejte cestu k souboru — například src/components/header.jsx — nebo ho jednoduše požádejte, aby si soubor nejprve přečetl. Jakmile se tam podívá, soubor se načte do kontextu a můžete s ním běžně pracovat. Není potřeba měnit žádné nastavení.

Kde soubory mizí z nabídky @ a co s tím má společného .gitignore?

Hlavní poznatek

Když zadáte symbol @, Claude Code zobrazí seznam souborů, z nichž můžete vybírat. Ve výchozím nastavení tento seznam skrývá vše, co je uvedeno v .gitignore — servisní složky, soubory prostředí, výstupy sestavení. Soubor tedy může být přesně tam, kde má být, a přesto se v nabídce @ neobjeví. Toto chování řídí nastavení respectGitignore: ve výchozím nastavení je zapnuté a tyto soubory skrývá. Nastavte ho na false a nabídka zobrazí také soubory uvedené v .gitignore. Cestu k takovému souboru můžete vždy zadat ručně.

Dalším častým důvodem, proč se může zdát, že Claude soubor „ztratil“, je výběr souboru. Když zadáte @, zobrazí se seznam a soubor lze snadno vybrat bez zadávání celé cesty. Seznam ale neukazuje všechno.

Ve výchozím nastavení nabídka @ skrývá soubory uvedené v .gitignore. Tento soubor určuje, co se nemá přidávat do sdíleného repozitáře: servisní složky, soubory s hesly a nastaveními prostředí a hotové výstupy sestavení. Důvod je jasný — s těmito soubory obvykle nemusíte pracovat ručně, takže by seznam jen zbytečně zahlcovaly. Někdy ale některý z nich potřebujete a v nabídce není.

Toto chování řídí nastavení respectGitignore. Ve výchozím nastavení je zapnuté, takže se soubory z .gitignore v nabídce nezobrazují. Chcete-li je zobrazit, přepněte ho na false:

{
  "respectGitignore": false
}

Totéž můžete udělat bez úpravy souboru pomocí příkazu /config přímo v Claude Code. Přepínač se tam jmenuje „Respektovat .gitignore ve výběru souborů“. Zrušte jeho zaškrtnutí a skryté soubory se vrátí do nabídky.

Jedna důležitá výjimka: respectGitignore se týká pouze nabídky @ a nijak nesouvisí s přístupem k souborům. I když je soubor v seznamu skrytý, vždy můžete ručně zadat jeho cestu a Claude si ho přečte. Nabídka je praktická funkce; neurčuje hranice přístupu.

Co dělat, když Claude Code nedokáže přečíst konkrétní soubor?

Hlavní poznatek

Někdy je složka správná, ale Claude přesto odmítá přečíst jeden konkrétní soubor. Důvodem bývá omezení v nastavení. Soubor settings.json může obsahovat pravidla deny, která blokují čtení určitých souborů, nejčastěji souborů .env s klíči a hesly. K dispozici je také nastavení, které zcela blokuje čtení čehokoli mimo pracovní složky. Zkontrolujte v settings.json obě možnosti. A pamatujte, že omezení pro .env je výchozí bezpečnostní opatření; bez dobrého důvodu byste ho neměli odstraňovat.

Pokud je složka určitě správná a přístup je povolený, ale Claude přesto odmítá přečíst jeden konkrétní soubor, nejspíš je jeho čtení omezené. Omezení se nastavují v souboru settings.json a jsou dvojího druhu.

První druh představují cílená omezení konkrétních souborů. V nastavení se jim říká pravidla deny a nejčastěji se vztahují na soubor .env, ve kterém jsou uložené klíče a hesla:

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

Takové pravidlo brání Claude číst určené soubory záměrně. Klíče a hesla by se neměly dostat do konverzace s modelem, proto je .env ve výchozím nastavení uzamčený. Pokud Claude odmítá číst .env nebo podobný soubor s tajnými údaji, je to záměrné a toto omezení byste neměli odstraňovat bez závažného důvodu.

Druhým druhem je obecné omezení pro všechno mimo pracovní složky. Řídí ho nastavení blockReadsOutsideWorkingDirectories. Když je zapnuté, Claude odmítne číst jakýkoli soubor mimo pracovní adresář, i když se ho pokusíte přímo otevřít. Pokud je nastaveno na true a potřebujete externí soubor, buď přidejte jeho složku pomocí /add-dir, nebo toto omezení vypněte:

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

Toto nastavení bylo představeno ve verzi 2.1.257. Pokud jste vyzkoušeli všechno ostatní, ale soubor je stále nedostupný, zkontrolujte deny i blockReadsOutsideWorkingDirectories.

Kde začít, když Claude Code nevidí soubory?

Hlavní poznatek

Nejprve zkontrolujte složku: požádejte Claude, aby pomocí pwd zobrazil aktuální adresář, a porovnejte ho s umístěním projektu. Pokud se neshodují, spusťte Claude znovu ze složky projektu nebo tam přejděte příkazem /cd. Potřebujete soubory ze sousední složky? Zpřístupněte ji pomocí /add-dir. Nevidíte soubor v podsložce? Zadejte Claude jeho cestu přímo. Chybí soubor v nabídce @? Souvisí to s .gitignore — přepněte respectGitignore. Je jeden soubor uzamčený? Zkontrolujte v settings.json omezení deny.

Tady je krátký plán, kterým můžete postupovat od začátku do konce.

  1. Zkontrolujte pracovní složku: požádejte Claude, aby pomocí pwd zobrazil aktuální adresář, a porovnejte ho s umístěním projektu.
  2. Pokud se složky liší, spusťte Claude znovu ze správné složky (cd project a potom claude) nebo tam přejděte příkazem /cd.
  3. Potřebujete soubory ze sousední složky? Přidejte ji pomocí /add-dir nebo při spuštění Claude použijte příznak --add-dir.
  4. Soubor z podsložky není v kontextu? Zadejte Claude jeho cestu přímo nebo ho požádejte, aby si soubor přečetl.
  5. Chybí soubor v nabídce @? Příčinou je .gitignore. Nastavte respectGitignore na false nebo zrušte zaškrtnutí políčka v /config.
  6. Je jeden konkrétní soubor uzamčený? Zkontrolujte v settings.json pravidla deny a blockReadsOutsideWorkingDirectories.

V devíti případech z deseti vyřeší vše už první krok: Claude byl spuštěn z nesprávné složky. Přístup k souborům je základ, ale projekt za vás nevybuduje. Podrobně jsem popsal, jak kolem Claude budovat kontext, aby měl stále na paměti celý projekt a neztratil nit, v návodu o Druhém mozku v Claude Code.

Zdroje

Další materiály o práci s nástroji najdete v dokumentaci Ailoot.

Další podrobnosti

Časté otázky

Proč se spuštění z domova liší od spuštění v sousedním projektu?

Projekt pod domovským adresářem je jeho potomkem, takže spuštění z domova jej nevyřazuje z pracovního stromu; dává širší kontext, než zamýšlíte. Sousední složka leží mimo něj. Před diagnózou chybějícího přístupu porovnejte úplné cesty.

Znamená přístup do podsložky, že jsou její soubory již v kontextu?

Ne. Dejte agentovi cestu k souboru a požádejte o čtení. Při odmítnutí prohlédněte platná oprávnění; chybějící položka v nabídce souborů a odmítnuté čtení jsou různé problémy.

Všechny články