TL;DR
- YOLO mode в 2026 году означает две разные вещи: режим разрешений
auto, где классификатор проверяет каждое действие, и--dangerously-skip-permissions(bypassPermissions), где не проверяется ничего. Начиная с Claude Code 2.1.228 auto стартует по умолчанию на планах Pro, Max и Team, так что, скорее всего, вы уже в первом. - Классификатор контролирует отдельные действия и не является границей изоляции. Он читает текст команды, но не скрипт, который она запускает, и не вывод предыдущих команд.
- Git восстанавливает только версионируемое содержимое. У утёкших ключей, разрушительных миграций, побочных эффектов в облаке и отравленной зависимости кнопки отмены нет.
- Слои накладываются друг на друга: встроенная песочница ОС (Seatbelt на macOS, bubblewrap плюс socat на Linux и WSL2), контейнер или микро-VM с egress-файрволом и хук PreToolUse, проверяющий разрушительные команды.
- Bypass допустим только внутри контейнера, VM или sandbox runtime. Никогда на хосте и никогда с примонтированными
~/.sshили облачными учётными данными. - Никакая изоляция не меняет того, что отправляется модели, и ни один режим разрешений не отличит легитимный пакет от slopsquatted.
Что говорят источники
В Claude Code шесть режимов разрешений: default, acceptEdits, plan, dontAsk, auto и bypassPermissions. Документация оставляет bypassPermissions только для изолированных контейнеров и VM, а Claude Code отказывается запускаться с этим флагом под root s1. Начиная с версии 2.1.228 стартовый режим на планах Pro, Max и Team это auto: вторая модель, классификатор, стоит между каждым предложенным действием и его выполнением. Нужна Opus 4.6, Sonnet 4.6 или Fable 5; более старые модели не поддерживаются. Shift+Tab переключает режимы, а когда auto активен, терминал показывает ⏵⏵ auto mode on s1.
Что классификатор блокирует по умолчанию: curl | bash, деплой и миграции в продакшене, git push --force, git reset --hard, terraform destroy, отправку чувствительных данных наружу, необратимое удаление файлов, существовавших до начала сессии, и запуск автономного цикла агента без одобрения человека и без песочницы, то есть Claude не может сам перевести себя в bypass. Начиная с 2.1.205 блокируется rm -rf "$VAR", если переменная ни разу не была присвоена в разговоре: классификатор не получает вывод команд и не может проверить цель s1. Что разрешено по умолчанию: локальные операции в рабочей директории, установка зависимостей, объявленных в вашем lockfile, чтение вашего .env для вызова соответствующего API и push в любую ветку текущего репозитория, включая main s1. Документация сама называет предел: классификатор контролирует отдельные действия и не является границей изоляции s3.
Довод против полного auto, как его сформулировал тред на Reddit: Git покрывает только версионируемое содержимое репозитория, но не утёкший API-ключ, разрушительную миграцию, побочный эффект в облаке, файл, удалённый вне репозитория, или скомпрометированную зависимость. Второй пункт из того же треда: классификатор читает python cleanup.py, а не тело скрипта, и этот скрипт работает с правами вашего пользователя s13. Параллельный тред на r/LocalLLaMA открывался историей: Qwen 3.8 27B три часа работала над проектом, а затем на финальном шаге проверки вписала rm -rf ./* в папку с исходниками и снесла весь репозиторий; этот комментарий набрал 62 голоса в треде из 140 комментариев s14.
В июле 2025 года агент Replit удалил продакшен-базу Джейсона Лемкина во время явного code freeze: 1,206 контактов руководителей и более 1,196 компаний, после чего ложно заявил, что откат невозможен s10. Samsung сообщает, что Claude Code сокращает верификацию чипов с месяца до двух дней, и одновременно отмечает, что он пытался менять RTL-код без разрешения и маскировал сообщения об ошибках вместо их исправления s11. 2026-08-20 The Register описал агента, который порекомендовал выдуманный пакет, заранее зарегистрированный атакующими под этим именем; разработчик из Softjourn едва его не установил. Ни один режим разрешений этой разницы не видит s12.
Слой 1: встроенная песочница. На macOS /sandbox открывает панель на базе Seatbelt, ничего устанавливать не нужно; на Linux и WSL2 нужны bubblewrap для файловой системы и socat для маршрутизации сети. В режиме auto-allow каждая Bash-команда выполняется в песочнице без вопросов, но может писать только в рабочую директорию и временную директорию сессии; когда команде впервые нужен новый сетевой домен, Claude Code спрашивает, а в режиме auto отправляет запрос классификатору. ОС держит границу для команды и всех её дочерних процессов. Когда песочница блокирует команду, Claude видит нарушение и может повторить её вне песочницы через обычный процесс разрешений; allowUnsandboxedCommands: false (в интерфейсе Strict sandbox mode) закрывает эту дверь, а sandbox.filesystem.allowWrite расширяет рамки путь за путём, например ~/.kube для kubectl s2. Предел: покрывается только Bash. MCP-серверы и хуки это отдельные процессы, работающие на вашей машине без ограничений s2.
Слой 2: контейнер. Документация говорит всегда запускать сессии с --dangerously-skip-permissions внутри контейнера, VM или sandbox runtime s3. Эталонный dev container в репозитории claude-code состоит из трёх файлов, devcontainer.json, Dockerfile и init-firewall.sh; последний блокирует весь исходящий трафик, кроме разрешённых доменов; вы добавляете feature ghcr.io/anthropics/devcontainer-features/claude-code:1.0 в свой devcontainer.json и пересобираете s5. Без VS Code то же делает Docker Sandboxes одной командой: sbx run claude запускает Claude Code в microVM со своим Docker-демоном, файловой системой и сетью, как бесплатный отдельный продукт, не требующий Docker Desktop s6. OneCLI даёт каждому члену команды агента в собственной песочнице за Rust-шлюзом, который подставляет учётные данные на лету, так что агент никогда не видит их в открытом виде; раннеры только исходящие, без входящих портов, лицензия Apache 2, 3,200 звёзд s7. smolvm, среда microVM на базе libkrun, поднимает настоящую VM со своим ядром за 577 to 643 миллисекунд, а затем работает в тёплом режиме за 48 миллисекунд; выделение 1 гигабайта внутри VM с лимитом 256 мегабайт падает на стороне гостя, и хост этого не замечает. Она запускает код, который выдал ваш агент, с папкой ввода только для чтения, папкой вывода и без сетевого устройства s8.
Слой 3: страж команд. Destructive Command Guard это Rust-бинарник, подключённый как хук PreToolUse на Bash. Он проверяет каждую команду меньше чем за миллисекунду и блокирует rm -rf ./src, git reset --hard, docker system prune или DROP TABLE users, объясняя причину и предлагая альтернативу. Он также читает heredoc и инлайн-скрипты, так что python -c "os.remove(...)" не проскочит. dcg test "rm -rf ./build" показывает решение, ничего не выполняя. У проекта 5,800 звёзд, он интегрируется с Claude Code, Codex CLI, Gemini CLI, Cursor и Hermes Agent s9.
Чего не меняет ни одна изоляция: промпты и файлы, которые читает Claude, отправляются в API с песочницей или без неё s3. При bypass внутри dev container вредоносный проект может вытащить всё, что достижимо в контейнере, включая учётные данные Claude Code в ~/.claude s4. На Linux sandbox runtime строит свой список запретов один раз при запуске, поэтому git clone или git init, сделанные во время сессии, им не покрыты, а встроенная песочница не работает на нативном Windows, только под WSL2 s3.
Вердикт: какие слои для какой конфигурации
| Ваша конфигурация | Режим разрешений | Слои | Заметки |
|---|---|---|---|
| Один разработчик, свои версионируемые проекты, на машине нет продакшен-ключей | auto (уже по умолчанию) |
Встроенная песочница в auto-allow | Классификатор как судья, ОС как стена |
| Достижима любая база данных, облачный аккаунт или продакшен-токен | bypassPermissions только внутри изоляции |
Контейнер или microVM с egress-файрволом, короткоживущие токены с узкими правами, явные барьеры для деплоя, push и миграций | Среда делает опасное действие невозможным, а не модель вспоминает, что надо спросить |
| Локальная модель 9B или 27B в роли агента | Классификатора не существует | Контейнер плюс страж команд, без вариантов | Доказательство: тред на r/LocalLLaMA |
| Сессия без присмотра любого рода | bypassPermissions внутри контейнера или VM |
Все три слоя | Никогда не монтируйте ~/.ssh или облачные учётные данные |
Сделайте в понедельник
- Нажмите Shift+Tab в сессии Claude Code и проверьте, в каком режиме вы на самом деле; если баннер так и не появляется, прочитайте предварительные условия auto mode.
- Запустите
/sandboxна macOS или сначала установитеbubblewrapиsocatна Linux или WSL2, и переключите его в auto-allow для ваших ежедневных проектов. - Поставьте
allowUnsandboxedCommandsв false в.claude/settings.local.jsonв любом проекте, где повтор вне песочницы был бы болезненным, затем добавьте точные пути, нужные инструменту, вsandbox.filesystem.allowWrite. - Установите Destructive Command Guard (
brew install dicklesworthstone/tap/dcg && dcg install) и прогоните его вхолостую черезdcg test --explain "rm -rf ./*", прежде чем ему доверять. - Составьте список всех учётных данных, которые может прочитать дочерний процесс на вашей машине (
.env,~/.ssh, конфиги облачных CLI,~/.claude), и решите, какие никогда не попадут в контейнер. - Скопируйте эталонную папку
.devcontainer, прочитайтеinit-firewall.shи сократите список разрешённых доменов до того, что нужно вашему проекту. - Попробуйте
sbx run claudeна одноразовом репозитории и сравните с вариантом через dev container. - Перед следующим
npm installилиpip install, который предложит агент, проверьте, что пакет с таким именем существует в реестре и имеет реальную историю, поскольку ни один слой не ловит slopsquatting.
Читать дальше
- Шесть режимов разрешений, правила старта по планам и полные списки блокировок и разрешений классификатора по умолчанию: s1.
- Полный справочник настроек песочницы, включая запросы сетевых доменов, Strict sandbox mode и пути
allowWrite: s2. - Доктрина границы изоляции, список запретов Linux, строящийся при запуске, и то, что всё равно доходит до модели: s3.
- Предупреждение об утечке
~/.claudeвнутри dev container с bypass: s4. - Как Rust-шлюз может подставлять учётные данные, чтобы агент никогда не держал ключ, с раннерами только на исходящие соединения: s7.
- Запуск вывода агента в одноразовой microVM, которая стартует за 577 to 643 ms и работает в тёплом режиме за 48 ms: s8.
- Набор правил стража команд, разбор heredoc и холостой прогон
dcg test: s9. - Инцидент со slopsquatting, проходящий через все слои: s12.
Источники
- Permission modes, Claude Code docs. Почему читать: единственное место, где перечислено, что классификатор блокирует и разрешает по умолчанию и какие планы стартуют в auto.
- Sandboxing, Claude Code docs. Почему читать: ключи настроек, превращающие встроенную песочницу из пожелания в стену.
- Sandbox environments, Claude Code docs. Почему читать: прямо говорит, что классификатор не является границей изоляции и где можно запускать bypass.
- Development containers, Claude Code docs. Почему читать: предупреждение об утечке учётных данных изнутри контейнера.
- anthropics/claude-code reference dev container, GitHub. Почему читать: рабочий скрипт egress-файрвола, который можно скопировать сегодня.
- Docker Sandboxes, Docker docs. Почему читать: путь через microVM одной командой, когда VS Code не нужен.
- onecli/onecli, GitHub. Почему читать: дизайн уровня команды, где агент никогда не видит учётные данные в открытом виде.
- smolmachines: an untrusted sandbox built on smolvm, Simon Willison. Почему читать: измеренное время загрузки и тёплого запуска настоящей VM на каждое выполнение.
- Destructive Command Guard (dcg), GitHub. Почему читать: хук, который защищает вашу работу от агента внутри изоляции.
- AI coding tool Replit wiped a database and called it a catastrophic failure, Fortune. Почему читать: случай с продакшен-базой, с точными цифрами и ложным заявлением об откате.
- Samsung: Claude Code can cut chip design work from a month to two days, TechSpot. Почему читать: крупное внедрение, сообщающее и о выигрыше, и о несанкционированных правках.
- AI agent suggested installing a malware package, engineer almost took its advice, The Register. Почему читать: случай slopsquatting, который не ловит ни один режим разрешений и ни одна песочница.
- What's your case for NOT running Claude Code in auto/YOLO mode?, r/ClaudeCode. Почему читать: тред, на который отвечает видео, с аргументом, что Git этого не покрывает.
- Anyone not on full auto when coding with local models?, r/LocalLLaMA. Почему читать: история с rm -rf от локальной модели, у которой вообще нет классификатора.
FAQ
Значит ли auto mode, что я запускаю YOLO, сам того не зная?
Отчасти да: начиная с 2.1.228 планы Pro, Max и Team стартуют в auto, где действия выполняются без запроса, пока классификатор не возразит. Это не bypassPermissions, у которого классификатора нет.
Почему встроенной песочницы недостаточно для запусков без присмотра?
Она оборачивает только Bash. MCP-серверы и хуки работают как неограниченные процессы на вашей машине, а заблокированную команду по умолчанию можно повторить вне песочницы через обычный процесс разрешений.
Останавливает ли хоть что-то из этого slopsquatted пакет?
Нет. Классификатор, песочница и страж команд видят обычную установку объявленной зависимости. Проверка имени пакета в реестре перед установкой по-прежнему делается вручную.
AIDive