Claude Code не видит файлы проекта: почему так и что делать в 2026

Опубликовано 06.09.2026Обновлено 03.10.202612 мин чтенияБазовый
Сфокусированный луч света выделяет лишь несколько файлов проекта; остальные тонут в глубокой тени.
Что узнаешь
  • Почему Claude Code видит одни файлы и в упор не замечает другие
  • Как за минуту проверить, из какой папки ты его запустил, и почему это главная причина
  • Как показать Claude файл из соседней папки, не перезапуская сессию
  • Почему файл из подпапки не в контексте и как его туда затянуть
  • Куда пропадают файлы из меню @ и при чём тут .gitignore
Базовый
84просмотров

Знакомая картина: просишь Claude Code поправить файл, а он отвечает, что такого файла нет. Или молча правит совсем не то, что ты имел в виду. Ты открываешь папку - файл на месте, вот он, лежит. А Claude его будто не замечает.

Почти всегда причина одна, и поломки в ней нет. Claude видит файлы не всего компьютера. Ему доступна только та папка, из которой ты его запустил. Стоит запустить его этажом выше или ниже нужной папки - и половина проекта оказывается вне поля зрения. Разберу по шагам, почему так устроено и как открыть Claude доступ к нужным файлам. Команды и настройки беру дословно из официальной документации Claude Code, проверял на начало сентября 2026.

В Telegram-канале - что нового в вайб-кодинге: инструменты, находки, ошибки. Подпишись.

Почему Claude Code не видит часть файлов проекта?

Claude Code устроен так, что по умолчанию работает с одной папкой - той, где ты набрал команду claude и запустил сессию. В документации это сказано прямо.

По умолчанию у Claude есть доступ к файлам в той папке, где ты его запустил.

- Claude Code Docs, Configure permissions, официальная документация

Эта папка - его рабочая область. Внутри неё Claude читает любой файл без лишних вопросов: правки промпта, поиск по коду, чтение конкретного файла - всё работает сразу. А вот всё, что лежит за пределами этой папки, для него по умолчанию закрыто. Соседняя папка, папка уровнем выше, другой диск - Claude туда не заглядывает, пока ты сам не разрешишь.

Отсюда и берётся эффект «не вижу файл». Ты держишь проект, скажем, в папке my-shop, а Claude запустил из домашней папки, которая на уровень выше. Файл index.html внутри my-shop есть, но для Claude он в стороне, и правит он пустоту или отвечает, что файла нет. Проект не сломан - просто дверь открыта не в ту комнату.

Дальше разложу, как это проверить и починить: сначала убедимся, из какой папки запущен Claude, потом откроем ему нужные файлы разными способами - от разовой подсказки до постоянной настройки.

Как проверить, из какой папки запущен Claude Code?

Прежде чем что-то чинить, стоит убедиться, что дело именно в папке. Проверка простая. Прямо в чате попроси Claude показать, в какой он сейчас директории - он выполнит pwd, и это безопасно: команда только показывает путь и ничего не трогает.

bash
pwd

В ответ придёт путь вроде /Users/artem или C:\Users\artem на Windows. Теперь сравни его с тем, где на самом деле лежит твой проект. Если проект в /Users/artem/my-shop, а Claude сидит в /Users/artem, то он на этаж выше нужной папки - и файлы проекта для него в стороне.

Самый чистый способ убрать это расхождение - запустить Claude прямо из папки проекта. Закрой текущую сессию, зайди в нужную папку в терминале и запусти Claude уже оттуда:

bash
cd my-shop
claude

Теперь рабочей папкой станет my-shop, и все файлы проекта окажутся внутри поля зрения. В редакторе вроде VS Code то же правило: открывай именно ту папку, где лежит проект. Не папку уровнем выше и не весь диск целиком. От того, какая папка открыта, зависит, что Claude будет считать своей рабочей областью.

Если запускать заново неудобно - например, ты уже задал Claude контекст в этой сессии и не хочешь его терять, - папку можно добавить или сменить на ходу, про это следующие два раздела.

Как показать Claude Code файл из соседней папки?

Бывает, что проект держится не в одной папке. Код в одной, картинки или тексты в соседней, общие куски - ещё где-то рядом. Перезапускать Claude из каждой по очереди неудобно, правильнее открыть ему доступ к нужной папке, оставив основную рабочей.

Проще всего сделать это прямо в идущей сессии командой:

/add-dir ../assets

Наберёшь /add-dir и путь к папке - и её файлы сразу станут доступны Claude наравне с файлами основной папки. Разрешение он больше не спросит: добавленная папка работает по тем же правилам, что и рабочая.

Файлы в дополнительных папках подчиняются тем же правилам доступа, что и основная рабочая папка: они читаются без запроса.

- Claude Code Docs, Configure permissions, официальная документация

Если знаешь заранее, что будешь работать с несколькими папками, открой доступ сразу при запуске - тем же путём, но флагом:

bash
claude --add-dir ../assets

А когда одна и та же соседняя папка нужна в проекте постоянно, прописывать её руками каждый раз незачем. В файле настроек settings.json есть ключ additionalDirectories - перечисли там пути, и они будут открываться сами при каждом запуске:

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

Одна оговорка про Windows. Сетевую папку по пути вида \\сервер\общая добавить не выйдет - Claude такие пути не берёт. Смонтируй её как отдельный диск с буквой и передай уже букву диска через --add-dir. С обычными локальными папками таких сложностей нет.

А если рядом добавить мало и надо целиком переехать в другую папку? Для этого есть отдельная команда, о ней ниже.

Как переключить Claude Code на другую папку прямо в сессии?

Иногда добавить папку рядом мало - надо вообще сменить основную и перейти на другой проект, не теряя набранного контекста. Для этого есть команда /cd:

/cd ../another-project

После неё Claude считает рабочей уже новую папку. Вся история разговора остаётся при тебе, но точкой отсчёта для файлов становится место, куда ты перешёл. Заодно Claude подхватит из новой папки файл инструкций CLAUDE.md, если он там лежит, - то есть подстроится под правила нового проекта.

Один момент про доверие. Если ты в этой папке раньше не работал, Claude при переезде спросит, доверяешь ли ты ей. Это защита: файл инструкций из чужой папки может содержать что угодно, поэтому Claude сначала уточняет, твой ли это проект. Подтверждаешь - и работаешь дальше.

Разница между двумя командами простая. /add-dir держит основную папку рабочей и открывает соседнюю в дополнение к ней - удобно, когда куски проекта разбросаны. /cd переносит рабочую область целиком в новое место - удобно, когда переключаешься на другой проект. Команда /cd появилась в версии 2.1.169, так что если её нет - обнови Claude Code, про обновление у меня есть отдельный разбор как обновить Claude Code.

Claude Code видит файлы - это только фундамент. Стабильный результат даёт не сам доступ к файлам. Его даёт то, что в этих файлах лежит и как ты выстроил контекст вокруг проекта. На практикуме за три вечера собираешь всю связку: ИИ-клон, Второй мозг и контекст-инжиниринг - три кита, без которых ИИ галлюцинирует даже с открытым доступом ко всем файлам.

Практикум по вайб-кодингу
+Твой второй мозг
3 вечера - инструменты, метод, первый проект
Старт 17–19 ноября  ·  2 000 ₽
Записаться →

Почему Claude Code не видит файл из подпапки?

Тут важно не спутать две разные ситуации. Соседняя папка (та, что снаружи проекта) закрыта совсем, пока ты её не добавишь. А вот подпапка внутри проекта - другое дело: доступ к ней есть, просто Claude не держит её содержимое в голове с самого старта.

Работает это так. При запуске Claude загружает то, что лежит на верхних уровнях проекта. А файлы из подпапок он подтягивает по требованию - когда сам туда заходит, чтобы что-то прочитать. В документации это описано для файлов инструкций, и та же логика работает для контекста в целом.

Claude обнаруживает файлы в подпапках рабочей директории. Вместо загрузки при запуске они подключаются, когда Claude читает файлы в этих подпапках.

- Claude Code Docs, Manage Claude's memory, официальная документация

По-человечески: файл в глубокой подпапке никуда не пропал и вполне доступен, просто Claude о нём ещё не вспомнил, потому что не заглядывал туда - отсюда и ощущение, что он «не видит» файл, хотя тот на месте и открыт.

Лечится это в одну строчку. Назови Claude путь к файлу прямо - например, src/components/header.jsx - или просто попроси его сначала прочитать этот файл. Как только он туда заглянет, файл окажется в контексте, и дальше можно с ним работать как обычно. Никаких настроек тут менять не надо.

Куда пропадают файлы из меню @ и при чём тут .gitignore?

Ещё один частый повод подумать, что Claude «потерял» файл - меню выбора файлов. Когда набираешь @, всплывает список, из которого удобно ткнуть в нужный файл, не набирая путь целиком. Но список этот показывает не всё.

По умолчанию меню @ прячет файлы, которые перечислены в .gitignore. Это тот файл, где отмечают, что не нужно складывать в общий репозиторий: служебные папки, файлы с паролями и настройками окружения, готовую сборку. Логика понятная - обычно с этими файлами работать руками не нужно, поэтому в списке они только мешают. Но иногда именно такой файл тебе и нужен, а в меню его нет.

Отвечает за это настройка respectGitignore. По умолчанию она включена, поэтому файлы из .gitignore в меню не показываются, и если хочешь их видеть - переключи её в false:

json
{
  "respectGitignore": false
}

То же самое можно сделать без правки файла - через команду /config внутри Claude Code, там этот переключатель называется «Respect .gitignore in file picker». Снимаешь галочку - и скрытые файлы возвращаются в меню.

Важная оговорка: respectGitignore касается только меню @, а доступ к файлу тут ни при чём. Даже когда файл спрятан из списка, ты всегда можешь назвать путь к нему руками, и Claude его прочитает. Меню - это удобство, границу доступа оно не ставит.

Что делать, если Claude Code не может прочитать конкретный файл?

Если папка точно верная, доступ открыт, а один определённый файл Claude всё равно не читает - скорее всего, на него стоит запрет, а запреты живут в файле настроек settings.json и бывают двух видов.

Первый - точечный запрет на конкретные файлы. В настройках это правила deny, и чаще всего под них попадает файл .env, где хранятся ключи и пароли:

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

Такое правило закрывает Claude чтение указанных файлов - и это сделано намеренно. Ключи и пароли не должны попадать в переписку с моделью, поэтому .env по умолчанию под замком. Если ты видишь, что Claude не читает именно .env или похожий файл с секретами, - так и задумано, и снимать этот запрет без веской причины не стоит.

Второй вид - общий запрет на всё, что вне рабочих папок. За него отвечает настройка blockReadsOutsideWorkingDirectories. Когда она включена, Claude отказывается читать любой файл за пределами рабочей области, даже если ты пытаешься открыть его напрямую. Если она стоит true, а тебе нужен файл снаружи - либо добавь его папку через /add-dir, либо выключи запрет:

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

Эта настройка появилась в версии 2.1.257. Проверить оба места - deny и blockReadsOutsideWorkingDirectories - стоит, когда всё остальное уже перебрал, а файл всё равно закрыт.

С чего начать, если Claude Code не видит файлы?

Собираю всё в короткий план, по которому удобно идти сверху вниз.

  1. Проверь рабочую папку: попроси Claude показать текущую директорию через pwd и сравни с тем, где лежит проект.
  2. Если папки разные - запусти Claude заново из нужной (cd проект, потом claude) или перейди в неё командой /cd.
  3. Нужны файлы из соседней папки - добавь её через /add-dir или флагом --add-dir при запуске.
  4. Файл из подпапки не в контексте - назови Claude путь к нему прямо или попроси прочитать этот файл.
  5. Файла нет в меню @ - это .gitignore. Переключи respectGitignore в false или сними галочку в /config.
  6. Один конкретный файл под замком - проверь правила deny и blockReadsOutsideWorkingDirectories в settings.json.

В девяти случаях из десяти всё решается на первом шаге: Claude был запущен не из той папки. Доступ к файлам - это фундамент, но сам по себе он проект за тебя не соберёт. О том, как выстроить вокруг Claude контекст, чтобы он держал в голове весь проект и не терял нить, я подробно разбирал в материале про второй мозг в Claude Code.

Источники

Полная схема вайб-кодинга за три вечера: ИИ-клон + Второй мозг + Контекст-инжиниринг. Записи эфиров в личном кабинете, доступ 30 дней.

Практикум по вайб-кодингу
+Твой второй мозг
3 вечера - инструменты, метод, первый проект
Старт 17–19 ноября  ·  2 000 ₽
Записаться →

Новые материалы - дайджестом, без спама

Гайды выходят регулярно. Подпишись, чтобы не пропускать: пришлю подборку в Telegram или на email. Раз в неделю или каждый день - выбираешь сам.

Была инструкция полезна?
Артемий Миллер
Автор
Артемий Миллер
Предприниматель и вайб-кодер

Артемий Миллер - предприниматель и вайб-кодер. Бывший программист, собирает продукты исключительно вместе с ИИ-агентами, без найма разработчиков.

Связанные инструкции

Как настроить Claude под себя, чтобы не объяснять всё заново

В каждом новом чате Claude тебя не помнит. Показываю четыре места, где это лечится, и даю промпт, которым он сам проведёт интервью и напишет текст для настроек.

23 мин

Как сделать анимированный сайт в Claude Code за вечер

Claude Code собирает рабочий сайт за час, но узнаётся он мгновенно - по шрифту, отступам и отсутствию движения. Показываю схему, которая это чинит, и объясняю, где анимации начинают вредить.

21 мин

Как превратить PDF и Word в текст для ИИ: MarkItDown от Microsoft

Бесплатная утилита Microsoft превращает документы в текст, который понимает нейросеть. Разбираю на своих замерах, где она выручает, а где тихо подсовывает пустой файл.

29 мин

Как загрузить файл в Claude, чтобы он его прочитал

Claude принимает файлы прямо в чате: PDF, таблицы, картинки, код. Разбираю все форматы и лимиты, чем файл в чате отличается от файла в проекте и почему большой файл падает раньше, чем ждёшь.

13 мин

Связанные термины

Термин

VS Code

Бесплатный редактор кода от Microsoft. Открываешь в нём папку проекта, ставишь расширение Claude Code или другого агента и видишь каждую правку. На его основе собран редактор Cursor.

Термин

Терминал

Окно, где компьютером управляют текстовыми командами, без кнопок и мышки. Через него работают Claude Code и другие ИИ-агенты: сами набирают команды, а ты читаешь, что они запускают, и разрешаешь.

Термин

Репозиторий

Папка проекта вместе с историей всех изменений: что, когда и кем поменяно, включая правки ИИ-агента. Копия лежит на GitHub, и к любой прошлой версии можно вернуться.

Термин

Галлюцинации

Ответ ИИ, который звучит уверенно и выглядит правдой, но выдуман: функция, которой нет в библиотеке, дата, цена, цитата или ссылка. Модель дописывает самое правдоподобное, даже когда данных у неё нет.

Термин

Промпт

Текст, которым ты ставишь задачу ИИ-модели или агенту: вопрос, просьба, инструкция в сообщении. Короткого промпта хватает, когда модель уже знает твой проект, правила и цель.

Термин

Вайб-кодинг

Способ строить продукты через диалог с ИИ-агентами: ты ставишь задачу словами, агент пишет код, ты проверяешь и итерируешь. Не «изучить программирование», а «получить результат руками агента».

Термин

Второй мозг

Папка business/ в проекте с базой знаний: аудитория, продукты, цели, экономика. Claude читает её перед каждой задачей и заземляет решения на реальный контекст бизнеса.

Термин

ИИ-клон

Цифровая проекция твоего мышления в виде папки ai-clone/: ценности, принципы, тон, правила, выученные через ошибки. Claude читает её перед текстами «от меня» - голос совпадает.

Термин

Контекст-инжиниринг

Дисциплина подготовки контекста для ИИ-агента: что он уже знает к моменту твоего промпта. 5 слоёв: ИИ-клон, бизнес, проект, зона задачи, сама задача.