Выберите режим разрешений
Контролируйте, будет ли Claude просить разрешение перед редактированием файлов или выполнением команд. Переключайте режимы с помощью Shift+Tab в CLI, индикатора режима в VS Code или селектора режима в Desktop.
Режим разрешений определяет, какие действия Claude может выполнять в сеансе без предварительного запроса у вас. В режиме Manual Claude Code останавливается и просит вас перед большинством действий, которые редактируют файлы, запускают команды оболочки или обращаются в сеть. В режиме auto вторая модель, классификатор, проверяет действия вместо вас; как классификатор оценивает действия перечисляет, какие действия он проверяет и какие его пропускают.
На планах Pro, Max и Team встроенный начальный режим разрешений — это режим auto. Какой режим начинается в сеансе охватывает интерфейсы и параметры, которые изменяют начальный режим разрешений. Вы также можете изменить режим разрешений работающего сеанса в любое время.
Доступные режимы
Каждый режим делает разный компромисс между удобством и контролем. Таблица ниже показывает, что Claude может делать без запроса разрешения в каждом режиме. Режим Manual отображается под его значением конфигурации, default.
| Режим | Что выполняется без запроса | Лучше всего для |
|---|---|---|
default |
Только чтение | Проверка каждого действия самостоятельно, чувствительная работа |
acceptEdits |
Чтение, редактирование файлов и распространённые команды файловой системы (mkdir, touch, mv, cp и т.д.) |
Итерация по коду, который вы проверяете |
plan |
Чтение, плюс одобренные классификатором команды, когда режим auto доступен | Изучение кодовой базы перед её изменением |
auto |
Всё, с фоновыми проверками безопасности | Длительные задачи, снижение усталости от запросов |
dontAsk |
Только предварительно одобренные инструменты | Заблокированные CI и скрипты |
bypassPermissions |
Всё | Только изолированные контейнеры и виртуальные машины |
Режим, который проверяет каждое действие, называется Manual в CLI, в claude --help, в расширениях VS Code и JetBrains и в настольном приложении. Его значение конфигурации — default, которое используют hooks и интеграции SDK. CLI принимает manual как псевдоним везде, где вы вводите значение, например claude --permission-mode manual или "defaultMode": "manual". Метка Manual и псевдоним manual требуют Claude Code v2.1.200 или позже. Метка настольного приложения не зависит от вашей версии CLI.
Записи в защищённые пути никогда не одобряются автоматически, кроме режима bypassPermissions и сеансов режима plan, где доступны разрешения на обход, то есть сеансов, запущенных способом, который помещает bypassPermissions в цикл режимов.
Режимы устанавливают базовое поведение. Наложите правила разрешений сверху, чтобы предварительно одобрить или заблокировать определённые инструменты. Правила отказа блокируют в каждом режиме, включая bypassPermissions. Правила отказа и запроса не применяются к EndConversation, пока Claude по-прежнему имеет хотя бы один другой инструмент, который он может вызвать. Правила разрешения не имеют эффекта в bypassPermissions.
Действия, которые ни один режим не одобряет автоматически
Claude Code не одобряет автоматически следующие действия ни в одном режиме, включая bypassPermissions. Каждый пункт ссылается на раздел, который говорит, что происходит вместо этого в каждом режиме:
- Инструменты, соответствующие явному правилу ask
- Инструменты соединителя, которые ваша организация установила на
ask, в сеансах, где это параметр достигает Claude Code - Инструменты, требующие взаимодействия с пользователем: встроенный инструмент
AskUserQuestionи инструменты MCP, отмеченныеrequiresUserInteraction - Удаления
rmиrmdir, нацеленные на критический путь, которые ни одно правило разрешения или hookPreToolUseс"allow"не одобряет - Гарантии обмена сообщениями между сеансами
- Чтение вне рабочих каталогов, пока
permissions.blockReadsOutsideWorkingDirectoriesвключено: распознанные команды Bash для чтения файлов и любой неизолированный повторный запуск, который требует одобрения для запуска вне песочницы, запрашивают даже в режиме auto и режимеbypassPermissions. Требует Claude Code v2.1.257 или позже
Распространённые конфигурации
Режимы разрешений определяют, будет ли Claude просить перед действием, а песочница Bash и внешние границы изоляции определяют, что действие может достичь после запуска. Каждая строка ниже связывает цель с флагами или параметрами, которые вас туда доставляют, и необходимой изоляцией, как отправную точку. Доступные режимы перечисляют, что выполняется без запроса в каждом режиме.
| Вы хотите | Начните с | Необходимая изоляция | Примечания |
|---|---|---|---|
| Проверить каждое действие самостоятельно | Режим Manual: claude --permission-mode default |
Нет | Чувствительная работа, незнакомый код |
| Итерировать локально с меньшим количеством запросов, без классификатора | Режим Manual плюс песочница Bash в режиме auto-allow: claude --permission-mode default, затем запустите /sandbox и выберите auto-allow |
Встроенная песочница Bash, на macOS, Linux и WSL2 | Правила отказа по-прежнему применяются, и правила запроса, которые называют команду, такие как Bash(git push *), по-прежнему запрашивают. Чтобы включить песочницу из файла параметров вместо этого, установите sandbox.enabled на true |
| Исследовать перед изменением чего-либо | claude --permission-mode plan |
Нет | Claude Code блокирует редактирование до тех пор, пока вы не одобрите план |
| Работать в режиме auto без участия | claude --permission-mode auto, встроенный начальный режим разрешений на Pro, Max и Team |
Нет; песочница или контейнер добавляет защиту в глубину | Требует поддерживаемую модель, и ваша организация может отключить режим auto |
| Запустить в CI с точным списком разрешений | claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read" |
Нет, кроме того, что предоставляет ваш CI runner | Claude Code в веб-версии игнорирует dontAsk из файлов параметров |
| Запустить полностью автоматически внутри контейнера | claude -p "<prompt>" --dangerously-skip-permissions |
Требуется: контейнер, виртуальная машина или runtime песочницы; на Linux и macOS запустите его как непривилегированный пользователь | Claude Code в веб-версии игнорирует этот режим из файлов параметров. В этом запуске -p несколько вызовов, которые по-прежнему запрашивают, отклоняются вместо этого |
Песочница Bash и режим auto работают независимо и объединяются, кроме режима plan, где auto-allow не расширяет одобрения. Для полного взаимодействия см. Как песочница связана с разрешениями и режимами разрешений и Как изоляция связана с режимами разрешений.
Какой режим начинается в сеансе
Когда вы запускаете новый сеанс в терминале, Claude Code берёт режим разрешений из первого из них, который применяется:
-
Флаг
--permission-modeили--dangerously-skip-permissions -
permissions.defaultModeв файле параметровЕсли вы установите
"auto"в.claude/settings.jsonили.claude/settings.local.json, значение не вступает в силу, и Claude Code затем использует встроенное значение по умолчанию вместоdefaultModeиз~/.claude/settings.json. Если вы установите"bypassPermissions"в этих двух файлах, это также не вступает в силу, и сеанс начинается в режиме Manual. Другие значения применяются из любого файла параметров. -
Встроенное значение по умолчанию
Разговоры, которые расширение VS Code запускает, следуют собственному списку расширения в Переключение режимов разрешений. Для режима разрешений, в котором Claude Code запускает возобновленный сеанс, см. режим разрешений при возобновлении.
Встроенное значение по умолчанию auto требует Claude Code v2.1.228 или позже на macOS, Linux и WSL, и v2.1.233 или позже на нативной Windows. На более ранних версиях встроенное значение по умолчанию — Manual.
Встроенное значение по умолчанию зависит от того, как вы запускаете Claude Code, от вашего плана и от того, может ли Claude Code получить свои флаги функций. Первая строка, которая соответствует вашему сеансу, применяется. Таблица охватывает сеансы, которые вы запускаете в терминале или через расширение VS Code; для настольного приложения и claude.ai см. вкладки Desktop и Web в Переключение режимов разрешений.
| Как вы запускаете Claude Code | Встроенный начальный режим разрешений |
|---|---|
Любой файл параметров устанавливает disableAutoMode на "disable" |
default |
| Получение флагов функций отключено | default |
| Ваш первый сеанс после установки Claude Code или обновления до версии, которая добавляет это значение по умолчанию, если только после свежей установки Claude Code не получит флаги вовремя | default |
claude -p или Agent SDK |
default |
| Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, Claude Platform on AWS или сеанс подписанного Claude apps gateway | default |
| План Pro, Max или Team, в терминале или через расширение VS Code | auto |
| План Enterprise или ключ API Claude Console | default |
Когда получение флагов функций отключено или в первом сеансе после установки или обновления, где флаги ещё не прибыли, расширение VS Code игнорирует каждый файл параметров при выборе начального режима разрешений.
Когда флаг, файл параметров или встроенное значение по умолчанию выбирает auto, но режим auto недоступен для сеанса, Claude Code запускает сеанс в режиме Manual вместо этого. Режим auto недоступен, когда сеанс не соответствует требованиям доступности, таким как файл параметров, отключающий его, или модель, которая его не поддерживает, или когда Anthropic временно отключила его на стороне сервера.
В первый раз, когда встроенное значение по умолчанию запускает один из ваших сеансов в режиме auto, Claude Code показывает уведомление, которое ссылается на эту страницу:
- В терминале один раз в верхней части сеанса
- В расширении VS Code как карточка на экране нового разговора, которая остаётся до тех пор, пока вы её не закроете
На планах Pro, Max и Team, если ваш ~/.claude/settings.json устанавливает defaultMode отличный от auto и ни один другой файл параметров не устанавливает его, ваши сеансы продолжают запускаться в этом режиме. Claude Code спрашивает один раз в терминале или в расширении VS Code, следует ли изменить параметр на режим auto. Если вы отклоните, ваш параметр остаётся как есть.
Начните в другом режиме разрешений
Вы можете установить начальный режим разрешений для одного сеанса или как значение по умолчанию для каждого сеанса на машине, в проекте или в организации. Когда более одного файла параметров устанавливает permissions.defaultMode, приоритет параметров решает, поэтому значение проекта или управляемое значение превосходит ~/.claude/settings.json. Чтобы изменить режим разрешений уже работающего сеанса, см. Переключение режимов разрешений.
| Чтобы установить начальный режим разрешений для | Сделайте это |
|---|---|
| Один сеанс, который вы собираетесь запустить | Передайте режим разрешений как флаг, например claude --permission-mode default |
| Каждый сеанс терминала, который вы запускаете на этой машине | Установите permissions.defaultMode в ~/.claude/settings.json. Для того, что читает расширение VS Code, см. Переключение режимов разрешений |
| Каждый сеанс терминала, который вы запускаете в одном проекте | Установите permissions.defaultMode в .claude/settings.json проекта. Сеансы, которые вы запускаете в терминале, соблюдают каждое значение, кроме auto и bypassPermissions; сеансы, которые запускает расширение VS Code, не читают параметры проекта для начального режима разрешений |
| Каждый сеанс терминала в вашей организации | Установите permissions.defaultMode в управляемые параметры. Сеансы терминала запускаются в этом режиме, и люди по-прежнему могут переключиться на режим auto; для того, что читает расширение VS Code, см. Переключение режимов разрешений. Чтобы удалить режим auto, чтобы никто не мог его выбрать, установите permissions.disableAutoMode на "disable" вместо этого |
Этот пример делает каждый сеанс терминала на вашей машине начинающимся в режиме Manual, чьё значение конфигурации — default. Сохраните его в ~/.claude/settings.json:
{
"permissions": {
"defaultMode": "default"
}
}
Следующий сеанс, который вы запускаете, показывает ⏸ manual mode on в строке состояния.
Переключение режимов разрешений
Каждый интерфейс имеет свой элемент управления для переключения режимов разрешений во время сеанса и свой способ выбора режима разрешений, в котором начинаются новые сеансы. Выберите ваш интерфейс, чтобы увидеть его элементы управления.
Во время сеанса: нажмите Shift+Tab для циклического переключения режимов разрешений. Из auto первое нажатие переключается на default, и цикл затем выполняется default → acceptEdits → plan → обратно на default. Дополнительные режимы, описанные ниже, вставляются после plan. Строка состояния показывает активный режим как серый ⏸ manual mode on для default, или как ⏵⏵ accept edits on, ⏸ plan mode on, ⏵⏵ auto mode on, ⏵⏵ don't ask on или ⏵⏵ bypass permissions on.
Не все режимы находятся в цикле по умолчанию:
auto: появляется, когда режим auto доступен; циклическое переключение на него переключает режимы без подтверждающего запросаbypassPermissions: появляется после запуска с--permission-mode bypassPermissions,--dangerously-skip-permissions,--allow-dangerously-skip-permissionsилиpermissions.defaultMode: "bypassPermissions"в пользовательских,--settingsили управляемых параметрах. Вариант--allow-добавляет режим разрешений в цикл без активацииdontAsk: никогда не появляется в цикле; установите его с помощью--permission-mode dontAsk
Включённые дополнительные режимы вставляются после plan, с bypassPermissions первым и auto последним. Если у вас включены оба, вы будете циклически переключаться через bypassPermissions на пути к auto.
Из запроса разрешения Bash: в режимах разрешений Manual и acceptEdits, когда режим auto доступен, Claude Code добавляет Да, и переключиться на режим auto к запросу разрешения команды Bash. Выберите его, чтобы одобрить команду и переключить сеанс на режим auto. Запросы инструмента PowerShell не предлагают опцию. Требует Claude Code v2.1.247 или позже.
Claude Code не добавляет опцию к запросам, вынужденным одним из ваших правил ask или hook, потому что режим auto по-прежнему показывает вам эти запросы, поэтому переключение их не удалит.
При запуске: передайте режим разрешений как флаг.
claude --permission-mode plan
Как значение по умолчанию: установите permissions.defaultMode в область, которую вы хотите, как описано в Начните в другом режиме разрешений.
Тот же флаг --permission-mode работает с -p для неинтерактивных запусков.
Во время сеанса: нажмите индикатор режима в нижней части поля подсказки. Он использует эти метки для режимов на этой странице:
| Метка пользовательского интерфейса | Режим |
|---|---|
| Manual | default |
| Edit automatically | acceptEdits |
| Plan | plan |
| Auto | auto |
| Bypass permissions | bypassPermissions |
Как значение по умолчанию: чтобы закрепить режим разрешений, в котором начинаются разговоры, установите claudeCode.initialPermissionMode в параметры пользователя VS Code на default, manual, acceptEdits, plan или bypassPermissions. Параметр не принимает auto; чтобы начать в режиме Auto, оставьте его неустановленным и выберите Auto из индикатора режима один раз, как описано в пункте 2 ниже. Расширение запускает каждый новый разговор в первом из них, который применяется:
claudeCode.initialPermissionMode- Режим, который вы последний раз выбрали из индикатора режима, если это был Manual, Edit automatically или Auto. Выбор Plan или Bypass permissions применяется только к этому разговору
permissions.defaultModeиз управляемых параметров или~/.claude/settings.json, на планах Pro, Max и Team с доступным получением флагов функций- Встроенное значение по умолчанию для вашего плана, поставщика и параметров организации
Расширение никогда не читает .claude/settings.json или .claude/settings.local.json проекта для начального режима разрешений, и в разговорах, которые не соответствуют условиям пункта 3, он вообще не читает файл параметров. Когда установлен claudeCode.claudeProcessWrapper, пункты 3 и 4 также не применяются: эти разговоры начинаются в режиме Manual, если пункт 1 или пункт 2 не устанавливает режим разрешений.
Auto появляется в индикаторе режима, когда режим auto доступен.
Bypass permissions требует переключателя Allow dangerously skip permissions в параметрах расширения. Без него режим разрешений не появляется в индикаторе, и значение bypassPermissions из пункта 1 или пункта 3 запускает разговор в режиме Manual вместо этого. Auto из любого пункта аналогично запускает разговор в режиме Manual, когда режим auto недоступен.
Подробности, специфичные для расширения, см. в руководстве VS Code.
Плагин JetBrains запускает Claude Code в терминале IDE, поэтому переключение режимов разрешений работает так же, как в CLI: нажмите Shift+Tab для циклического переключения или передайте --permission-mode при запуске.
Во время сеанса: на вкладке Code используйте селектор режима рядом с кнопкой отправки. Не все режимы появляются в селекторе:
- Auto: появляется, когда режим auto доступен
- Bypass permissions: требует переключателя Allow bypass permissions mode в параметрах Desktop на планах Pro и Max; на планах Team и Enterprise политика организации контролирует это вместо этого
Вкладка Cowork не использует эти режимы. Cowork имеет свои собственные режимы разрешений, включённые отдельно, и вкладка Cowork вообще не показывает селектор режима до тех пор, пока режим, выходящий за пределы его значения по умолчанию, не будет включен для вашей учётной записи. См. документацию Cowork.
Для деталей, специфичных для desktop, см. Выбор режима разрешений в руководстве Desktop.
Как значение по умолчанию: установите defaultMode в параметры. Приложение desktop читает те же файлы параметров, что и CLI, и применяет режим разрешений к новым локальным сеансам.
Режим, который вы выбираете в селекторе режима, запоминается для каждой папки и имеет приоритет над defaultMode для этой папки. Plan является исключением: его выбор применяется только к текущему сеансу.
Для того, где defaultMode идёт в файл параметров, см. пример в Начните в другом режиме разрешений.
Используйте раскрывающееся меню режима рядом с полем подсказки на claude.ai/code или в мобильном приложении. Запросы разрешений появляются в claude.ai для одобрения. Какие режимы появляются, зависит от того, где выполняется сеанс:
- Облачные сеансы на Claude Code в веб-версии: Accept edits, Plan и Auto. Accept edits соответствует режиму
default: облачные сеансы предварительно одобряют редактирование файлов независимо от режима, поэтому раскрывающееся меню показывает Accept edits вместо Manual. Облачные сеансы по-прежнему соблюдаютdefaultMode: "acceptEdits"из параметров. Auto mode появляется только когда ваша организация это разрешает и выбранная модель это поддерживает. Bypass permissions недоступен. - Сеансы Remote Control на вашем локальном компьютере: Manual, Accept edits и Plan. Вы не можете выбрать Auto или Bypass permissions из приложения.
- За исключением Bypass permissions, раскрывающееся меню показывает режим разрешений, в котором находится локальный сеанс, включая режим, установленный из терминала. Оно обновляется, когда режим разрешений изменяется в приложении или в терминале. Сеанс никогда не сообщает Bypass permissions в claude.ai, поэтому переключение на него из терминала не изменяет то, что показывает раскрывающееся меню.
- Сеансы, размещённые настольным приложением или расширением VS Code, сообщают изменения режима разрешений в claude.ai по мере их возникновения, так же как сеансы, размещённые в терминале.
- До v2.1.202 сеансы, подключённые с помощью
/remote-controlилиclaude --remote-control, вообще не сообщали свой режим разрешений, поэтому claude.ai и мобильное приложение могли показывать режим разрешений, в котором сеанс не находился. Несоответствие влияло только на метку. Claude Code генерировал запросы разрешений из фактического режима разрешений сеанса, и они по-прежнему появлялись в приложении для одобрения.
Для Remote Control локальная машина, запускающая сеанс, должна быть подписана с вашей учётной записью claude.ai; ключи API не поддерживаются. Вы также можете установить начальный режим разрешений при запуске этого локального сеанса:
claude remote-control --permission-mode acceptEdits
Автоматическое одобрение редактирования файлов с режимом acceptEdits
Режим acceptEdits позволяет Claude создавать и редактировать файлы в вашем рабочем каталоге без запроса. Строка состояния показывает ⏵⏵ accept edits on, пока этот режим активен.
В дополнение к редактированию файлов, режим acceptEdits автоматически одобряет распространённые команды Bash файловой системы: mkdir, touch, rm, rmdir, mv, cp и sed. Эти команды также автоматически одобряются при префиксе с безопасными переменными окружения, такими как LANG=C или NO_COLOR=1, или обёртками процессов, такими как timeout, nice или nohup. Как и редактирование файлов, автоматическое одобрение применяется только к путям внутри вашего рабочего каталога или additionalDirectories. Пути вне этой области, записи в защищённые пути, удаления rm и rmdir, нацеленные на критический путь, и все остальные команды Bash, кроме встроенного набора только для чтения, по-прежнему требуют запроса.
Когда инструмент PowerShell включен, режим acceptEdits также автоматически одобряет Set-Content, Add-Content, Clear-Content и Remove-Item на путях в области действия, вместе с их распространёнными псевдонимами. Применяются те же правила области действия и защищённых путей, и Remove-Item получает свою собственную проверку. Позиционный аргумент, содержащий символ кавычки, такой как апостроф в Set-Content .\notes.txt "It's done", по-прежнему требует запроса даже на путях в области действия, потому что Claude Code не может статически проверить аргумент, чьи цитируемые и нецитируемые прочтения отличаются. Передайте содержимое через именованный параметр, такой как -Value, чтобы избежать запроса.
Используйте acceptEdits, когда вы хотите проверить изменения в вашем редакторе или через git diff после того, как они будут сделаны, а не одобрять каждое редактирование в строке.
Нажмите Shift+Tab один раз из режима Manual, чтобы войти в него, или запустите его напрямую:
claude --permission-mode acceptEdits
Анализируйте перед редактированием с режимом plan
Режим Plan указывает Claude исследовать и предложить изменения без их внесения. Claude читает файлы, запускает команды оболочки для исследования и пишет план, но не редактирует ваш исходный код. За исключением сеансов с доступными разрешениями на обход, редактирования остаются заблокированными до тех пор, пока вы не одобрите план.
Когда режим auto доступен и параметр useAutoModeDuringPlan включен, что является значением по умолчанию, классификатор проверяет команды оболочки во время планирования вместо запроса у вас. Одобренные команды выполняются, и отклонённые блокируются. В противном случае команды вне встроенного набора только для чтения требуют одобрения, включая когда режим auto-allow песочницы включен. В сеансах с доступными разрешениями на обход ни классификатор, ни запрос не применяются к командам планирования; Пропустить все проверки с режимом bypassPermissions охватывает несколько вещей, которые по-прежнему требуют запроса там. В v2.1.212 через v2.1.217 сеансы без доступных разрешений на обход требовали запроса для каждой команды вне набора только для чтения, независимо от того, был ли доступен режим auto.
Войдите в режим plan, нажав Shift+Tab или добавив префикс к одной подсказке с /plan. Вы также можете запустить в режиме plan из CLI:
claude --permission-mode plan
Нажмите Shift+Tab снова, чтобы выйти из режима plan без одобрения плана.
Проверьте и одобрите план
Когда план готов, Claude представляет его и спрашивает, как действовать дальше. Из этого запроса вы можете выбрать:
- Да, и использовать режим auto: одобрить и запустить в режиме auto. Когда режим auto недоступен, эта опция читается как Да, автоматически принять редактирование. Если вы запустили сеанс с включёнными разрешениями на обход, опция читается как Да, и переключиться на BYPASS PERMISSIONS (без дальнейших запросов) для этого сеанса вместо этого.
- Да, вручную одобрить редактирование: одобрить и проверить каждое редактирование отдельно.
- Нет, продолжить планирование: остаться в режиме plan и сказать Claude, что изменить.
Одобрение плана выходит из режима plan и переключает сеанс на режим разрешений, который описывает каждая опция одобрения, поэтому Claude начинает редактирование. Чтобы снова планировать, вернитесь в режим plan с помощью Shift+Tab или добавьте префикс к следующей подсказке с /plan.
Нажмите Ctrl+G, чтобы открыть предложенный план в текстовом редакторе по умолчанию и отредактировать его непосредственно перед тем, как Claude продолжит. Когда включена опция showClearContextOnPlanAccept, список получает первую опцию, которая одобряет план и очищает контекст планирования.
Принятие плана также даёт сеансу сгенерированное название на основе плана, если вы уже не назвали сеанс.
Установите режим plan как значение по умолчанию
Чтобы сделать режим plan значением по умолчанию для сеансов терминала проекта, установите defaultMode на plan в .claude/settings.json, размещённый как пример в Начните в другом режиме разрешений показывает. Разговоры, которые расширение VS Code запускает, не читают параметры проекта для начального режима разрешений. Там установите claudeCode.initialPermissionMode на plan в параметрах пользователя VS Code вместо этого.
Исключите запросы разрешений с режимом auto
Режим auto позволяет Claude выполнять действия без обычных запросов разрешений. Отдельная модель классификатора проверяет действия перед их выполнением, блокируя всё, что выходит за пределы вашего запроса, нацелено на неизвестную инфраструктуру или кажется вызванным враждебным содержимым, которое Claude прочитал. Явные правила ask по-прежнему вынуждают запрос.
На планах Pro, Max и Team режим auto — это встроенный начальный режим разрешений.
Классификатор также проверяет каждое сообщение, которое Claude отправляет другому агенту с помощью SendMessage, будь то простой текст или структурированное сообщение команды агентов, перед тем как Claude Code его доставляет, как в режиме auto, так и в режиме plan, пока классификатор проверяет команды; проверка отправки требует Claude Code v2.1.222 или позже.
Классификатор также проверяет и одобряет или блокирует удаления rm и rmdir, нацеленные на критический путь, такие как rm -rf / и rm -rf ~, включая когда удаление находится внутри подстановки команд или подстановки процесса.
Режим auto также побуждает Claude продолжать работу без остановки для уточняющих вопросов, хотя Claude по-прежнему спрашивает, когда ваш запрос или навык явно на этом полагается. Для более сильного автономного поведения в режиме, который по-прежнему запрашивает вас, установите Proactive output style вместо этого.
Режим auto уменьшает запросы разрешений, но не гарантирует безопасность. Используйте его для задач, в которых вы доверяете общему направлению, а не как замену проверке чувствительных операций.
Режим auto доступен только когда ваша учётная запись соответствует всем этим требованиям:
- План: Все планы.
- Организация: на Team и Enterprise режим auto доступен по умолчанию. Администраторы могут отключить его для организации, установив
permissions.disableAutoModeна"disable"в управляемых параметрах. - Модель: на Anthropic API и Claude Platform on AWS, Claude Opus 4.6 или позже, Sonnet 4.6 или позже, или модель Fable. На Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry и подписанных сеансах Claude apps gateway, только Claude Sonnet 5, Opus 4.7 или позже и модели Fable. Более старые модели, включая Sonnet 4.5, Opus 4.5, Haiku и модели claude-3, не поддерживаются ни на одном поставщике.
- Поставщик: доступен по умолчанию на Anthropic API, Claude Platform on AWS, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry и подписанных сеансах Claude apps gateway.
Если Claude Code сообщает, что режим auto недоступен, сначала проверьте эти требования и не устанавливает ли какой-либо файл параметров disableAutoMode. Anthropic также может отключить режим auto на стороне сервера, или сервер может отклонить режим auto для вашей учётной записи. Сеанс, который получил любой из этих ответов, держит режим auto отключённым до конца сеанса, поэтому запустите новый сеанс позже.
Отдельное сообщение, которое называет модель и говорит, что режим auto "не может определить безопасность" действия, означает, что запрос классификатора не удался. Этот сбой обычно временный, но на Amazon Bedrock он может повторяться до тех пор, пока ваша учётная запись не сможет вызывать названную модель. См. справку по ошибкам для причин и что делать.
Если вы установили defaultMode: "auto" в параметры и сеанс терминала запускается в режиме Manual без ошибки, параметр, вероятно, находится в .claude/settings.json или .claude/settings.local.json. auto не вступает в силу из этих файлов. Переместите его в ~/.claude/settings.json. Для разговора, который запустило расширение VS Code, проверьте собственный список расширения в Переключение режимов разрешений вместо этого.
Режим auto на Bedrock, Agent Platform или Foundry
На Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry и подписанных сеансах Claude apps gateway, режим auto появляется в цикле Shift+Tab по умолчанию. Появление в цикле не изменяет режим разрешений, в котором начинается сеанс: на этих поставщиках сеансы терминала начинаются в вашем defaultMode, который является Manual, если вы его не измените, и разговоры в расширении VS Code начинаются в режиме Manual, если claudeCode.initialPermissionMode или режим, который вы выбрали в расширении, не устанавливает один. На этих поставщиках поддерживаются только Claude Sonnet 5, Opus 4.7 или позже и модели Fable.
Чтобы сделать режим auto начальным режимом разрешений по умолчанию, установите "permissions": {"defaultMode": "auto"} в пользовательские или управляемые параметры. В сеансах, которые запускает расширение VS Code, выберите Auto из индикатора режима вместо этого. Переключение режимов разрешений охватывает то, что превосходит этот выбор.
Проверка /doctor предлагает этот пользовательский параметр по умолчанию на этих поставщиках так же, как на Anthropic API.
Чтобы предотвратить использование режима auto разработчиками, установите disableAutoMode на "disable" в управляемых параметрах. Это удаляет auto из цикла Shift+Tab, и сеанс, запущенный с --permission-mode auto, запускается в режиме Manual вместо этого. Сеанс, уже работающий в режиме auto, покидает его, когда параметр достигает этого сеанса из источника, развёрнутого администратором, и показывает auto mode disabled by settings. До v2.1.251 работающий сеанс держал режим auto до конца.
В v2.1.158 через v2.1.206 режим auto был отключён на этих поставщиках до тех пор, пока вы не установили CLAUDE_CODE_ENABLE_AUTO_MODE=1, и Claude Code игнорировал defaultMode: "auto" на этих поставщиках, если переменная также не была установлена. Переменная по-прежнему принимается для совместимости и не имеет эффекта с v2.1.207 и далее.
Что классификатор блокирует по умолчанию
Классификатор доверяет вашему рабочему каталогу и удалённым репозиториям, которые были настроены для него при запуске сеанса. Удалённый репозиторий, добавленный или переориентированный во время сеанса с помощью git remote add или git remote set-url, не является доверенным, и всё остальное рассматривается как внешнее до тех пор, пока вы не настроите доверенную инфраструктуру. До v2.1.200 удалённые репозитории, добавленные в середине сеанса, также были доверенными.
Блокируется по умолчанию:
- Загрузка и выполнение кода, например
curl | bash - Отправка чувствительных данных на внешние конечные точки
- Развертывание и миграция в производство
- Массовое удаление в облачном хранилище
- Предоставление разрешений IAM или репозитория
- Изменение общей инфраструктуры
- Необратимое уничтожение файлов, которые существовали до начала сеанса
- Force push
- Коммит или отправка изменения, которое отправило бы секреты или чувствительные данные вне репозитория при его запуске, или расширило бы то, что развёртывание раскрывает. Это охватывает рабочий процесс CI или конфигурацию развёртывания, которая передаёт секрет месту назначения, которое его ещё не получает, скрипт или шаг настройки, который читает хранилище секретов и отправляет данные, и изменение конфигурации, которое расширяет то, что развёртывание публикует, такое как реестр, видимость, артефакт или параметр sourcemap. Проверка применяется на любой ветви, применяется даже когда репозиторий является общедоступным, и срабатывает, когда изменение приземляется, независимо от того, запускает ли это конвейер; очистка требует назвать эффект выполнения, а не только коммит или отправку. До v2.1.211 эта проверка была ограничена ветвью по умолчанию вместо этого: отправка туда была заблокирована, когда она несла чувствительное содержимое, изменения скрытые или неправильно описанные относительно того, что вы просили, содержимое перенесённое из-за пределов репозитория или обходящее проверку, которую вы просили
git reset --hard,git checkout -- .,git restore .,git clean -fd,git stash dropилиgit stash clear, которые классификатор предполагает отбросят незафиксированные измененияgit commit --amend, когда коммит в HEAD не был создан в этом сеансе- От v2.1.198
git commit --amend, когда коммит в HEAD уже был отправлен. Переформулировка только сообщения не блокируется:--amend -mбез ничего вновь подготовленного, на коммите, который Claude создал во время этого сеанса terraform destroy,pulumi destroy,cdk destroyилиterragrunt destroy, и применение плана, который уничтожает ресурсы
Claude Code v2.1.195 и позже блокируют больше категорий по умолчанию. Несколько зависят от записей environment, таких как чувствительные удалённые цели и защищённые области IaC, которые вы можете сузить до конкретных имён.
- Запись в менеджер секретов или изменение записей DNS или сертификатов TLS
- Слияние pull request, который не одобрил ни один человек, одобрение собственного pull request Claude или отключение проверок CI
- Публикация комментария, который сам по себе является командой для автоматизации, такой как
atlantis applyили/deployили/mergeбота - Переключение, постепенное развёртывание или удаление флага функции в производстве
- Применение изменений инфраструктуры к защищённой области IaC или осушение и удаление узлов кластера
- Записи в общий вычислительный кластер, которые выходят за пределы названного вами ресурса, такие как селектор меток или
--all, который захватывает задания других пользователей - Создание ресурсов Kubernetes, которые работают на каждом узле или перехватывают трафик кластера, такие как DaemonSets и admission webhooks
- Интерактивные оболочки или port-forwards в чувствительную удалённую цель
- Открытие туннеля или обратной оболочки, которая делает локальный сервис доступным из общедоступного интернета
- Вывод живого учётного данного или токена в стенограмму или файл
- Доступ к местоположению, указанному как чувствительное местоположение данных в вашем environment, или копирование данных из одного. Начиная с v2.1.198 это также блокирует отправку данных из одного аудитории, которую запись исключает
- Маршрутизация установки пакета вокруг вашего внутреннего реестра пакетов в общедоступный реестр. Начиная с v2.1.198 это также применяется когда вы сказали Claude, что внутренний реестр или зеркало существует в разговоре, а не только когда один указан в вашем environment
- Запуск команды с флагом, который отключает защиту безопасности, например
--insecure - Запуск автономного цикла агента, который работает без одобрения человека или песочницы, такой как один запущенный с
--dangerously-skip-permissionsили--no-sandbox. Начиная с v2.1.198 это также охватывает запуск агента третьей стороны или eval harness с отключённой изоляцией и одобрением для каждого действия, такой как runner запущенный с--yes-always - Claude in Chrome действия браузера, которые могут отправлять содержимое страницы, файлы cookie или учётные данные за пределы источника
Claude Code v2.1.198 и позже также блокируют эти действия по умолчанию:
- Удаление файлов в
/tmp,$TMPDIRили другом общем каталоге scratch или cache по подстановочному знаку, glob или фильтру возраста, а не по конкретному названному пути - Включение чувствительных деталей в содержимое, отправленное, загруженное, опубликованное или написанное другим людям или общим системам, когда ваше собственное сообщение не авторизовало эти детали для этого получателя. Тела PR и issue, сообщения коммитов и комментарии считаются этим типом исходящего содержимого, когда репозиторий находится вне границы доверия или является общедоступным, включая собственные общедоступные репозитории вашей организации; внутренние пути файлов, кодовые имена, данные живого ответа API, такие как адреса электронной почты или идентификаторы учётных записей, и идентификаторы инфраструктуры считаются чувствительными деталями. Область действия PR, issue и сообщения коммита требует Claude Code v2.1.200 или позже. Живые личные данные из ответа API в теле PR или issue, такие как адрес электронной почты, идентификатор учётной записи или организации, или метрика использования, требуют, чтобы вы назвали эти детали и получателя независимо от видимости репозитория или границы доверия. Эта проверка требует Claude Code v2.1.203 или позже
- Отправка нажатий клавиш в собственную tmux pane Claude Code для управления его собственным интерфейсом, что классификатор рассматривает как Claude изменяющий свои собственные разрешения или надзор
Claude Code v2.1.200 и позже также блокируют эти действия по умолчанию:
- Комментирование, удаление или принудительное прохождение теста или утверждения, которое защищает поведение безопасности, такое как аутентификация, контроль доступа, валидация входных данных или песочница
- Удаление или разборка ресурса с состоянием, который Claude не создал в сеансе, когда не применяется более конкретное правило удаления и вы не назвали этот ресурс
- Переориентация базового URL API, конечной точки прокси, получателя webhook или зеркала реестра на хост третьей стороны, который не соответствует задаче, включая в файлы примеров, такие как
.env.example - Изменение того, куда идут отправки, с помощью
git remote set-urlилиgit remote add, если вы не назвали новый удалённый репозиторий - Отправка секретов или личных или доверенных данных в репозиторий, известный как общедоступный, или отправка туда конфиденциального материала, который не является частью собственной работы этого репозитория. Собственный предмет репозитория dotfiles — единственное исключение для личных или доверенных данных, и содержимое из приватного репозитория, достигающее любой общедоступной поверхности, блокируется таким же образом; оба уточнения требуют Claude Code v2.1.203 или позже. До v2.1.203 личные данные были сгруппированы с конфиденциальным материалом и блокировались только когда они не были частью собственной работы этого репозитория. Когда видимость репозитория не установлена, классификатор не блокирует только на этом основании; вместо этого он судит содержимое по другим правилам
- Открытие pull request против другого репозитория или организации, форк с помощью
gh repo forkили отправка в репозиторий третьей стороны, если вы не назвали эту внешнюю цель
Claude Code v2.1.203 и позже также блокируют эти действия по умолчанию:
- Содержимое из чувствительного локального хранилища или из файла, имя, путь или тип которого отмечает его как чувствительный, входящее в коммит, отправку, текст PR или issue, gist или paste, или публикацию пакета, если вы не назвали как источник, так и назначение. Стенограммы сеансов и журналы разговоров, папки конфигурации и учётных данных, такие как ключи SSH, облачные учётные данные, профили браузера и история оболочки, и экспорты пользовательских данных, все считаются, и приватность репозитория это не очищает
Claude Code v2.1.205 и позже также блокируют эти действия по умолчанию:
- Запись в стенограммы сеансов Claude Code, файлы истории
.jsonlв~/.claude/projects/или в ваш настроенный каталог конфигурации, прямо или через команду оболочки. Правило также охватывает строки метаданных, которые Claude Code добавляет к каждой записи стенограммы для своих собственных проверок. Чтение стенограммы не блокируется - Рекурсивное принудительное удаление, такое как
rm -rf "$VAR"илиRemove-Item -Recurse -Force $dir, чей целевой объект — переменная оболочки, или glob с корнем в одной, которая не назначена нигде в разговоре, который видит классификатор. Значение поступило только из более ранних выходных данных команды, которые классификатор никогда не получает, поэтому классификатор не может проверить целевой объект удаления по другим правилам удаления. Блокировка очищается, когда вы называете точный удаляемый путь, или когда Claude повторно запускает удаление с разрешённым буквальным путём, написанным в команду. Удаления, чей целевой объект классификатор может разрешить, не затронуты. ЦелиRemove-Item, которые являются голым*или заканчиваются на/*или\*, никогда не достигают классификатора: Claude Code отклоняет их сразу
Claude Code v2.1.257 и позже также блокируют эти действия по умолчанию:
- Запрос учётных данных из конечной точки метаданных облачного экземпляра, такой как
169.254.169.254, или явная аутентификация облачного, кластерного или реестрового вызова с собственным удостоверением сервис-аккаунта или узла машины - Достижение общедоступного хоста маршрутом, отличным от прямого запроса, такой как туннель, обратная оболочка или конфигурация resolver или proxy, переписанная на указание вне
- Чтение учётных данных, которые принадлежат хосту, а не вашей задаче, такие как сертификаты узла или auth реестра контейнеров узла
- Подключение к или сканирование соседних контейнеров, pods или виртуальных машин, которые Claude не запустил, или узла под контейнером
Если Claude Code работает где-то, что предназначено для разрешения одного из них, опишите эту конфигурацию в записи Host containment в autoMode.environment.
Claude Code v2.1.261 и позже также блокируют эти действия по умолчанию:
- Публикация или запись ссылки на общедоступный paste, диаграмму или сервис обмена данными в сообщение, текст PR или issue, документ или где-либо ещё, где ссылка будет открыта или получена, когда сам URL несёт обмениваемое содержимое, если вы не назвали этот сервис
Разрешается по умолчанию:
- Локальные операции с файлами в вашем рабочем каталоге
- Установка зависимостей, объявленных в ваших файлах блокировки или манифестах
- Чтение
.envи отправка учётных данных на соответствующий API - Запросы HTTP только для чтения
- Отправка на любую ветвь репозитория, в котором вы работаете, включая ветвь по умолчанию. Ветвь, не являющаяся ветвью по умолчанию, чьё имя отмечает её как цель развёртывания или публикации, такая как
productionилиgh-pages, не охватывается: классификатор судит отправку туда на её собственных условиях. Содержимое отправки по-прежнему проверяется по другим правилам, правилаpermissions.denyпо-прежнему могут блокировать команды push как написано в каждом режиме, и защита ветвей самого удалённого репозитория по-прежнему применяется. До v2.1.211 только отправки на ветвь, с которой вы начали, ветви, созданные Claude, и обычные отправки на ветвь по умолчанию были разрешены по умолчанию, и до v2.1.203 любая прямая отправка на ветвь по умолчанию была заблокирована
Claude Code v2.1.195 и позже также разрешают эти действия по умолчанию:
- Удаление точных задач, которые Claude создал ранее в том же сеансе
- Чтение, проверка или написание кода, конфигов и моделей угроз, связанных с безопасностью, как часть вашей задачи
- Сообщения между агентами, работающими вместе в одном многоагентном сеансе
- Отправка данных на доверенные домены, корзины и сервисы, которые вы указываете в
environment. Это охватывает только поток данных, а не деструктивные или операции с учётными данными на той же инфраструктуре - Claude in Chrome навигация на доверенный внутренний домен, localhost или URL, который вы назвали
Запросы доступа к сети в песочнице маршрутизируются через классификатор, а не разрешаются по умолчанию. Начиная с v2.1.198 классификатор повторно использует свой вердикт для сетевого хоста и порта вместо повторного запуска при каждом подключении:
- Разрешение повторно используется до тех пор, пока в разговор не поступит новое содержимое, в этот момент этот хост проверяется снова
- Claude Code v2.1.234 и позже повторно используют отказ, вызванный окном контекста классификатора, переполняющимся до тех пор, пока новое содержимое не поступит в разговор, или до тех пор, пока компактирование не сожмёт то, что видит классификатор. Claude Code затем проверяет хост снова
- Отказ, который классификатор достиг путём оценки запроса, длится для хода в интерактивном CLI. В неинтерактивном режиме и сеансах Agent SDK Claude Code повторно использует этот отказ для остальной части запуска, потому что эти сеансы не имеют границы хода
- Изменение вашего режима разрешений или правил отбрасывает все кэшированные вердикты
Запустите claude auto-mode defaults, чтобы вывести полные списки правил как JSON. Если обычные действия блокируются, администратор может добавить доверенные репозитории, корзины и сервисы через параметр autoMode.environment: см. Настройка режима auto.
Отправка на любую ветвь репозитория, в котором вы работаете, и создание pull request, который соответствует вашему запросу, выполняются без запроса, если только отправка или pull request не попадают под список блокировок, такой как секреты или чувствительные данные, покидающие репозиторий, или pull request, нацеленный на другой репозиторий или организацию. Чтобы требовать контрольную точку человека перед этими командами, оставаясь в режиме auto, добавьте правила permissions.ask, которые соответствуют команде как написано: см. Общие границы.
Первое чтение вне рабочих каталогов
Пока permissions.blockReadsOutsideWorkingDirectories отключено, чтение файлов выполняется без запроса в режиме auto, включая чтение вне рабочих каталогов. В первый раз, когда Claude использует инструмент Read, Grep или Glob на пути вне них, Claude Code спрашивает вас, следует ли продолжать разрешать эти чтения.
Запрос не появляется в неинтерактивных запусках -p или фоновых сеансах; чтения там выполняются как раньше.
Что бы вы ни ответили, Claude продолжает работать:
- Продолжить разрешение: чтение выполняется, более поздние чтения вне рабочих каталогов выполняются как раньше, и Claude Code записывает ваш ответ, чтобы запрос не появился снова
- Блокировать с этого момента: чтение отклоняется, и Claude Code устанавливает
permissions.blockReadsOutsideWorkingDirectoriesнаtrueв ваши пользовательские параметры, что делает инструменты файлов отклоняющими такие чтения в каждом более позднем сеансе и каждом режиме разрешений. Чтобы позволить Claude читать такой путь позже, добавьте его каталог с/add-dirили удалите параметр. - Спросить снова в следующий раз: чтение отклоняется, и следующее чтение вне рабочих каталогов запрашивает снова
Границы, которые вы указываете в разговоре
Классификатор рассматривает границы, которые вы указываете в разговоре, как сигнал блокировки. Если вы скажете Claude "не отправляй" или "подожди, пока я проверю перед развёртыванием", классификатор блокирует соответствующие действия даже когда правила по умолчанию их разрешили бы. Граница остаётся в силе до тех пор, пока вы её не снимете в более позднем сообщении. Собственное суждение Claude о том, что условие было выполнено, не снимает его.
Границы не хранятся как правила. Классификатор перечитывает их из стенограммы при каждой проверке, поэтому граница может быть потеряна, если компактирование контекста удалит сообщение, которое её указало. Для жёсткой гарантии добавьте правило deny вместо этого.
Когда режим auto откатывается
Когда режим auto не может одобрить действия вашего сеанса, что происходит, зависит от случая:
- Заблокированное действие: Claude Code показывает уведомление и перечисляет действие в
/permissionsна вкладке Recently denied, где вы можете нажатьr, чтобы повторить его с ручным одобрением. Когда классификатор производит нет вердикта на действие, потому что проверка безопасности, отдельная от режима auto, отклонила запрос классификатора или его ответ не был разобран, Claude Code отклоняет действие без уведомления или записи Recently denied. - Повторные блокировки: если классификатор блокирует действие 3 раза подряд или 20 раз всего, режим auto приостанавливается и Claude Code возобновляет запрос. Одобрение запрашиваемого действия возобновляет режим auto. Эти пороги не настраиваются. Любое разрешённое действие сбрасывает счётчик последовательных блокировок, в то время как счётчик всего сохраняется для сеанса и сбрасывается только когда его собственный лимит вызывает откат. Claude Code не считает отказ к любому пороговому значению, когда проверка безопасности, отдельная от режима auto, отклоняет запрос классификатора; связанная запись охватывает, как Claude Code обрабатывает эти отказы.
- Сеансы, которые не могут запрашивать: неинтерактивный запуск
-pбез--permission-prompt-toolне имеет запроса для отката. Когда повторные блокировки достигают порога, действие не выполняется и Claude продолжает работу. То же самое применяется, когда проверка безопасности, отдельная от режима auto, отклоняет запрос классификатора. Claude Code не останавливает запуск ни в одном случае. - Переключение режима во время проверки: если вы переключите режимы разрешений, пока проверка классификатора ожидает, Claude Code отбрасывает вердикт, который новый режим не запросил бы, вместо применения его: вы запрашиваетесь для одобрения вместо этого, или действие автоматически отклоняется в режиме
dontAsk.
Повторные блокировки обычно означают, что классификатор не имеет контекста о вашей инфраструктуре. Используйте /feedback для сообщения о ложных срабатываниях, или попросите администратора настроить доверенную инфраструктуру.
1. Действия, соответствующие вашим [правилам allow, ask или deny](/docs/ru/permissions#manage-permissions), разрешаются немедленно. Записи в [защищённые пути](#protected-paths) маршрутизируются классификатору даже когда правило allow совпадает, и так же удаления `rm` и `rmdir`, нацеленные на [критический путь](#critical-paths) в Claude Code v2.1.218 и позже. Инструменты MCP, отмеченные [`requiresUserInteraction`](/docs/ru/mcp#require-approval-for-a-specific-tool), запрашивают вас напрямую даже когда правило allow совпадает, и так же инструменты соединителя [ваша организация установила на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools) в сеансах, где это параметр достигает Claude Code. Правила ask, которые совпадают на содержимом команды, такие как `Bash(git push *)`, откатываются к запросу разрешения
2. Действия только для чтения и редактирование файлов в вашем рабочем каталоге автоматически одобряются, кроме записей в [защищённые пути](#protected-paths) и [первого чтения вне рабочих каталогов](#first-read-outside-the-working-directories), которое запрашивает вас
3. Всё остальное идёт классификатору. Инструменты соединителя и `requiresUserInteraction` инструменты MCP, которые запрашивают вас напрямую на шаге 1, никогда не достигают классификатора, поэтому ни одобрение, требуемое организацией, ни шаг согласия не одобряются автоматически
4. Если классификатор блокирует, Claude получает причину и пытается найти альтернативу. В большинстве сеансов причина — это фиксированный текст `Blocked by classifier` вместо письменного объяснения, в Claude Code v2.1.208 и позже; см. [Проверка отказов](/docs/ru/auto-mode-config#review-denials)
При входе в режим auto широкие правила allow, которые предоставляют произвольное выполнение кода, отбрасываются:
* Неограниченный `Bash(*)` или `PowerShell(*)`
* Подстановочные интерпретаторы, такие как `Bash(python*)`
* Команды запуска менеджера пакетов
* Правила `Agent` allow
* [`Monitor`](/docs/ru/tools-reference#monitor-tool) правила allow, потому что Claude Code запускает команды Monitor через оболочку
Узкие правила, такие как `Bash(npm test)`, переносятся. Claude Code восстанавливает отброшенные правила при выходе из режима auto. До v2.1.236 Claude Code оставлял правила `Monitor` allow в силе в режиме auto, поэтому правило, которое совпадало со всем инструментом, одобряло команды Monitor без проверки классификатора.
Claude Code также запускает `git status` сам перед командой, которая отбросила бы незафиксированную работу, такой как `git reset --hard` или `rm -rf`, и показывает классификатору, присутствует ли подготовленная, изменённая или неотслеживаемая работа. Claude Code сообщает неотслеживаемые файлы в этой проверке даже когда конфигурация git репозитория устанавливает `status.showUntrackedFiles=no`.
Классификатор видит сообщения пользователя, вызовы инструментов, отличные от чтения только для чтения, таких как чтение файлов и поиск, и содержимое вашего CLAUDE.md. Результаты инструментов удаляются, поэтому враждебное содержимое в файле или веб-странице не может манипулировать им напрямую. Вы можете аннотировать результат вызова с помощью поля [`classifierContext`](/docs/ru/hooks#annotate-a-result-for-the-auto-mode-classifier) hook `PostToolUse`, который классификатор читает как контекст, предоставленный приложением.
Отдельный зонд на стороне сервера сканирует входящие результаты инструментов и отмечает подозрительное содержимое перед тем, как Claude его прочитает. Для получения дополнительной информации о том, как эти слои работают вместе, см. [объявление режима auto](https://claude.com/blog/auto-mode) и [инженерный анализ](https://www.anthropic.com/engineering/claude-code-auto-mode).
Как режим auto обрабатывает подагентов
Классификатор проверяет работу подагента в трёх точках:
- Перед запуском подагента описание делегированной задачи оценивается, так что опасно выглядящая задача блокируется во время порождения.
- Пока подагент работает, каждое его действие проходит через классификатор с теми же правилами, что и родительский сеанс, и любой
permissionModeв frontmatter подагента игнорируется. - Когда подагент завершается, классификатор проверяет полную историю его действий; если эта проверка возврата выявляет проблему, предупреждение безопасности добавляется к результатам подагента. Когда отдельная проверка безопасности API отклоняет сам запрос проверки, Claude Code по-прежнему возвращает результаты подагента, предваренные предупреждением, что работа не проверена и должна рассматриваться как ненадёжная.
Шаг 1 требует Claude Code v2.1.178 или позже. Более ранние версии применяли классификатор на шагах 2 и 3, но не оценивали описание задачи перед запуском подагента.
Стоимость и задержка
Классификатор работает на Claude Sonnet 5 по умолчанию, а не на вашем выборе /model. Модель классификатора, которую Anthropic настраивает на стороне сервера, имеет приоритет над этим значением по умолчанию. Когда модель вашего сеанса — Claude Sonnet 4.6, или когда availableModels исключает Sonnet 5, классификатор работает на модели вашего сеанса вместо этого, или на модели Opus, когда сеанс работает на модели Fable; на поставщиках, отличных от Anthropic API, этот fallback Opus — модель Opus поставщика по умолчанию.
Первый запрос режима auto сеанса проверяет значение по умолчанию Sonnet 5: если запрос успешен, Sonnet 5 остаётся моделью классификатора сеанса, и если он не удаётся, потому что модель недоступна, сеанс использует fallback вместо этого. После того как эта проверка урегулируется, модель классификатора не изменяется для сеанса.
На планах Enterprise и на учётных записях, которые используют Claude API, Claude Platform on AWS, Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, вызовы классификатора учитываются в использовании токенов. Каждая проверка отправляет часть стенограммы плюс ожидающее действие, добавляя круговой путь перед выполнением. Чтение и редактирование рабочего каталога вне защищённых путей пропускают классификатор, поэтому накладные расходы поступают в основном от команд оболочки и сетевых операций.
Классификатор повторно использует вердикт песочницы для сетевого хоста и порта, поэтому повторные подключения к одному хосту не добавляют каждый раз проверку. Что классификатор блокирует по умолчанию описывает, как долго разрешение и отказ длятся.
Разрешить только предварительно одобренные инструменты с режимом dontAsk
Если вы установите режим dontAsk, Claude Code автоматически отклоняет каждый вызов инструмента, который иначе требовал бы запроса. Claude выполняет только действия, соответствующие вашим правилам permissions.allow, командам Bash только для чтения и вызовам, одобренным hook PreToolUse. Используйте этот режим для конвейеров CI или ограниченных сред, где вы предварительно определяете ровно то, что Claude может делать; сеанс никогда не ждёт ввода. Строка состояния показывает ⏵⏵ don't ask on, пока этот режим активен.
Claude Code отклоняет вызовы, соответствующие вашим явным правилам ask, а не запрашивает их. Он также отклоняет встроенный инструмент AskUserQuestion даже если ваши правила разрешения совпадают, и делает то же самое с инструментами соединителя ваша организация установила на ask в сеансах, где это параметр достигает Claude Code. Он отклоняет инструменты MCP, отмеченные _meta["anthropic/requiresUserInteraction"] таким же образом, потому что их карточка одобрения требует ответа, который этот режим никогда не собирает; это требует Claude Code версии 2.1.199 или позже.
Удаления rm и rmdir, нацеленные на критический путь, такие как rm -rf / и rm -rf ~, отклоняются даже когда правило разрешения совпадает с ними или hook PreToolUse их одобряет.
Облачные сеансы на Claude Code в веб-версии игнорируют defaultMode: "dontAsk"; см. bypassPermissions для получения подробной информации.
Установите его при запуске с флагом:
claude --permission-mode dontAsk
Пропустить все проверки с режимом bypassPermissions
Режим bypassPermissions отключает запросы разрешений и проверки безопасности, чтобы вызовы инструментов выполнялись немедленно, включая записи в защищённые пути.
Действия, которые ни один режим не одобряет по-прежнему требуют запроса в этом режиме.
Две гарантии обмена сообщениями между сеансами по-прежнему применяются в этом режиме, и в сеансах режима plan, где доступны разрешения на обход:
- Запрос одобрения
isolatePeerMachinesдля сообщений вашим сеансам за пределами этой машины по-прежнему появляется. - Когда не применяется значение
crossSessionInbound, Claude Code держит входящее сообщение от другого вашего сеанса для вашего одобрения и доставляет без запроса только когда отправляющий сеанс идентифицирует себя как также обходящий запросы разрешений. Если вы покидаете режим разрешений, пока сообщения удерживаются, Claude Code повторно применяет входящие правила и доставляет любое удерживаемое сообщение, которое они теперь принимают.
В сеансах с доступными разрешениями на обход Claude Code также не применяет блокировки режима plan. Claude по-прежнему инструктируется планировать без редактирования, но редактирование файла или команда оболочки, которую он пытается выполнить во время планирования, выполняется без запроса. Явные правила ask и удаления rm и rmdir, нацеленные на критический путь, по-прежнему требуют запроса.
Используйте этот режим только в изолированных средах, таких как контейнеры, виртуальные машины или dev containers без доступа в Интернет, где Claude Code не может повредить вашу хост-систему.
Вы не можете войти в bypassPermissions из сеанса, который вы запустили без него включённого. Включите его при запуске с permissions.defaultMode: "bypassPermissions" или с включающим флагом:
claude --permission-mode bypassPermissions
Флаг --dangerously-skip-permissions эквивалентен.
Claude Code отклоняет bypassPermissions в сеансе, который вы запускаете с --restricted. --restricted требует Claude Code v2.1.248 или позже.
В первый раз, когда вы запускаете интерактивный сеанс с этим режимом включённым, Claude Code показывает диалоговое окно предупреждения, просящее вас принять ответственность за действия, предпринятые без проверок разрешений. Claude Code сохраняет ваше принятие в пользовательские параметры, поэтому диалоговое окно появляется только один раз. Если вы отклоните, Claude Code выходит. В неинтерактивном режиме диалоговое окно не показывается, и фоновый сеанс, запущенный с --bg, отклоняется до тех пор, пока вы не приняли диалоговое окно в интерактивном сеансе.
На Linux и macOS Claude Code отклоняет запуск в этом режиме при запуске от пользователя root или под sudo:
--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons
Проверка пропускается автоматически внутри признанной песочницы. Чтобы запустить автономно в контейнере, используйте конфигурацию dev container, которая запускает Claude Code от непривилегированного пользователя.
Claude Code в веб-версии не учитывает defaultMode: "bypassPermissions" или "dontAsk" из ваших файлов параметров, поэтому проверенные в репозитории параметры не могут запустить облачный сеанс в режиме bypass-permissions. Параметр игнорируется молча, и сеанс запускается в режиме разрешений, показанном в селекторе режима вместо этого. См. Переключение режимов разрешений для информации о том, какие режимы предлагают облачные сеансы.
bypassPermissions не обеспечивает защиту от инъекции подсказок или непредвиденных действий. Для фоновых проверок безопасности с гораздо меньшим количеством запросов разрешений используйте режим auto вместо этого. Администраторы могут заблокировать этот режим, установив permissions.disableBypassPermissionsMode на "disable" в управляемых параметрах.
Защищённые пути
Записи в небольшой набор путей никогда не одобряются автоматически, кроме режима bypassPermissions и сеансов планирования с доступными разрешениями на обход. Это предотвращает случайное повреждение состояния репозитория и собственной конфигурации Claude.
| Режим | Записи в защищённые пути |
|---|---|
default, acceptEdits |
Требуют подтверждения |
plan |
Разрешены в сеансах с доступными разрешениями на обход. В противном случае маршрутизируются классификатору, когда режим auto доступен во время планирования, и требуют подтверждения, когда он не доступен |
auto |
Маршрутизируются классификатору |
dontAsk |
Отклоняются |
bypassPermissions |
Разрешены |
В сеансе, запущенном с --restricted, который требует Claude Code v2.1.248 или позже, классификатор не может одобрить записи в защищённые пути.
Правила permissions.allow в файлах параметров не предварительно одобряют записи в защищённые пути. Проверка безопасности выполняется до того, как Claude Code оценивает правила allow из параметров, поэтому запись вроде Edit(.claude/**) в ~/.claude/settings.json или .claude/settings.json не изменяет результат для каждого режима в таблице выше. В режимах, которые требуют подтверждения, запрос для записи .claude/ предлагает Да, и разрешить Claude редактировать свои собственные параметры для этого сеанса, что одобряет более поздние записи .claude/ в этом сеансе без повторного запроса.
Защищённые каталоги:
.git.config/git.vscode.idea.husky.cargo.devcontainer.yarn.mvn.claude, кроме.claude/worktrees, где Claude хранит свои собственные git worktrees
Защищённые файлы:
.gitconfig,.gitmodules.bashrc,.bash_profile,.bash_login,.bash_aliases,.bash_logout,.zshrc,.zprofile,.zshenv,.zlogin,.zlogout,.profile,.envrc.npmrc,.yarnrc,.yarnrc.yml,.pnp.cjs,.pnp.loader.mjs,.pnpmfile.cjs,bunfig.toml,.bunfig.toml.bazelrc,.bazelversion,.bazeliskrc.pre-commit-config.yaml,lefthook.yml,lefthook.yaml,.lefthook.yml,.lefthook.yamlgradle-wrapper.properties,maven-wrapper.properties.devcontainer.json.ripgreprc,pyrightconfig.json.mcp.json,.claude.json
Критические пути
Claude Code никогда не позволяет правилу permissions.allow или hook PreToolUse, который возвращает "allow", одобрить команду rm или rmdir, которая нацелена на критический путь, даже в режимах, которые пропускают другие запросы. Этот автоматический выключатель защищает от ошибки модели. Совпадающее правило deny по-прежнему полностью блокирует команду.
Что происходит вместо этого, зависит от вашего режима разрешений:
| Режим | Что Claude Code делает с удалением критического пути |
|---|---|
default, acceptEdits |
Спрашивает вас одобрить его |
plan |
Спрашивает вас одобрить его. С доступным режимом auto во время планирования и без доступных разрешений на обход, отправляет его классификатору вместо этого |
auto |
Отправляет его классификатору |
dontAsk |
Отклоняет его |
bypassPermissions |
Спрашивает вас одобрить его |
Если явное правило ask совпадает с командой, Claude Code спрашивает вас даже в режиме auto. В режимах, которые спрашивают, hook PermissionRequest может ответить на запрос так же, как он отвечает на любой другой.
Claude Code рассматривает цель rm или rmdir как критический путь, когда это любое из следующего:
- Корневой каталог файловой системы
- Каталоги верхнего уровня, то есть любой прямой потомок корня, такой как
/usr,/etcили/data - Ваш домашний каталог
- Корни дисков Windows и их каталоги верхнего уровня, такие как
C:\иC:\Windows - Ваш рабочий каталог и его родители
- Ваши дополнительные рабочие каталоги и их родители, но только когда удаление — это glob под одним из них, такой как
rm -rf <dir>/*.rm -rf <dir>на самом каталоге не вызывает эту проверку
Claude Code также рассматривает glob или косую черту непосредственно под переменной оболочки, такую как rm -rf "$DIR"/*, как удаление критического пути, потому что команда становится удалением из корня файловой системы, когда переменная пуста.
Скрытие удаления внутри подстановки команд с $(...) или обратными кавычками, или подстановки процесса с <(...), не пропускает проверку. Claude Code находит удаление критического пути, находится ли оно внутри подстановки, как в echo "$(rm -rf ~)", или в другом месте той же команды.
Remove-Item в PowerShell
Когда вы включаете инструмент PowerShell, Claude Code даёт Remove-Item свою собственную проверку, отдельную от списка критических путей rm. Результат зависит от цели, и первый совпадающий случай применяется:
- Системные пути: корневой каталог файловой системы и его каталоги верхнего уровня, корни дисков и их каталоги верхнего уровня, и ваш домашний каталог. Claude Code отклоняет команду в каждом режиме, без запроса у вас.
- Подстановочные знаки: голый
*или любая цель, заканчивающаяся на/*или\*, включая glob под переменной оболочки, такой как$dir/*. Claude Code отклоняет команду в каждом режиме, без запроса у вас, перед тем как классификатор её видит. - Ваш рабочий каталог или один из его родителей, с
-Recurse: Claude Code рассматривает команду как любую другую, которая требует одобрения в вашем режиме разрешений, поэтому он спрашивает вас в режимах, которые спрашивают, отправляет её классификатору в режимеautoи отклоняет её в режимеdontAsk. РежимbypassPermissionsпропускает эту проверку.
См. также
- Permissions: правила allow, ask и deny; управляемые политики
- Configure auto mode: скажите классификатору, какую инфраструктуру ваша организация доверяет
- Hooks: пользовательская логика разрешений через hooks
PreToolUseиPermissionRequest - Security: гарантии безопасности и лучшие практики
- Sandboxing: изоляция файловой системы и сети для команд Bash
- Non-interactive mode: запустите Claude Code с флагом
-p