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

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

Знакомая картина: просишь 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 вечера - инструменты, метод, первый проект
Старт 22–24 сентября  ·  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 вечера - инструменты, метод, первый проект
Старт 22–24 сентября  ·  2 000 ₽
Записаться →

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

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

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

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

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

Что бесплатно в Microsoft Copilot в 2026 и за что придётся платить

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

12 мин

Кому принадлежит код, написанный ИИ, и можно ли продать его заказчику в 2026

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

17 мин

Сколько стоит ИИ-агент для бизнеса в 2026: из чего складывается цена

Под «сколько стоит ИИ-агент» прячутся три разных вопроса: подписка на готовый сервис, оплата API по расходу и разработка под ключ. Разбираю цены по каждому пути, где растёт счёт и сколько это в рублях.

15 мин

Как обновить Claude Code до последней версии в 2026

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

11 мин

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