Claude Code sieht Projektdateien nicht: Warum und was du 2026 tun kannst
MarkdownWarum Claude Code Projektdateien nicht finden kann: Es wurde aus dem falschen Ordner gestartet, die Datei liegt in einem Unterordner oder sie steht in .gitignore. So gewährst du Zugriff mit add-dir, cd und den Einstellungen.
Vollständigen Artikel lesen
Ein vertrautes Bild: Du bittest Claude Code, eine Datei zu bearbeiten, und es antwortet, dass es diese Datei nicht gibt. Oder es ändert stillschweigend etwas völlig anderes als das, was du gemeint hast. Du öffnest den Ordner – die Datei ist da, genau dort, wo sie sein sollte. Aber Claude scheint sie nicht zu bemerken.
Fast immer gibt es dafür einen Grund, und nichts ist kaputt. Claude sieht nicht die Dateien auf dem ganzen Computer. Es kann nur auf den Ordner zugreifen, von dem aus du es gestartet hast. Startest du in einem benachbarten Ordner oder unterhalb des Projektstamms, können benötigte Dateien außerhalb des Arbeitsbaums liegen. Ein Start in einem übergeordneten Ordner wie Home gibt dagegen einen breiteren Bereich frei; er macht ein darunterliegendes Projekt nicht unerreichbar. Ich erkläre Schritt für Schritt, warum das so funktioniert und wie du Claude Zugriff auf die benötigten Dateien gibst. Ich zitiere Befehle und Einstellungen direkt aus der offiziellen Claude-Code-Dokumentation, die ich Anfang September 2026 geprüft habe.
Zusätzliche Materialien zur Konfiguration von Tools findest du in der Ailoot-Dokumentation.
Warum kann Claude Code manche Projektdateien nicht sehen?
Das Wichtigste
Claude Code liest Dateien nicht vom gesamten Laufwerk, sondern nur aus dem Ordner, in dem du es gestartet hast. Dieser Ordner wird Arbeitsverzeichnis genannt. Claude kann alles darin und in seinen Unterordnern sehen und lesen, ohne nachzufragen. Alles außerhalb davon – in einem benachbarten Ordner, eine Ebene höher oder auf einem anderen Laufwerk – ist gesperrt, bis du selbst Zugriff gewährst. Der häufigste Grund dafür, dass eine Datei „nicht sichtbar“ ist, ist also einfach: Du hast Claude aus einem anderen Ordner gestartet. Prüfe zuerst genau, von wo aus du es geöffnet hast.
Standardmäßig arbeitet Claude Code mit einem Ordner: dem Ordner, in dem du den Befehl claude eingegeben und die Sitzung gestartet hast. Die Dokumentation sagt das ausdrücklich.
Standardmäßig hat Claude Zugriff auf Dateien in dem Ordner, von dem aus du es gestartet hast.
Dieser Ordner ist sein Arbeitsverzeichnis. Darin liest Claude jede Datei ohne zusätzliche Rückfragen: einen Prompt bearbeiten, Code durchsuchen, eine bestimmte Datei lesen – all das funktioniert sofort. Alles außerhalb dieses Ordners ist jedoch standardmäßig gesperrt. Ein benachbarter Ordner, ein Ordner eine Ebene höher, ein anderes Laufwerk – Claude sieht dort erst nach deiner Freigabe nach.
Ein abweichender Arbeitsordner kann diesen Eindruck erklären. Liegt dein Projekt unter /Users/you/my-shop, Claude startet aber in /Users/you/other-project, ist die index.html des benachbarten Projekts außerhalb des Arbeitsbaums. Ein Start in /Users/you ist anders: my-shop liegt darunter und wird nicht allein wegen des Home-Starts unerreichbar. Der Kontext ist lediglich breiter als beabsichtigt. Zugang zu einem Ordner bedeutet außerdem nicht, dass schon jede Datei gelesen wurde.
Als Nächstes zeige ich dir, wie du das prüfst und behebst: Zuerst stellen wir fest, aus welchem Ordner Claude gestartet wurde. Dann geben wir ihm auf verschiedene Weisen Zugriff auf die benötigten Dateien – von einer einmaligen Anweisung bis zu einer dauerhaften Einstellung.
Wie kannst du prüfen, aus welchem Ordner Claude Code gestartet wurde?
Das Wichtigste
Frag Claude, in welchem Ordner es sich befindet, oder lass es mit dem Befehl pwd das aktuelle Verzeichnis anzeigen – dadurch wird nur der Standort geprüft und nichts geändert. Vergleiche die angezeigte Position mit dem tatsächlichen Speicherort deines Projekts. Unterscheiden sich die Pfade, ist das der Grund: Claude wurde aus dem falschen Ordner gestartet. Noch zuverlässiger ist es, die Sitzung zu schließen und Claude direkt aus dem Projektordner neu zu starten: Wechsle im Terminal dorthin und gib dort claude ein.
Bevor du etwas behebst, vergewissere dich, dass tatsächlich der Ordner das Problem ist. Das lässt sich leicht prüfen. Bitte Claude im Chat, das aktuelle Verzeichnis anzuzeigen. Es führt dann pwd aus. Das ist sicher: Der Befehl zeigt nur den Pfad an und verändert nichts.
pwd
Die Antwort zeigt das tatsächliche Arbeitsverzeichnis. Vergleiche vollständige Pfade: /Users/you/other-project ist ein Nachbar von /Users/you/my-shop, /Users/you dagegen dessen übergeordneter Ordner. Im Nachbarfall liegt my-shop außerhalb des Arbeitsbaums. Im übergeordneten Fall gehört es dazu, ist aber nicht als spezifischer Projektstamm ausgewählt.
Am saubersten behebst du diese Abweichung, indem du Claude direkt aus dem Projektordner startest. Schließe die aktuelle Sitzung, wechsle im Terminal in den richtigen Ordner und starte Claude von dort:
# Ersetze den Beispielpfad durch deinen tatsächlichen Projektstamm.
cd /Users/you/my-shop
claude
Jetzt ist my-shop der Arbeitsordner, und alle Projektdateien sind sichtbar. Dieselbe Regel gilt in einem Editor wie VS Code: Öffne den Ordner, der das Projekt enthält. Nicht den Ordner eine Ebene darüber und nicht das gesamte Laufwerk. Der geöffnete Ordner bestimmt, was Claude als sein Arbeitsverzeichnis betrachtet.
Wenn ein Neustart umständlich ist – zum Beispiel, weil du Claude in dieser Sitzung bereits Kontext gegeben hast und ihn nicht verlieren möchtest –, kannst du Ordner auch während der Sitzung hinzufügen oder wechseln. Darum geht es in den nächsten beiden Abschnitten.
Wie kannst du Claude Code eine Datei in einem benachbarten Ordner zeigen?
Das Wichtigste
Füge den benötigten Ordner während der Sitzung mit dem Befehl /add-dir direkt im Chat hinzu, ohne die Sitzung neu zu starten: Gib /add-dir und den Ordnerpfad ein. Danach sind die darin enthaltenen Dateien ebenso verfügbar wie die Dateien im Hauptordner. Wenn Claude den Zugriff gleich beim Start erhalten soll, füge dem Befehl claude das Flag --add-dir mit einem Pfad hinzu. Soll ein Ordner jedes Mal automatisch geöffnet werden, trage ihn unter dem Schlüssel additionalDirectories in den Einstellungen ein. In allen drei Fällen lassen sich die Dateien im hinzugefügten Ordner ohne separate Bestätigung lesen.
Manchmal liegt ein Projekt nicht in nur einem Ordner. Der Code befindet sich an einem Ort, Bilder oder Texte in einem benachbarten Ordner und gemeinsam genutzte Komponenten irgendwo in der Nähe. Claude der Reihe nach in jedem Ordner neu zu starten, ist umständlich. Gib ihm lieber Zugriff auf den benötigten Ordner und behalte den Hauptordner als Arbeitsverzeichnis bei.
Am einfachsten geht das direkt in der aktiven Sitzung mit diesem Befehl:
/add-dir ../assets
Gib /add-dir und den Ordnerpfad ein. Claude erhält dann sofort Zugriff auf die darin enthaltenen Dateien, genauso wie auf die Dateien im Hauptordner. Es fragt nicht erneut nach einer Berechtigung: Für den hinzugefügten Ordner gelten dieselben Regeln wie für das Arbeitsverzeichnis.
Für Dateien in zusätzlichen Verzeichnissen gelten dieselben Zugriffsregeln wie für das Hauptarbeitsverzeichnis: Sie werden ohne Nachfrage gelesen.
Wenn du schon im Voraus weißt, dass du mit mehreren Ordnern arbeiten wirst, gib Claude den Zugriff gleich beim Start – mit demselben Pfad, aber einem Flag:
claude --add-dir ../assets
Wenn du in einem Projekt ständig denselben benachbarten Ordner brauchst, musst du ihn nicht jedes Mal manuell hinzufügen. Die Einstellungsdatei settings.json enthält den Schlüssel additionalDirectories. Trage dort die Pfade ein, und sie werden bei jedem Start von Claude automatisch geöffnet:
{
"permissions": {
"additionalDirectories": ["../assets", "../shared"]
}
}
Ein Hinweis zu Windows: Einen Netzwerkordner mit einem Pfad wie \\server\shared kannst du nicht hinzufügen – Claude akzeptiert solche Pfade nicht. Binde ihn als separates Laufwerk mit einem Laufwerksbuchstaben ein und übergib diesen Buchstaben dann mit --add-dir. Bei gewöhnlichen lokalen Ordnern gibt es dieses Problem nicht.
Was ist, wenn das Hinzufügen eines benachbarten Ordners nicht genügt und du stattdessen ganz in einen anderen Ordner wechseln musst? Dafür gibt es einen eigenen Befehl, um den es im nächsten Abschnitt geht.
Wie kannst du Claude Code während einer Sitzung in einen anderen Ordner wechseln lassen?
Das Wichtigste
Der Befehl /cd ändert den Hauptarbeitsordner, ohne die Sitzung zu schließen: Gib /cd und einen Pfad ein, und Claude wechselt dorthin, während der Gesprächsverlauf erhalten bleibt. Dabei übernimmt es die Anweisungsdatei CLAUDE.md aus dem neuen Ordner und fragt dich, sofern du dort noch nicht gearbeitet hast, ob du ihm vertraust. Der Unterschied zu /add-dir: /add-dir öffnet einen benachbarten Ordner zusätzlich zum Hauptordner, während /cd das gesamte Arbeitsverzeichnis an einen neuen Ort verlegt. Der Befehl ist ab Version 2.1.169 verfügbar.
Manchmal reicht es nicht, einen benachbarten Ordner hinzuzufügen. Du musst den Hauptordner ändern und zu einem anderen Projekt wechseln, ohne den bisherigen Kontext zu verlieren. Verwende dafür den Befehl /cd:
/cd ../another-project
Danach behandelt Claude den neuen Ordner als sein Arbeitsverzeichnis. Der gesamte Gesprächsverlauf bleibt erhalten, aber der Ort, den Claude als Bezugspunkt für Dateien verwendet, wechselt zum neuen Speicherort. Claude übernimmt auch die Anweisungsdatei CLAUDE.md aus dem neuen Ordner, sofern dort eine vorhanden ist – es passt sich also den Regeln des neuen Projekts an.
Zum Thema Vertrauen solltest du wissen: Wenn du in diesem Ordner noch nicht gearbeitet hast, fragt Claude beim Wechsel, ob du ihm vertraust. Das ist eine Schutzmaßnahme: Eine Anweisungsdatei in einem unbekannten Ordner könnte beliebige Inhalte haben. Deshalb prüft Claude zuerst, ob es dein Projekt ist. Bestätige das, und fahre dann fort.
Der Unterschied zwischen den beiden Befehlen ist einfach. /add-dir behält den Hauptordner als Arbeitsverzeichnis bei und öffnet zusätzlich einen benachbarten Ordner – nützlich, wenn Teile eines Projekts verstreut liegen. /cd verlegt das gesamte Arbeitsverzeichnis an einen neuen Ort – nützlich, wenn du zu einem anderen Projekt wechselst. Der Befehl /cd wurde in Version 2.1.169 eingeführt. Falls er fehlt, aktualisiere Claude Code. Eine separate Anleitung erklärt, wie du Claude Code aktualisierst.
Dass Claude Code Dateien sieht, ist nur die Grundlage. Stabile Ergebnisse entstehen nicht allein durch Dateizugriff. Entscheidend ist, was in den Dateien steht und wie du den Kontext rund um das Projekt aufbaust.
Warum kann Claude Code eine Datei in einem Unterordner nicht sehen?
Das Wichtigste
Unterordner funktionieren anders als benachbarte Ordner: Claude kann auf sie zugreifen, aber ihr Inhalt gelangt nicht sofort in seinen Kontext. Claude lädt Anweisungsdateien und Inhalte aus Unterordnern bei Bedarf, wenn es dort nachsieht. Beim Start lädt es sie nicht. Daher kann eine Datei in einem tief verschachtelten Unterordner „unsichtbar“ sein, bis du Claude direkt ihren Pfad nennst. Die Lösung ist einfach: Gib Claude den genauen Dateipfad oder bitte es, die Datei zuerst zu lesen. Dann wird sie sichtbar.
Hier dürfen zwei unterschiedliche Situationen nicht verwechselt werden. Ein benachbarter Ordner (außerhalb des Projekts) ist vollständig gesperrt, bis du ihn hinzufügst. Bei einem Unterordner innerhalb des Projekts ist es anders: Claude kann darauf zugreifen, behält seinen Inhalt aber nicht von Anfang an im Blick.
So funktioniert es: Beim Start lädt Claude die Inhalte aus den obersten Ebenen des Projekts. Dateien aus Unterordnern lädt es bei Bedarf, wenn es dort etwas liest. Die Dokumentation beschreibt dieses Verhalten für Anweisungsdateien; dieselbe Logik gilt allgemein für den Kontext.
Claude findet Dateien in Unterordnern des Arbeitsverzeichnisses. Statt sie beim Start zu laden, übernimmt es sie beim Lesen von Dateien in diesen Unterordnern.
Einfach gesagt: Die Datei in einem tief verschachtelten Unterordner ist nicht verschwunden und vollständig zugänglich. Claude hat sie nur noch nicht im Gedächtnis, weil es dort noch nicht nachgesehen hat. Das erklärt, warum es den Eindruck machen kann, Claude „könne die Datei nicht sehen“, obwohl sie vorhanden und zugänglich ist.
Das lässt sich mit einer einzigen Zeile beheben. Gib Claude direkt den Dateipfad – zum Beispiel src/components/header.jsx – oder bitte es einfach, die Datei zuerst zu lesen. Sobald es dort nachsieht, gelangt die Datei in den Kontext, und du kannst wie gewohnt damit arbeiten. Einstellungen musst du nicht ändern.
Wo verschwinden Dateien aus dem @-Menü, und was hat .gitignore damit zu tun?
Das Wichtigste
Wenn du das Symbol @ eingibst, zeigt Claude Code eine Liste der Dateien an, aus denen du wählen kannst. Standardmäßig blendet diese Liste alles aus, was in .gitignore aufgeführt ist – Dienstordner, Umgebungsdateien und Build-Ausgaben. Eine Datei kann also genau dort liegen, wo sie hingehört, und trotzdem im @-Menü fehlen. Die Einstellung respectGitignore steuert dieses Verhalten: Sie ist standardmäßig aktiviert und blendet diese Dateien aus. Setze sie auf false, damit im Menü auch Dateien aus .gitignore angezeigt werden. Du kannst den Pfad zu einer solchen Datei jederzeit manuell eingeben.
Ein weiterer häufiger Grund für den Eindruck, Claude habe eine Datei „verloren“, ist die Dateiauswahl. Wenn du @ eingibst, erscheint eine Liste, aus der du bequem eine Datei auswählen kannst, ohne den vollständigen Pfad einzugeben. Doch die Liste zeigt nicht alles.
Standardmäßig blendet das @-Menü Dateien aus, die in .gitignore aufgeführt sind. Diese Datei legt fest, was nicht zum gemeinsam genutzten Repository hinzugefügt werden soll: Dienstordner, Dateien mit Passwörtern und Umgebungsvariablen sowie fertige Build-Ausgaben. Der Gedanke dahinter ist nachvollziehbar – normalerweise musst du diese Dateien nicht manuell bearbeiten, und sie würden die Liste nur überladen. Manchmal brauchst du aber doch eine davon, und sie erscheint nicht im Menü.
Die Einstellung respectGitignore steuert dieses Verhalten. Sie ist standardmäßig aktiviert, sodass Dateien aus .gitignore nicht im Menü erscheinen. Wenn du sie sehen möchtest, setze den Wert auf false:
{
"respectGitignore": false
}
Du kannst das auch ohne Bearbeitung der Datei tun, indem du in Claude Code den Befehl /config verwendest. Die Option heißt dort „Respect .gitignore in file picker“. Deaktiviere sie, und die ausgeblendeten Dateien erscheinen wieder im Menü.
Ein wichtiger Hinweis: respectGitignore gilt nur für das @-Menü und hat nichts mit dem Dateizugriff zu tun. Auch wenn eine Datei in der Liste ausgeblendet ist, kannst du ihren Pfad jederzeit manuell eingeben, und Claude liest sie. Das Menü ist eine Komfortfunktion; es legt die Zugriffsgrenze nicht fest.
Was solltest du tun, wenn Claude Code eine bestimmte Datei nicht lesen kann?
Das Wichtigste
Manchmal ist der Ordner korrekt, aber Claude weigert sich trotzdem, eine bestimmte Datei zu lesen. Meist liegt der Grund in einer Einschränkung der Einstellungen. In der Datei settings.json können deny-Regeln stehen, die das Lesen bestimmter Dateien blockieren, meist .env-Dateien mit Schlüsseln und Passwörtern. Außerdem gibt es eine Einstellung, die das Lesen aller Dateien außerhalb der Arbeitsordner blockiert. Prüfe beide Stellen in settings.json. Und denk daran: Die Einschränkung für .env ist eine Schutzmaßnahme, die standardmäßig gilt. Du solltest sie nicht ohne guten Grund entfernen.
Wenn der Ordner sicher stimmt und der Zugriff grundsätzlich freigegeben ist, Claude aber trotzdem eine bestimmte Datei nicht lesen will, ist der Zugriff wahrscheinlich eingeschränkt. Einschränkungen stehen in der Einstellungsdatei settings.json und es gibt zwei Arten.
Die erste Art sind gezielte Einschränkungen für bestimmte Dateien. In den Einstellungen stehen sie als deny-Regeln. Am häufigsten betreffen sie die Datei .env, in der Schlüssel und Passwörter gespeichert sind:
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)"
]
}
}
Eine solche Regel hindert Claude daran, die angegebenen Dateien zu lesen – und das ist beabsichtigt. Schlüssel und Passwörter sollten nicht in einem Gespräch mit dem Modell landen. Deshalb ist .env standardmäßig gesperrt. Wenn Claude .env oder eine ähnliche Datei mit Geheimnissen nicht lesen will, ist das so vorgesehen. Du solltest diese Einschränkung nicht ohne triftigen Grund entfernen.
Die zweite Art ist eine allgemeine Einschränkung für alles außerhalb der Arbeitsordner. Dafür ist die Einstellung blockReadsOutsideWorkingDirectories zuständig. Ist sie aktiviert, weigert sich Claude, Dateien außerhalb des Arbeitsverzeichnisses zu lesen, selbst wenn du versuchst, sie direkt zu öffnen. Steht sie auf true und brauchst du eine externe Datei, füge entweder ihren Ordner mit /add-dir hinzu oder deaktiviere die Einschränkung:
{
"permissions": {
"blockReadsOutsideWorkingDirectories": false
}
}
Diese Einstellung wurde in Version 2.1.257 eingeführt. Wenn du alles andere versucht hast und die Datei weiterhin gesperrt ist, solltest du sowohl deny als auch blockReadsOutsideWorkingDirectories prüfen.
Wo solltest du anfangen, wenn Claude Code keine Dateien sieht?
Das Wichtigste
Prüfe zuerst den Ordner: Bitte Claude, mit pwd das aktuelle Verzeichnis anzuzeigen, und vergleiche es mit dem Speicherort des Projekts. Stimmen die Angaben nicht überein, starte Claude aus dem Projektordner neu oder wechsle mit /cd dorthin. Benötigst du Dateien aus einem benachbarten Ordner? Öffne ihn mit /add-dir. Kann Claude eine Datei in einem Unterordner nicht sehen? Gib ihm den Dateipfad direkt. Fehlt eine Datei im @-Menü? Das hängt mit .gitignore zusammen – setze respectGitignore auf false. Ist eine Datei gesperrt? Suche in settings.json nach einer deny-Regel.
Hier ist ein kurzer Plan, den du Schritt für Schritt durchgehen kannst.
- Prüfe den Arbeitsordner: Bitte Claude, mit
pwddas aktuelle Verzeichnis anzuzeigen, und vergleiche es mit dem Speicherort des Projekts. - Unterscheiden sich die Ordner, starte Claude aus dem richtigen Ordner neu (
cd project, dannclaude) oder wechsle mit dem Befehl/cddorthin. - Benötigst du Dateien aus einem benachbarten Ordner? Füge ihn mit
/add-diroder beim Starten von Claude mit dem Flag--add-dirhinzu. - Eine Datei aus einem Unterordner ist nicht im Kontext? Gib Claude ihren Pfad direkt oder bitte es, die Datei zu lesen.
- Fehlt eine Datei im
@-Menü? Das liegt an.gitignore. SetzerespectGitignoreauffalseoder deaktiviere das Kästchen in/config. - Ist eine bestimmte Datei gesperrt? Prüfe die Regeln
denyundblockReadsOutsideWorkingDirectoriesinsettings.json.
In neun von zehn Fällen löst der erste Schritt alles: Claude wurde aus dem falschen Ordner gestartet. Dateizugriff ist die Grundlage, aber er baut dein Projekt nicht für dich auf. In meinem Leitfaden zum Second Brain in Claude Code habe ich ausführlich beschrieben, wie du den Kontext rund um Claude aufbaust, damit es das gesamte Projekt im Blick behält und nicht den Faden verliert.
Quellen
- Claude Code - Berechtigungen konfigurieren, offizielle Dokumentation - Standardarbeitsverzeichnis, --add-dir und /add-dir, /cd, additionalDirectories, Zugriff ohne Rückfragen, Netzwerkpfade
- Claude Code - Claudes Gedächtnis verwalten, offizielle Dokumentation - Dateien aus Unterordnern bei Bedarf laden, CLAUDE.md, Importe
- Claude Code - Einstellungsreferenz, offizielle Dokumentation - respectGitignore und das @-Menü, blockReadsOutsideWorkingDirectories und Version 2.1.257
- Claude Code - Einstellungen, offizielle Dokumentation - deny-Regeln und das Blockieren des Lesens von .env
Weitere Materialien zur Arbeit mit Tools findest du in der Ailoot-Dokumentation.
Weitere Details
Fragen und Antworten
Warum unterscheidet sich der Start in Home vom Start in einem Nachbarprojekt?
Ein Projekt unter deinem Home-Verzeichnis ist ein Unterordner. Der Home-Start legt es nicht außerhalb des Arbeitsbaums, sondern wählt einen breiteren Kontext. Ein Nachbar des Arbeitsordners liegt dagegen außerhalb. Vergleiche vollständige Pfade vor einer Zugriffsdiagnose.
Bedeutet Zugriff auf einen Unterordner, dass seine Dateien schon im Kontext sind?
Nein. Gib dem Agenten den Dateipfad und bitte ihn, die Datei zu lesen. Wird der Lesezugriff verweigert, prüfe die geltenden Berechtigungen. Ein fehlender Eintrag im Auswahlmenü und eine verweigerte Dateilesung sind verschiedene Probleme.