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

> Разбираем, почему Claude Code не находит файлы проекта: запуск из другой папки, содержимое подпапок и правила .gitignore. Показываем, как проверить рабочую директорию и открыть доступ через /add-dir, /cd и настройки.

Source: https://ailoot.ai/blog/ru/claude-code-cant-see-project-files/
Canonical: https://ailoot.ai/blog/ru/claude-code-cant-see-project-files/
Language: ru
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-199
Revision: sha256-25f79878f48f3067998ca7bf8b10dce02432e7fd2ab7aadce6c1ba85fe008610


Просишь Claude Code изменить файл, а он сообщает, что такого файла нет, или редактирует не тот документ. Ты проверяешь папку — файл на месте, но Claude словно его не замечает.

Обычно здесь нет поломки: Claude не просматривает весь компьютер. По умолчанию ему доступна папка, из которой запущена сессия. Запуск в соседней папке или ниже корня проекта может оставить нужные файлы вне рабочей области. Запуск из родительской папки, например домашней, даёт более широкую область, а не делает вложенный проект недоступным. Ниже разберём, как это устроено и как предоставить доступ к нужным файлам. Команды и параметры приведены по официальной документации Claude Code; сведения актуальны на начало сентября 2026 года.

Дополнительные материалы по настройке инструментов доступны в [документации Ailoot](https://ailoot.ai/docs/).

<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="Руководства Ailoot">

[Руководства Ailoot](https://ailoot.ai/docs/)

</div>

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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Краткий вывод">

Краткий вывод

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

</div>

По умолчанию Claude Code использует папку, в которой вы запустили команду `claude`. Официальная документация прямо описывает это правило.

<figure>
<blockquote>
<p>По умолчанию Claude получает доступ к файлам в каталоге, из которого вы его запустили.</p>
</blockquote>
<figcaption>— Официальная документация Claude Code: настройка разрешений</figcaption>
</figure>

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

Несоответствие рабочей папки важно различать по полным путям. Если проект `/Users/you/my-shop`, а Claude запущен в соседнем `/Users/you/other-project`, `index.html` проекта вне этой рабочей области. При запуске из `/Users/you` проект вложенный и не становится недоступным только из-за домашней папки, хотя область шире нужной. Доступ к каталогу также не означает, что каждый файл уже прочитан.

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

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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Краткий вывод">

Краткий вывод

Спросите Claude, в какой папке он работает, или попросите выполнить команду `pwd`: она только выводит текущий путь и ничего не меняет. Сопоставьте этот путь с расположением проекта. Если они не совпадают, вероятно, сессия запущена не из той папки. Надёжный способ исправить это — завершить сессию, перейти в каталог проекта через терминал и запустить там `claude`.

</div>

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

```bash
pwd
```

Ответ показывает настоящую рабочую папку. Сравните с полным путём проекта: `/Users/you/other-project` — сосед `/Users/you/my-shop`, а `/Users/you` — родитель. В первом случае проект вне рабочего дерева; во втором он включён, но не выбран отдельным корнем.

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

```bash
# Вместо иллюстративного пути укажите настоящий корень проекта.
cd /Users/you/my-shop
claude
```

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

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

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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Краткий вывод">

Краткий вывод

Чтобы открыть соседнюю папку во время сессии, выполните в чате команду `/add-dir` и укажите её путь. Для добавления при запуске используйте флаг `--add-dir` вместе с командой `claude`. Если каталог требуется постоянно, внесите его в параметр `additionalDirectories` файла настроек. Во всех трёх случаях Claude получает доступ к файлам добавленной папки без отдельных подтверждений.

</div>

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

В уже открытой сессии выполните:

```
/add-dir ../assets
```

После команды `/add-dir` укажите путь к каталогу. Файлы в нём станут доступны Claude наряду с содержимым основной рабочей папки. Дополнительного подтверждения для чтения этих файлов не требуется: к ним применяются те же правила доступа.

<figure>
<blockquote>
<p>Для файлов в дополнительных каталогах действуют те же правила, что и для основной рабочей папки: Claude читает их без запроса.</p>
</blockquote>
<figcaption>— Официальная документация Claude Code: настройка разрешений</figcaption>
</figure>

Если заранее известно, что при запуске понадобится несколько каталогов, добавьте нужный сразу с помощью флага:

```bash
claude --add-dir ../assets
```

Для папки, которая нужна при каждом запуске, укажите её в `settings.json` в параметре `additionalDirectories`:

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

Для Windows есть ограничение: сетевой путь вида `\\сервер\общая` напрямую добавить нельзя. Подключите сетевую папку как отдельный диск с буквой, а затем передайте эту букву в параметре `--add-dir`. С обычными локальными каталогами такой проблемы нет.

Если нужно не просто добавить соседнюю папку, а целиком перейти в другую рабочую область, используйте отдельную команду, описанную ниже.

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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Краткий вывод">

Краткий вывод

Команда `/cd` меняет рабочую папку, не завершая сессию: укажите её и путь к новому каталогу, чтобы продолжить разговор с прежней историей. При переходе Claude загрузит файл инструкций `CLAUDE.md` из новой папки и, если вы ещё не работали в ней, попросит подтвердить доверие. В отличие от `/add-dir`, которая лишь добавляет каталог, `/cd` полностью переносит рабочую область. Команда доступна начиная с версии 2.1.169.

</div>

Порой недостаточно открыть дополнительную папку: нужно перейти к другому проекту, сохранив контекст разговора. Для этого служит команда `/cd`:

```
/cd ../another-project
```

После её выполнения новая папка становится рабочей. История разговора сохраняется, а Claude начинает искать файлы относительно нового каталога. Если там есть `CLAUDE.md`, Claude также загрузит этот файл и применит инструкции проекта.

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

Различие команд таково: `/add-dir` оставляет основную рабочую папку и открывает дополнительный каталог; `/cd` целиком переносит рабочую область. Первая команда удобна, когда файлы проекта лежат в нескольких местах, вторая — когда вы переключаетесь между проектами. `/cd` появилась в версии 2.1.169. Если команда недоступна, обновите Claude Code; порядок обновления разобран в отдельной статье о [том, как обновить Claude Code](https://ailoot.ai/blog/ru/update-claude-code/).

Доступ к файлам — основа работы Claude Code, но результат также зависит от содержимого файлов и контекста, который вы задаёте проекту. Дополнительные материалы по настройке инструментов можно найти в документации Ailoot.

<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="Руководства Ailoot">

[Руководства Ailoot](https://ailoot.ai/docs/)

</div>

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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Краткий вывод">

Краткий вывод

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

</div>

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

При запуске Claude получает основные инструкции проекта. Файлы инструкций и содержимое подпапок подключаются по мере необходимости — когда Claude обращается к ним. Официальная документация описывает такой порядок для файлов инструкций; аналогичный принцип действует для контекста в целом.

<figure>
<blockquote>
<p>Claude обнаруживает файлы во вложенных каталогах рабочей директории. Они не загружаются при запуске, а подключаются, когда Claude читает файлы в этих каталогах.</p>
</blockquote>
<figcaption>— Официальная документация Claude Code: управление памятью Claude</figcaption>
</figure>

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

Укажите точный путь, например `src/components/header.jsx`, или попросите Claude сначала прочитать нужный файл. После этого Claude сможет учитывать его содержимое при дальнейшей работе. Менять настройки для этого не нужно.

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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Краткий вывод">

Краткий вывод

По умолчанию меню выбора файлов, которое открывается через `@`, не показывает файлы из `.gitignore`. За это отвечает включённый параметр `respectGitignore`. Установите его в `false`, и такие файлы появятся в списке. Даже без изменения настройки можно указать путь к файлу вручную.

</div>

Ещё одна причина, по которой кажется, будто Claude потерял файл, связана с меню выбора. После ввода `@` появляется список, позволяющий выбрать файл, но в нём отображаются не все файлы проекта.

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

Показом таких файлов управляет параметр `respectGitignore`. Он включён по умолчанию. Чтобы показывать также файлы, перечисленные в `.gitignore`, измените его значение на `false`:

```json
{
  "respectGitignore": false
}
```

Изменить этот параметр можно и без редактирования файла: откройте в Claude Code команду `/config` и найдите переключатель «Respect .gitignore in file picker». Снимите отметку — скрытые ранее файлы появятся в меню.

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

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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Краткий вывод">

Краткий вывод

Иногда нужная рабочая папка уже открыта, но Claude отказывается читать один определённый файл. Проверьте правила `deny` в `settings.json`: ими могут быть заблокированы отдельные пути, в том числе `.env` с ключами и паролями. Также проверьте параметр `blockReadsOutsideWorkingDirectories`, который ограничивает чтение за пределами рабочей папки. Запрет на чтение `.env` помогает защитить секреты; не снимайте его без необходимости.

</div>

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

Первое — запрет для конкретных файлов. В настройках он задаётся правилами `deny`. Часто среди них есть `.env`, где могут храниться ключи и пароли:

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

Эти правила намеренно запрещают читать указанные файлы. `.env` защищает секреты, поэтому доступ к нему по умолчанию может быть закрыт. Если Claude не читает именно `.env` или другой файл с учётными данными, проверьте, что это не предусмотренное настройками ограничение, и не снимайте его без веской причины.

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

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

Параметр появился в версии 2.1.257. Если предыдущие проверки не помогли, изучите в `settings.json` оба ограничения: `deny` и `blockReadsOutsideWorkingDirectories`.

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

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Краткий вывод">

Краткий вывод

Сначала сравните текущую директорию Claude, которую можно узнать командой `pwd`, с расположением проекта. Если пути не совпадают, запустите Claude из каталога проекта или перейдите туда через `/cd`. Для соседних папок используйте `/add-dir`, а для вложенных файлов укажите путь. Если файла нет в меню `@`, проверьте `respectGitignore`; если Claude не читает один файл — посмотрите правила `deny` в `settings.json`.

</div>

Проверьте причины по порядку:

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](https://ailoot.ai/blog/ru/claude-code-second-brain/).

<div class="section" role="doc-bibliography" aria-label="Официальные источники">

### Официальные источники

- [Claude Code — настройка разрешений, официальная документация Anthropic](https://docs.claude.com/en/docs/claude-code/permissions) — рабочая папка по умолчанию, флаги `--add-dir` и команда `/add-dir`, команда `/cd`, параметр `additionalDirectories`, чтение без запроса и сетевые пути
- [Claude Code — управление памятью Claude, официальная документация Anthropic](https://docs.claude.com/en/docs/claude-code/memory) — подключение файлов из подпапок по мере обращения, `CLAUDE.md` и импорты
- [Claude Code — справочник настроек, официальная документация Anthropic](https://docs.claude.com/en/docs/claude-code/settings-reference) — `respectGitignore` и меню `@`, параметр `blockReadsOutsideWorkingDirectories` и версия 2.1.257
- [Claude Code — настройки, официальная документация Anthropic](https://docs.claude.com/en/docs/claude-code/settings) — правила `deny` и запрет на чтение `.env`

</div>

Дополнительные материалы по работе с инструментами доступны в [документации Ailoot](https://ailoot.ai/docs/).



<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="Руководства Ailoot">

[Руководства Ailoot](https://ailoot.ai/docs/)

</div>

<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="Перейти на сайт Ailoot">

[Перейти на Ailoot](https://ailoot.ai/)

</div>

## Вопросы и ответы

### Чем запуск из домашней папки отличается от соседнего проекта?

Проект внутри домашней папки — вложенный, поэтому он остаётся в более широком рабочем дереве. Сосед рабочей папки находится вне него. Сравните полные пути до вывода об отсутствии доступа.

### Означает ли доступ к вложенной папке, что файлы уже в контексте?

Нет. Укажите путь и попросите прочитать файл. При отказе проверьте разрешения. Отсутствие файла в меню выбора и запрещённое чтение — разные проблемы.


## Ailoot · Компания и портфель её проектов

Ailoot опирается на накопленный опыт работы, большую клиентскую базу, стабильный сервис и постоянный контроль KPI.

Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.

Этот опыт Ailoot использует для API-доступа к нейросетям в продуктах клиентов, агентах, приложениях и автоматизациях.
