Почему это важно именно вам
Разрешения отвечают на вопрос «спрашивать ли перед действием». Песочница отвечает на другой: «а может ли это действие вообще что-то сломать».
Разница принципиальна. Разрешение можно выдать по ошибке — усталость, спешка, невнимательность. Границу, установленную операционной системой, выдать по ошибке нельзя: команда просто не сможет выйти за пределы разрешённых папок и адресов, что бы ни решила модель.
Для человека, который даёт системе всё больше автономии, это разница между «я доверяю» и «я могу себе позволить доверять».
Что это такое
Песочница Bash — механизм, при котором команды выполняются в изоляции: вы задаёте, какие файлы и сетевые адреса им доступны, а операционная система следит за соблюдением границы для команды и всех порождённых ею процессов.
Практический эффект: большинство команд можно выполнять без подтверждений, потому что вред ограничен. Но только в одном из двух режимов — их выбирают первым же шагом в панели /sandbox. Auto-allow: команды, которые удалось поместить в песочницу, выполняются без вопросов. Regular permissions: подтверждения остаются как были, песочница лишь ограничивает область. Включили песочницу и ничего не изменилось — вы во втором режиме.
Работает на macOS, Linux и WSL2. На macOS ничего ставить не нужно — используется встроенный механизм системы. На Linux и WSL2 нужны два пакета; панель /sandbox сама покажет, чего не хватает. Нативная Windows не поддерживается — там Claude Code запускают внутри WSL2.
Ограниченный режим (--restricted) — другой инструмент с похожей целью. Он убирает встроенные инструменты, выполняющие команды и код, а также веб-загрузку; ограничивает файловые операции рабочими каталогами; загружает только управляемые настройки; отказывает в bypassPermissions. Нужен, когда claude запускается на общей машине автоматической системой и не должен ни выполнять команды, ни читать чужие настройки. Требуется версия 2.1.248 или новее.
Безопасный режим (--safe-mode) решает третью задачу — диагностику. Он запускает Claude Code без ваших надстроек: без CLAUDE.md, скиллов, плагинов, хуков, MCP-серверов, своих команд и агентов. Вход, выбор модели, встроенные инструменты и разрешения при этом работают как обычно, корпоративная политика тоже остаётся. Поэтому он отвечает на вопрос «виновата ли надстройка», но не проверяет сами настройки: если подозрение на них, запускайте сессию с пустым конфиг-каталогом (CLAUDE_CONFIG_DIR).
Как работает на практике
Включить и посмотреть
/sandbox
Панель показывает режим, состояние аварийного выхода, итоговые настройки и чего не хватает для работы. Сами списки — какие каталоги доступны на запись (sandbox.filesystem.allowWrite) и к каким адресам разрешены обращения (sandbox.network.allowedDomains) — задаются в файле настроек; в панели их видно на вкладке Config.
Разумная конфигурация для рабочей машины
Принцип: разрешать только то, что нужно текущей работе.
Файлы. Запись — только в рабочую папку проекта и временные каталоги. Всё остальное, включая домашнюю папку целиком, — недоступно.
Сеть. Только адреса, действительно нужные: ваши сервисы, документация, конкретные API. Открытый доступ ко всей сети в песочнице — это песочница без стенок.
Когда песочница мешает
Честно: она мешает, когда работа выходит за границы. Но по умолчанию команда не просто падает: увидев нарушение, Claude может повторить её вне песочницы, и тогда решение принимает обычный механизм разрешений — а в авторежиме это значит «решает классификатор», без вопроса вам.
Нужна жёсткая граница — выключите этот аварийный выход: вкладка Overrides в /sandbox → «Strict sandbox mode» (настройка sandbox.allowUnsandboxedCommands: false). И держите в голове, что сама документация предупреждает: песочница снижает риск, но не является полной границей изоляции.
Правильная реакция на блокировку — расширить границу осознанно (добавить конкретную папку), а не выключить песочницу целиком.
Диагностика через безопасный режим
claude --safe-mode
Классический сценарий: после установки очередного плагина всё стало странно себя вести. Запуск в безопасном режиме отвечает на вопрос «дело в моих настройках или нет» за минуту.
Если в безопасном режиме всё хорошо — виновата одна из ваших настроек; отключайте по одной. Если плохо — проблема не в них.
Песочница — не замена разрешениям
Она ограничивает возможности среды, но не решает, стоит ли выполнять действие. Отправка данных на разрешённый адрес или удаление файла внутри разрешённой папки — законные операции с точки зрения песочницы. Два слоя нужны вместе: разрешения решают «что», песочница ограничивает «где».
Частые ошибки
Считать, что песочница делает автономность безопасной. Она ограничивает область поражения, а не намерения. Необратимые действия внутри разрешённой области по-прежнему возможны.
Разрешать всю домашнюю папку. Это самое частое «упрощение», которое обнуляет смысл: там лежат ваши документы, ключи и настройки.
Открывать всю сеть. Без ограничения адресов исчезает защита от утечки данных наружу.
Выключать песочницу при первом неудобстве. Расширяйте границу точечно.
Забывать про --safe-mode при поломках. Люди часами ищут проблему в системе, когда виноват один хук.
Считать, что песочница включена, раз вы её настроили. Если она не может стартовать (не хватает пакетов, неподдерживаемая платформа), по умолчанию Claude Code просто показывает предупреждение и выполняет команды без неё. Чтобы это стало жёсткой ошибкой, поставьте sandbox.failIfUnavailable: true.
Когда нужно / когда нет
Песочница нужна:
- при автономных прогонах, когда вы не смотрите на каждое действие;
- при работе с чужим кодом и непроверенными источниками;
- всегда, когда включён авторежим и задача длинная.
Можно без неё:
- короткие интерактивные сессии, где вы видите каждое действие;
- работа исключительно на чтение.
--restricted нужен: когда claude запускает автоматическая система на общей машине.
Связь с другими уроками
День 86 — разрешения. Первый слой; песочница — второй, независимый.
День 75 — изоляция агентов. Изоляция по файлам проекта; песочница — по возможностям системы.
День 89 — диагностика. --safe-mode и /doctor работают в паре.
Задание на сегодня
- Выполните
/sandboxи посмотрите состояние: работает ли песочница, всё ли установлено. - Настройте доступ на запись только к рабочим каталогам, а не ко всей домашней папке.
- Ограничьте сетевые обращения списком адресов, которые действительно нужны.
- Запустите длинную автономную задачу в песочнице и убедитесь, что она проходит.
- Запустите
claude --safe-modeи посмотрите, как выглядит система без ваших настроек, — пригодится при следующей поломке.
Критерий «выполнено»: ваши автономные задачи выполняются в песочнице с ограниченным доступом к файлам и сети.
Резюме
- Песочница Bash изолирует выполняемые команды: доступ к файлам и сети ограничивает операционная система, а не доверие к модели.
- Работает на macOS (встроенно), Linux и WSL2 (нужны два пакета); нативная Windows не поддерживается. Панель —
/sandbox. - Настраивайте узко: запись — в рабочие каталоги, сеть — по списку адресов; открытые границы обнуляют смысл.
--restrictedубирает выполнение команд и чтение чужих настроек — для запуска автоматикой на общей машине (от версии 2.1.248).--safe-modeзапускает без ваших надстроек (но с разрешениями и настройками) — первый шаг диагностики, когда что-то сломалось.- Песочница не заменяет разрешения и по умолчанию не является жёсткой границей: заблокированную команду Claude может повторить вне песочницы, если не включён строгий режим (
sandbox.allowUnsandboxedCommands: false). - Если песочница не смогла стартовать, по умолчанию работа продолжается без неё — жёсткую ошибку включает
sandbox.failIfUnavailable: true.