Знакомая картина: просишь Claude Code поправить файл, а он отвечает, что такого файла нет. Или молча правит совсем не то, что ты имел в виду. Ты открываешь папку - файл на месте, вот он, лежит. А Claude его будто не замечает.
Почти всегда причина одна, и поломки в ней нет. Claude видит файлы не всего компьютера. Ему доступна только та папка, из которой ты его запустил. Стоит запустить его этажом выше или ниже нужной папки - и половина проекта оказывается вне поля зрения. Разберу по шагам, почему так устроено и как открыть Claude доступ к нужным файлам. Команды и настройки беру дословно из официальной документации Claude Code, проверял на начало сентября 2026.
В Telegram-канале - что нового в вайб-кодинге: инструменты, находки, ошибки. Подпишись.
Почему Claude Code не видит часть файлов проекта?
Claude Code устроен так, что по умолчанию работает с одной папкой - той, где ты набрал команду claude и запустил сессию. В документации это сказано прямо.
По умолчанию у Claude есть доступ к файлам в той папке, где ты его запустил.
Эта папка - его рабочая область. Внутри неё Claude читает любой файл без лишних вопросов: правки промпта, поиск по коду, чтение конкретного файла - всё работает сразу. А вот всё, что лежит за пределами этой папки, для него по умолчанию закрыто. Соседняя папка, папка уровнем выше, другой диск - Claude туда не заглядывает, пока ты сам не разрешишь.
Отсюда и берётся эффект «не вижу файл». Ты держишь проект, скажем, в папке my-shop, а Claude запустил из домашней папки, которая на уровень выше. Файл index.html внутри my-shop есть, но для Claude он в стороне, и правит он пустоту или отвечает, что файла нет. Проект не сломан - просто дверь открыта не в ту комнату.
Дальше разложу, как это проверить и починить: сначала убедимся, из какой папки запущен Claude, потом откроем ему нужные файлы разными способами - от разовой подсказки до постоянной настройки.
Как проверить, из какой папки запущен Claude Code?
Прежде чем что-то чинить, стоит убедиться, что дело именно в папке. Проверка простая. Прямо в чате попроси Claude показать, в какой он сейчас директории - он выполнит pwd, и это безопасно: команда только показывает путь и ничего не трогает.
pwdВ ответ придёт путь вроде /Users/artem или C:\Users\artem на Windows. Теперь сравни его с тем, где на самом деле лежит твой проект. Если проект в /Users/artem/my-shop, а Claude сидит в /Users/artem, то он на этаж выше нужной папки - и файлы проекта для него в стороне.
Самый чистый способ убрать это расхождение - запустить Claude прямо из папки проекта. Закрой текущую сессию, зайди в нужную папку в терминале и запусти Claude уже оттуда:
cd my-shop
claudeТеперь рабочей папкой станет my-shop, и все файлы проекта окажутся внутри поля зрения. В редакторе вроде VS Code то же правило: открывай именно ту папку, где лежит проект. Не папку уровнем выше и не весь диск целиком. От того, какая папка открыта, зависит, что Claude будет считать своей рабочей областью.
Если запускать заново неудобно - например, ты уже задал Claude контекст в этой сессии и не хочешь его терять, - папку можно добавить или сменить на ходу, про это следующие два раздела.
Как показать Claude Code файл из соседней папки?
Бывает, что проект держится не в одной папке. Код в одной, картинки или тексты в соседней, общие куски - ещё где-то рядом. Перезапускать Claude из каждой по очереди неудобно, правильнее открыть ему доступ к нужной папке, оставив основную рабочей.
Проще всего сделать это прямо в идущей сессии командой:
/add-dir ../assetsНаберёшь /add-dir и путь к папке - и её файлы сразу станут доступны Claude наравне с файлами основной папки. Разрешение он больше не спросит: добавленная папка работает по тем же правилам, что и рабочая.
Файлы в дополнительных папках подчиняются тем же правилам доступа, что и основная рабочая папка: они читаются без запроса.
Если знаешь заранее, что будешь работать с несколькими папками, открой доступ сразу при запуске - тем же путём, но флагом:
claude --add-dir ../assetsА когда одна и та же соседняя папка нужна в проекте постоянно, прописывать её руками каждый раз незачем. В файле настроек settings.json есть ключ additionalDirectories - перечисли там пути, и они будут открываться сами при каждом запуске:
{
"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 видит файлы - это только фундамент. Стабильный результат даёт не сам доступ к файлам. Его даёт то, что в этих файлах лежит и как ты выстроил контекст вокруг проекта. На практикуме за три вечера собираешь всю связку: ИИ-клон, Второй мозг и контекст-инжиниринг - три кита, без которых ИИ галлюцинирует даже с открытым доступом ко всем файлам.
Почему Claude Code не видит файл из подпапки?
Тут важно не спутать две разные ситуации. Соседняя папка (та, что снаружи проекта) закрыта совсем, пока ты её не добавишь. А вот подпапка внутри проекта - другое дело: доступ к ней есть, просто Claude не держит её содержимое в голове с самого старта.
Работает это так. При запуске Claude загружает то, что лежит на верхних уровнях проекта. А файлы из подпапок он подтягивает по требованию - когда сам туда заходит, чтобы что-то прочитать. В документации это описано для файлов инструкций, и та же логика работает для контекста в целом.
Claude обнаруживает файлы в подпапках рабочей директории. Вместо загрузки при запуске они подключаются, когда Claude читает файлы в этих подпапках.
По-человечески: файл в глубокой подпапке никуда не пропал и вполне доступен, просто Claude о нём ещё не вспомнил, потому что не заглядывал туда - отсюда и ощущение, что он «не видит» файл, хотя тот на месте и открыт.
Лечится это в одну строчку. Назови Claude путь к файлу прямо - например, src/components/header.jsx - или просто попроси его сначала прочитать этот файл. Как только он туда заглянет, файл окажется в контексте, и дальше можно с ним работать как обычно. Никаких настроек тут менять не надо.
Куда пропадают файлы из меню @ и при чём тут .gitignore?
Ещё один частый повод подумать, что Claude «потерял» файл - меню выбора файлов. Когда набираешь @, всплывает список, из которого удобно ткнуть в нужный файл, не набирая путь целиком. Но список этот показывает не всё.
По умолчанию меню @ прячет файлы, которые перечислены в .gitignore. Это тот файл, где отмечают, что не нужно складывать в общий репозиторий: служебные папки, файлы с паролями и настройками окружения, готовую сборку. Логика понятная - обычно с этими файлами работать руками не нужно, поэтому в списке они только мешают. Но иногда именно такой файл тебе и нужен, а в меню его нет.
Отвечает за это настройка respectGitignore. По умолчанию она включена, поэтому файлы из .gitignore в меню не показываются, и если хочешь их видеть - переключи её в false:
{
"respectGitignore": false
}То же самое можно сделать без правки файла - через команду /config внутри Claude Code, там этот переключатель называется «Respect .gitignore in file picker». Снимаешь галочку - и скрытые файлы возвращаются в меню.
Важная оговорка: respectGitignore касается только меню @, а доступ к файлу тут ни при чём. Даже когда файл спрятан из списка, ты всегда можешь назвать путь к нему руками, и Claude его прочитает. Меню - это удобство, границу доступа оно не ставит.
Что делать, если Claude Code не может прочитать конкретный файл?
Если папка точно верная, доступ открыт, а один определённый файл Claude всё равно не читает - скорее всего, на него стоит запрет, а запреты живут в файле настроек settings.json и бывают двух видов.
Первый - точечный запрет на конкретные файлы. В настройках это правила deny, и чаще всего под них попадает файл .env, где хранятся ключи и пароли:
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)"
]
}
}Такое правило закрывает Claude чтение указанных файлов - и это сделано намеренно. Ключи и пароли не должны попадать в переписку с моделью, поэтому .env по умолчанию под замком. Если ты видишь, что Claude не читает именно .env или похожий файл с секретами, - так и задумано, и снимать этот запрет без веской причины не стоит.
Второй вид - общий запрет на всё, что вне рабочих папок. За него отвечает настройка blockReadsOutsideWorkingDirectories. Когда она включена, Claude отказывается читать любой файл за пределами рабочей области, даже если ты пытаешься открыть его напрямую. Если она стоит true, а тебе нужен файл снаружи - либо добавь его папку через /add-dir, либо выключи запрет:
{
"permissions": {
"blockReadsOutsideWorkingDirectories": false
}
}Эта настройка появилась в версии 2.1.257. Проверить оба места - deny и blockReadsOutsideWorkingDirectories - стоит, когда всё остальное уже перебрал, а файл всё равно закрыт.
С чего начать, если Claude Code не видит файлы?
Собираю всё в короткий план, по которому удобно идти сверху вниз.
- Проверь рабочую папку: попроси Claude показать текущую директорию через
pwdи сравни с тем, где лежит проект. - Если папки разные - запусти Claude заново из нужной (
cd проект, потомclaude) или перейди в неё командой/cd. - Нужны файлы из соседней папки - добавь её через
/add-dirили флагом--add-dirпри запуске. - Файл из подпапки не в контексте - назови Claude путь к нему прямо или попроси прочитать этот файл.
- Файла нет в меню
@- это.gitignore. ПереключиrespectGitignoreвfalseили сними галочку в/config. - Один конкретный файл под замком - проверь правила
denyиblockReadsOutsideWorkingDirectoriesвsettings.json.
В девяти случаях из десяти всё решается на первом шаге: Claude был запущен не из той папки. Доступ к файлам - это фундамент, но сам по себе он проект за тебя не соберёт. О том, как выстроить вокруг Claude контекст, чтобы он держал в голове весь проект и не терял нить, я подробно разбирал в материале про второй мозг в Claude Code.
Источники
- Claude Code - Configure permissions, официальная документация - рабочая папка по умолчанию, --add-dir и /add-dir, /cd, additionalDirectories, доступ без запроса, сетевые пути
- Claude Code - Manage Claude's memory, официальная документация - загрузка файлов подпапок по требованию, CLAUDE.md, импорты
- Claude Code - Settings reference, официальная документация - respectGitignore и меню @, blockReadsOutsideWorkingDirectories и версия 2.1.257
- Claude Code - Settings, официальная документация - правила deny и запрет чтения .env
Полная схема вайб-кодинга за три вечера: ИИ-клон + Второй мозг + Контекст-инжиниринг. Записи эфиров в личном кабинете, доступ 30 дней.
Новые материалы - дайджестом, без спама
Гайды выходят регулярно. Подпишись, чтобы не пропускать: пришлю подборку в Telegram или на email. Раз в неделю или каждый день - выбираешь сам.

