Что такое auto mode
В обычном режиме Claude Code останавливается и спрашивает разрешения почти перед каждым действием, которое меняет файлы, запускает команды или обращается к сети. В auto mode вместо вас решения принимает вторая модель - классификатор: она проверяет действие и либо пропускает его, либо блокирует, если оно выходит за рамки запроса, нацелено на незнакомую инфраструктуру или похоже на инструкцию, которую Claude вычитал из враждебного содержимого.
На тарифах Pro, Max и Team auto mode - встроенный стартовый режим. Требуется поддерживаемая модель (Claude Opus 4.6 и новее, Sonnet 4.6 и новее, или Fable 5 на прямом API Anthropic); организация может отключить auto mode целиком через настройки. Auto mode снижает число запросов на подтверждение, но не гарантирует безопасность - это инструмент для задач, где вы в целом доверяете направлению работы, а не замена проверке чувствительных операций.
Что классификатор блокирует по умолчанию
Список встроенных блокировок обширный, вот основное: скачивание и выполнение кода из интернета (вроде curl | bash), отправка чувствительных данных на внешние адреса, продакшн-деплои и миграции баз данных, массовое удаление в облачном хранилище, выдача прав IAM или доступа к репозиторию, необратимое удаление файлов, которые существовали до начала сессии, форс-пуш, слияние pull request без одобрения человека, запись в secret-менеджер, изменение DNS-записей или сертификатов.
Также под блокировку попадают команды с флагами, которые отключают защиту (вроде --insecure), запуск полностью автономного агента без песочницы и человеческого одобрения, и печать живых учётных данных в лог сессии или файл.
Что разрешено по умолчанию
Классификатор не тратит время на рутину: локальные файловые операции в рабочей папке, установка зависимостей из lock-файлов, чтение .env и отправка учётных данных на подходящий им API, безопасные HTTP-запросы на чтение. Пуш разрешён в любую ветку репозитория, с которым вы работаете, включая основную ветку - но не в ветку, чьё имя указывает на деплой или публикацию (например, production или gh-pages): такие пуши классификатор оценивает отдельно, как продакшн-деплой.
Почему рутинные операции всё равно блокируются
По умолчанию классификатор доверяет только рабочей папке и настроенным для неё git-remote. Пуш в корпоративную организацию на GitHub или запись в общий облачный бакет команды блокируются до тех пор, пока вы явно не добавите их в список доверенной инфраструктуры - блок autoMode.environment в настройках.
Как описать доверенную инфраструктуру
Записи в autoMode.environment - обычная проза, а не регулярные выражения: классификатор читает их как описание на естественном языке, примерно как вы объясняли бы инфраструктуру новому сотруднику. Настройка хранится в ~/.claude/settings.json для одного разработчика или в managed settings для всей организации.
{
"autoMode": {
"environment": [
"$defaults",
"Source control: github.example.com/acme-corp and all repos under it",
"Trusted cloud buckets: s3://acme-build-artifacts, gs://acme-ml-datasets",
"Trusted internal domains: *.corp.example.com, api.internal.example.com",
"Key internal services: Jenkins at ci.example.com, Artifactory at artifacts.example.com"
]
}
}Строка "$defaults" сохраняет встроенные записи - свои добавляются до или после неё в том же массиве. Без этой строки список заменяется полностью, а вместе с ним теряются и встроенные проверки. Полезно описать: организацию и её основной сценарий использования Claude Code, все системы контроля версий, куда пушат разработчики, доверенные облачные бакеты, внутренние домены (API, дашборды, сервисы), ключевые внутренние сервисы - CI, реестр артефактов, внутренний package-реестр, а также чувствительные места - где хранятся персональные и конфиденциальные данные и что считается продакшном.
Заполнять всё сразу не обязательно: разумный старт - оставить встроенные записи, добавить свою систему контроля версий и ключевые сервисы, это снимает большинство ложных блокировок вроде пуша в собственные репозитории.
Автоматический черновик: /auto-mode-setup
Команда /auto-mode-setup просит Claude Code самостоятельно набросать записи autoMode.environment на основе CLAUDE.md, README, git-remote проекта и хостов, команд и бакетов, с которыми Claude уже работал в недавних сессиях этого проекта - сами сообщения пользователя при этом не читаются. Черновик показывается целиком, принимается или отклоняется одним решением, а после сохранения дописывается в ~/.claude/settings.json. Команда требует тариф Pro, Max или Team.
Свои правила: allow, soft_deny, hard_deny
Три дополнительных поля заменяют встроенные списки правил классификатора. Порядок приоритета внутри классификатора - четыре уровня: hard_deny блокирует безусловно, ни намерение пользователя, ни allow это не отменяют. soft_deny блокирует следующим - но пользовательское намерение или запись в allow могут снять блокировку. allow - это исключения из soft_deny. И наконец явное намерение пользователя снимает мягкую блокировку, если сообщение прямо и конкретно описывает то самое действие: просьба «наведи порядок в репозитории» не даёт права на форс-пуш, а прямая просьба «сделай форс-пуш этой ветки» - даёт.
{
"autoMode": {
"allow": [
"$defaults",
"Deploying to the staging namespace is allowed: staging is isolated from production and resets nightly"
],
"soft_deny": [
"$defaults",
"Never run database migrations outside the migrations CLI, even against dev databases"
],
"hard_deny": [
"$defaults",
"Never send repository contents to third-party code-review APIs"
]
}
}Как и с environment, строка "$defaults" обязательна, если нужно сохранить встроенные правила - без неё раздел заменяется целиком, и вместе с ним теряются базовые проверки вроде запрета на форс-пуш и curl | bash.
Человеческая проверка перед конкретным действием
Если нужен обязательный ручной чекпойнт перед пушем или созданием pull request, правильный инструмент - не auto mode, а правило permissions.ask: оно проверяется раньше классификатора и всегда выдаёт запрос на подтверждение, даже когда включён auto mode.
{
"permissions": {
"ask": [
"Bash(git push *)",
"Bash(gh pr create *)"
]
}
}Разница с озвученной вслух границей («не пушь, пока не проверю») в том, что такая фраза живёт только в переписке и может потеряться при сжатии контекста долгой сессии - правило в настройках работает надёжно в любой момент.
Проверка эффективной конфигурации
Несколько команд показывают, что на самом деле видит классификатор:
# встроенные правила без ваших настроек
claude auto-mode defaults
# итоговые правила с учётом ваших настроек
claude auto-mode config
# ИИ-проверка ваших собственных правил на неоднозначность
claude auto-mode critique
# сброс настроек auto mode к значениям по умолчанию
claude auto-mode resetПосле любых правок стоит запустить claude auto-mode config, чтобы убедиться, что новые записи действительно вошли в эффективный список, а не потерялись из-за пропущенной строки "$defaults".
Чек-лист
- Проверена версия Claude Code и поддерживаемая модель
- Добавлены записи в autoMode.environment: система контроля версий, ключевые сервисы, доверенные домены
- Строка "$defaults" сохранена в каждом изменённом разделе
- При необходимости добавлены свои allow / soft_deny / hard_deny правила
- Для критичных действий (пуш, PR) добавлено правило permissions.ask
- Изменения проверены командой claude auto-mode config