В прошлом уроке ты научился разрешать и запрещать действия правилами. Но у правил есть слепое пятно. Правило Bash(npm test) пускает запуск тестов — и не знает, что окажется внутри. Если тест или его зависимость полезет писать в чужую папку или отправлять данные в сеть, правило ничего не заметит.
Для этого есть второй слой — .
Что делает песочница
Песочница оборачивает команды оболочки, которые запускает Claude, в границу, которую держит операционная система. По умолчанию команда внутри неё:
- пишет только в папку проекта, во временную папку пользователя и в папки, которые ты добавил через
--add-dirили/add-dir; - ходит в сеть только через прокси, который пропускает лишь разрешённые адреса.
Попробуй команда записать файл в домашнюю папку — система откажет: на macOS ты увидишь Operation not permitted, на Linux — Read-only file system.
Как включить
Песочница выключена по умолчанию. Внутри сессии набери:
/sandbox
и на вкладке Mode выбери режим автоматического разрешения. В нём команда, которая выполняется внутри песочницы, не требует подтверждения: граница и так держит её в рамках. Claude Code сохранит выбор в твой личный .claude/settings.local.json.
В файле настроек это выглядит так:
{
"sandbox": {
"enabled": true
}
}
Что остаётся снаружи
Это важно понимать, чтобы не переоценить защиту:
- собственные инструменты Claude для чтения, правки файлов и веба работают вне песочницы — их держат правила разрешений из прошлого урока;
- хуки и локальные MCP-серверы работают вне песочницы с твоими полными правами.
Песочница не заменяет правила, а дополняет их. Правила решают, что можно запустить. Песочница — что запущенному можно сделать.
Мини-проверка
С включённой песочницей Claude запустил npm test, а скрипт теста попытался записать файл в ~/Documents. Что произойдёт?
Осторожно
Если песочница не смогла запуститься — например, в контейнере не хватает нужных системных компонентов, — Claude Code по умолчанию продолжит выполнять команды без неё. Для запусков без присмотра включай настройку sandbox.failIfUnavailable: тогда Claude Code откажется стартовать, а не тихо сработает без защиты.
Практика в терминале