Выберите режим разрешений
Контролируйте, будет ли Claude просить разрешение перед редактированием файлов или выполнением команд. Переключайте режимы с помощью Shift+Tab в CLI, индикатора режима в VS Code или селектора режима в Desktop.
Режим разрешений определяет, какие действия Claude может выполнять в сеансе без предварительного запроса у вас. В режиме Manual Claude Code останавливается и просит вас перед большинством действий, которые редактируют файлы, запускают команды оболочки или обращаются в сеть. В режиме auto вторая модель, классификатор, проверяет действия вместо вас; как классификатор оценивает действия перечисляет, какие действия он проверяет и какие его пропускают.
На планах Pro, Max и Team встроенный начальный режим разрешений — это режим auto. Какой режим начинается в сеансе охватывает интерфейсы и параметры, которые изменяют начальный режим разрешений. Вы также можете изменить режим разрешений работающего сеанса в любое время.
Available modes
Каждый режим делает различный компромисс между удобством и контролем. В таблице ниже показано, что 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 Mode, где доступны разрешения на обход, то есть сеансов, запущенных способом, который помещает bypassPermissions в цикл режимов.
Режимы устанавливают базовый уровень. Наложите правила разрешений сверху, чтобы предварительно одобрить или заблокировать определённые инструменты. Правила отказа блокируют в каждом режиме, включая bypassPermissions. Правила отказа и запроса не применяются к EndConversation, пока Claude всё ещё имеет хотя бы один другой инструмент, который он может вызвать. Правила разрешения не имеют эффекта в bypassPermissions.
Actions no mode auto-approves
Claude Code не одобряет автоматически следующее ни в одном режиме, включая bypassPermissions. Каждый пункт ссылается на раздел, который говорит, что происходит вместо этого в каждом режиме:
-
Инструменты, соответствующие явному правилу запроса
-
Инструменты соединителя, которые ваша организация установила на
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 работают независимо и объединяются, за исключением случаев, перечисленных в разделе Режимы песочницы. Для полного взаимодействия см. Как песочница связана с разрешениями и режимами разрешений и Как изоляция связана с режимами разрешений.
Какой режим начинается в сеансе
Когда вы запускаете новый сеанс в терминале, 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 для одобрения. Какие режимы появляются, зависит от того, где выполняется сеанс:
- Облачные сеансы: 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 вместо этого.
Исключение запросов разрешения с помощью автоматического режима
Автоматический режим позволяет Claude выполнять действия без обычных запросов разрешения. Отдельная модель классификатора проверяет действия перед их выполнением, блокируя все, что выходит за рамки вашего запроса, нацелено на неизвестную инфраструктуру или выглядит как результат враждебного контента, который прочитал Claude. Явные правила запроса по-прежнему вызывают запрос.
На планах Pro, Max и Team автоматический режим является встроенным начальным режимом разрешений.
Классификатор также проверяет каждое сообщение, которое Claude отправляет другому агенту с помощью SendMessage, будь то простой текст или структурированное сообщение команды агентов, перед тем как Claude Code его доставит, как в автоматическом режиме, так и в режиме плана, пока классификатор проверяет команды; проверка отправки требует Claude Code v2.1.222 или более поздней версии.
Классификатор также проверяет и одобряет или блокирует удаления rm и rmdir, нацеленные на критический путь, такие как rm -rf / и rm -rf ~, включая случаи, когда удаление находится внутри подстановки команды или процесса.
Автоматический режим также побуждает Claude продолжать работу без остановки для уточняющих вопросов, хотя Claude по-прежнему спрашивает, когда ваш запрос или навык явно на этом основаны. Для более сильного автономного поведения в режиме, который по-прежнему вас спрашивает, установите стиль вывода Proactive.
Автоматический режим снижает количество запросов разрешения, но не гарантирует безопасность. Используйте его для задач, в которых вы доверяете общему направлению, а не как замену проверке при чувствительных операциях.
Автоматический режим доступен только при соблюдении всех следующих требований вашей учетной записи:
- План: Все планы.
- Организация: на Team и Enterprise автоматический режим доступен по умолчанию. Администраторы могут отключить его для организации, установив
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 сообщает, что автоматический режим недоступен, сначала проверьте эти требования и не устанавливает ли какой-либо файл параметров disableAutoMode. Anthropic также может отключить автоматический режим на стороне сервера, или сервер может отклонить автоматический режим для вашей учетной записи. Сеанс, получивший любой из этих ответов, держит автоматический режим отключенным до конца сеанса, поэтому позже начните новый сеанс.
Отдельное сообщение, которое называет модель и говорит, что автоматический режим "не может определить безопасность" действия, означает, что запрос классификатора не удался. Этот сбой обычно временный, но на Amazon Bedrock он может повторяться до тех пор, пока ваша учетная запись не сможет вызвать названную модель. Смотрите справочник ошибок для причин и что делать.
Если вы установили defaultMode: "auto" в параметрах и сеанс терминала начинается в режиме Manual без ошибки, параметр, вероятно, находится в .claude/settings.json или .claude/settings.local.json. auto не вступает в силу из этих файлов. Переместите его в ~/.claude/settings.json. Для разговора, который запустило расширение VS Code, вместо этого проверьте собственный список расширения в Переключение режимов разрешений.
Автоматический режим на Bedrock, Agent Platform или Foundry
На Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry и сеансах Claude apps gateway с входом автоматический режим появляется в цикле Shift+Tab по умолчанию. Появление в цикле не изменяет режим разрешений, в котором начинается сеанс: на этих поставщиках сеансы терминала начинаются в вашем defaultMode, который является Manual, если вы его не измените, и разговоры в расширении VS Code начинаются в Manual, если claudeCode.initialPermissionMode или выбранный вами режим в расширении не устанавливает один. На этих поставщиках поддерживаются только Claude Sonnet 5, Opus 4.7 или более поздней версии и модели Fable.
Чтобы сделать автоматический режим режимом разрешений по умолчанию при запуске, установите "permissions": {"defaultMode": "auto"} в пользовательские или управляемые параметры. В сеансах, которые запускает расширение VS Code, вместо этого выберите Auto из индикатора режима. Переключение режимов разрешений охватывает то, что имеет приоритет над этим выбором.
Проверка /doctor предлагает этот пользовательский параметр по умолчанию на этих поставщиках так же, как на Anthropic API.
Чтобы предотвратить использование автоматического режима разработчиками, установите disableAutoMode на "disable" в управляемых параметрах. Это удаляет auto из цикла Shift+Tab, и сеанс, запущенный с --permission-mode auto, начинается в Manual. Сеанс, уже работающий в автоматическом режиме, выходит из него, когда параметр достигает этого сеанса из источника, развернутого администратором, и показывает auto mode disabled by settings. До v2.1.251 работающий сеанс оставался в автоматическом режиме до конца.
В v2.1.158 через v2.1.206 автоматический режим был отключен на этих поставщиках до тех пор, пока вы не установили CLAUDE_CODE_ENABLE_AUTO_MODE=1, и Claude Code игнорировал defaultMode: "auto" на этих поставщиках, если переменная также не была установлена. Переменная по-прежнему принимается для совместимости и не имеет эффекта с v2.1.207 и далее.
Проверка классификатора на стороне сервера
На планах Enterprise и учетных записях, которые используют Claude API, на Claude Platform on AWS, Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, и всякий раз, когда вы указываете ANTHROPIC_BASE_URL на LLM gateway или proxy, Claude Code в автоматическом режиме просит сервер проверить действия, которые идут к классификатору как часть запросов модели сеанса. Где сервер их проверяет, его вердикты решают эти действия. Где он этого не делает, чаще всего потому, что LLM gateway или proxy мешает трафику, или потому, что платформа, регион или учетные данные еще не имеют проверок на стороне сервера, Claude Code возвращается к своим собственным запросам классификатора, и как только этот откат сохраняется для остальной части сеанса, он показывает уведомление о расходах на запросы классификатора на учетных записях, где эти запросы выставляются счетом. Чтобы пропустить запрос к серверу и всегда использовать собственные запросы классификатора Claude Code, установите CLAUDE_CODE_AUTO_MODE_SERVER=0. Переменная не читается при прямом подключении к Anthropic API. Если вы установили CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 и оставили CLAUDE_CODE_AUTO_MODE_SERVER неустановленным, Claude Code также перестает запрашивать сервер.
Запрос к серверу по умолчанию требует Claude Code v2.1.278 или более поздней версии.
Что классификатор блокирует по умолчанию
Классификатор доверяет вашему рабочему каталогу и удаленным хранилищам, которые были для него настроены при запуске сеанса. Удаленное хранилище, добавленное или переориентированное во время сеанса с помощью git remote add или git remote set-url, не является доверенным, и все остальное рассматривается как внешнее до тех пор, пока вы не настроите доверенную инфраструктуру. До v2.1.200 удаленные хранилища, добавленные в середине сеанса, также были доверенными.
Блокируется по умолчанию:
- Загрузка и выполнение кода, например
curl | bash - Отправка чувствительных данных на внешние конечные точки
- Развертывание и миграция в production
- Массовое удаление в облачном хранилище
- Предоставление разрешений 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 и более поздние версии блокируют больше категорий по умолчанию. Несколько зависят от записей окружения, таких как чувствительные удаленные цели и защищенные области IaC, которые вы можете сузить до конкретных имен.
- Запись в менеджер секретов или изменение записей DNS или сертификатов TLS
- Слияние pull request, который не одобрил ни один человек, одобрение собственного pull request Claude или отключение проверок CI
- Размещение комментария, который сам по себе является командой для автоматизации, такой как
atlantis applyили/deployили/mergeбота - Переключение, постепенное развертывание или удаление флага функции production
- Применение изменений инфраструктуры к защищенной области IaC или осушение и удаление узлов кластера
- Записи в общий вычислительный кластер, которые выходят за пределы названного вами ресурса, такие как селектор меток или
--all, который захватывает задания других пользователей - Создание ресурсов Kubernetes, которые работают на каждом узле или перехватывают трафик кластера, такие как DaemonSets и admission webhooks
- Интерактивные оболочки или port-forwards в чувствительную удаленную цель
- Открытие туннеля или обратной оболочки, которая делает локальный сервис доступным из общедоступного интернета
- Вывод живого учетного данного или токена в стенограмму или файл
- Доступ к местоположению, указанному как местоположение чувствительных данных в вашем окружении, или копирование данных из него. Начиная с v2.1.198, это также блокирует отправку данных из одного на аудиторию, которую запись исключает
- Маршрутизация установки пакета вокруг вашего внутреннего реестра пакетов на общедоступный реестр. Начиная с v2.1.198, это также применяется, когда вы сказали Claude, что внутренний реестр или зеркало существует в разговоре, а не только когда один указан в вашем окружении
- Запуск команды с флагом, который отключает защиту безопасности, например
--insecure - Запуск цикла автономного агента, который работает без одобрения человека или песочницы, такой как запущенный с
--dangerously-skip-permissionsили--no-sandbox. Начиная с v2.1.198, это также охватывает запуск стороннего агента или eval harness с отключенной изоляцией и одобрением для каждого действия, такой как runner, запущенный с--yes-always - Claude in Chrome действия браузера, которые могут отправить содержимое страницы, cookies или учетные данные за пределы origin
Claude Code v2.1.198 и более поздние версии также блокируют эти по умолчанию:
- Удаление файлов в
/tmp,$TMPDIRили другом общем каталоге scratch или cache по подстановочному знаку, glob или фильтру возраста, а не по конкретному названному пути - Включение чувствительных деталей в содержимое, отправленное, загруженное, опубликованное или написанное другим людям или общим системам, когда ваше собственное сообщение не авторизовало эти детали для этого получателя. Тела PR и issues, сообщения фиксации и комментарии считаются этим видом исходящего содержимого, когда репозиторий находится вне границы доверия или является общедоступным, включая собственные общедоступные репозитории вашей организации; внутренние пути файлов, кодовые имена, данные живого ответа API, такие как электронные письма или идентификаторы учетных записей, и идентификаторы инфраструктуры считаются чувствительными деталями. Область PR, issue и сообщения фиксации требует Claude Code v2.1.200 или более поздней версии. Живые личные данные из ответа API в теле PR или issue, такие как адрес электронной почты, идентификатор учетной записи или организации или метрика использования, требуют, чтобы вы назвали эти детали и получателя независимо от видимости репозитория или границы доверия. Эта проверка требует Claude Code v2.1.203 или более поздней версии
- Отправка нажатий клавиш на собственную панель tmux Claude Code для управления его собственным интерфейсом, что классификатор рассматривает как Claude, изменяющий свои собственные разрешения или надзор
Claude Code v2.1.200 и более поздние версии также блокируют эти по умолчанию:
- Комментирование, удаление или force-passing теста или утверждения, которое охраняет поведение безопасности, такое как аутентификация, контроль доступа, валидация входных данных или песочница
- Удаление или разборка stateful ресурса, который Claude не создал в сеансе, когда не применяется более конкретное правило удаления и вы не назвали этот ресурс
- Переориентирование базового URL API, конечной точки proxy, получателя 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 реестра контейнеров узла
- Подключение к или сканирование соседних контейнеров, подов или ВМ, которые 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 создал ранее в том же сеансе
- Чтение, проверка или запись кода, конфигов и моделей угроз, связанных с безопасностью, как часть вашей задачи
- Сообщения между агентами, работающими вместе в одном многоагентном сеансе
- Отправка данных на доверенные домены, buckets и сервисы, которые вы указываете в
environment. Это охватывает только поток данных, а не деструктивные или операции с учетными данными на той же инфраструктуре - Claude in Chrome навигация на доверенный внутренний домен, localhost или URL, который вы назвали
Команды в песочнице не получают доступ в сеть по умолчанию. Claude называет хосты, которые команде нужны, на самой команде, классификатор проверяет их с командой, и одобренный список открывает эти хосты только для этой одной команды. Разрешенные домены для каждой команды охватывает то, что список может и не может открыть и что происходит, когда команда достигает неуказанного хоста.
Запустите claude auto-mode defaults для вывода полных списков правил как JSON. Если обычные действия блокируются, администратор может добавить доверенные репозитории, buckets и сервисы через параметр autoMode.environment: смотрите Настройка автоматического режима.
Отправка на любую ветку репозитория, в котором вы работаете, и создание pull request, который соответствует вашему запросу, выполняются без запроса, если только отправка или pull request не попадают под список блокировок, такой как секреты или чувствительные данные, покидающие репозиторий, или pull request, нацеленный на другой репозиторий или организацию. Чтобы требовать контрольную точку человека перед этими командами, оставаясь в автоматическом режиме, добавьте правила permissions.ask, которые соответствуют команде как написано: смотрите Общие границы.
Первое чтение вне рабочих каталогов
Пока permissions.blockReadsOutsideWorkingDirectories отключен, чтения файлов выполняются без запроса в автоматическом режиме, включая чтения вне рабочих каталогов. Первый раз, когда Claude использует инструмент Read, Grep или Glob на пути вне них, Claude Code спрашивает вас, продолжать ли разрешать эти чтения.
Запрос не появляется в неинтерактивных запусках -p или фоновых сеансах; чтения там выполняются как раньше.
Независимо от вашего ответа, Claude продолжает работать:
- Продолжить разрешение: чтение выполняется, более поздние чтения вне рабочих каталогов выполняются как раньше, и Claude Code записывает ваш ответ, чтобы запрос больше не появлялся
- Блокировать с этого момента: чтение отклоняется, и Claude Code устанавливает
permissions.blockReadsOutsideWorkingDirectoriesнаtrueв ваши пользовательские параметры, что заставляет инструменты файлов отклонять такие чтения в каждом более позднем сеансе и каждом режиме разрешений. Чтобы позволить Claude позже прочитать такой путь, добавьте его каталог с/add-dirили удалите параметр. - Спросить снова в следующий раз: чтение отклоняется, и следующее чтение вне рабочих каталогов снова спрашивает
Границы, которые вы указываете в разговоре
Классификатор рассматривает границы, которые вы указываете в разговоре, как сигнал блокировки. Если вы скажете Claude "не отправляй" или "подожди, пока я проверю перед развертыванием", классификатор блокирует соответствующие действия, даже когда правила по умолчанию их разрешали бы. Граница остается в силе до тех пор, пока вы не снимете ее в более позднем сообщении. Собственное суждение Claude о том, что условие было выполнено, не снимает его.
Границы не хранятся как правила. Классификатор перечитывает их из стенограммы при каждой проверке, поэтому граница может быть потеряна, если компактирование контекста удаляет сообщение, которое ее указало. Для жесткой гарантии добавьте вместо этого правило отказа.
Одобрения, которые вы указываете в разговоре
Если вы скажете Claude, что заблокированное действие разрешено, классификатор читает это как ваше одобрение и может снять блок. То, как вы это сформулировали, решает, выполняется ли действие и как далеко распространяется одобрение:
- Назовите действие и его специфику: ваше сообщение должно назвать действие и конкретную вещь, которая делает его опасным, такую как ветка force push. Название только глагола ничего не очищает, поэтому "вы можете force-push" оставляет блок на месте.
- Ожидайте, что это охватит одно действие: одобрение охватывает деструктивное действие, которое вы назвали, поэтому более позднее действие снова блокируется, если вы не предоставили одобрение как постоянное. Чтобы перестать одобрять обычный паттерн одно действие за раз, добавьте его в
autoMode.allow. - Некоторые блоки остаются на месте: порядок приоритета классификатора устанавливает, какие блоки может достичь ваше одобрение. Чтобы запустить шаг, который оно не очистит, выйдите из автоматического режима и ответьте на запрос разрешения.
Когда автоматический режим возвращается
Когда автоматический режим не может одобрить действия вашего сеанса, что происходит, зависит от случая:
- Заблокированное действие: Claude Code показывает уведомление и перечисляет действие в
/permissionsна вкладке Recently denied, где вы можете нажатьrдля повторной попытки с ручным одобрением. Когда классификатор выдает отсутствие вердикта по действию, потому что проверка безопасности, отдельная от автоматического режима, отклонила собственный запрос классификатора или его ответ не был разобран, Claude Code отклоняет действие без уведомления или записи Recently denied. - Повторные блоки: если классификатор блокирует действие 3 раза подряд или 20 раз всего, автоматический режим приостанавливается и Claude Code возобновляет запросы. Одобрение запрошенного действия возобновляет автоматический режим. Эти пороги не настраиваются. Любое разрешенное действие сбрасывает счетчик последовательных, пока счетчик всего сохраняется для сеанса и сбрасывается только когда его собственный предел запускает откат. Claude Code не считает отказ к любому пороговому значению, когда проверка безопасности, отдельная от автоматического режима, отклоняет собственный запрос классификатора; связанная запись охватывает, как Claude Code обрабатывает эти отказы.
- Сеансы, которые не могут спрашивать: неинтерактивный запуск
-pбез--permission-prompt-toolне имеет запроса для возврата. Когда повторные блоки достигают порога, действие не выполняется и Claude продолжает работать. То же самое применяется, когда проверка безопасности, отдельная от автоматического режима, отклоняет запрос классификатора. Claude Code не останавливает запуск ни в одном случае. - Переключение режима во время проверки: если вы переключаете режимы разрешений, пока проверка классификатора ожидает, Claude Code отклоняет вердикт, который новый режим не запросил бы, вместо его применения: вместо этого вас спрашивают для одобрения, или действие автоматически отклоняется в
dontAskрежиме.
Повторные блоки обычно означают, что классификатор упускает контекст о вашей инфраструктуре. Используйте /feedback для сообщения о ложных срабатываниях, или пусть администратор настроит доверенную инфраструктуру.
1. Действия, соответствующие вашим [правилам разрешения, запроса или отказа](/docs/ru/permissions#manage-permissions), разрешаются немедленно, с этими исключениями:
* Записи в [защищенные пути](#protected-paths) маршрутизируются к классификатору, даже когда правило разрешения соответствует, и так же `rm` и `rmdir` удаления, нацеленные на [критический путь](#critical-paths) в Claude Code v2.1.218 и более поздних версиях
* MCP инструменты, отмеченные [`requiresUserInteraction`](/docs/ru/mcp#require-approval-for-a-specific-tool), спрашивают вас напрямую, даже когда правило разрешения соответствует, и так же инструменты connector, которые ваша организация установила на `ask`]\(/ru/mcp#organization-controls-on-connector-tools) в сеансах, где эта параметр достигает Claude Code
* Команда оболочки, которая несет [разрешенные домены для каждой команды](/docs/ru/sandboxing#per-command-allowed-domains-in-auto-mode), также маршрутизируется к классификатору, даже когда правило разрешения соответствует, потому что правило одобряет команду, а не ее хосты
* Правила запроса, которые соответствуют содержимому команды, такие как `Bash(git push *)`, возвращаются к запросу разрешения
2. Действия только для чтения и редактирования файлов в вашем рабочем каталоге автоматически одобряются, кроме записей в [защищенные пути](#protected-paths) и [первое чтение вне рабочих каталогов](#first-read-outside-the-working-directories), которое вас спрашивает
3. Все остальное идет к классификатору. Инструменты connector и MCP инструменты `requiresUserInteraction`, которые спрашивают вас напрямую на шаге 1, никогда не достигают классификатора, поэтому ни одобрение, требуемое организацией, ни шаг согласия не автоматически одобряются
4. Если классификатор блокирует, Claude получает причину и пытается альтернативу. В большинстве сеансов причина называет правило, которое классификатор совпал, такое как `[Data Exfiltration]`, вместо того чтобы давать письменное объяснение; смотрите [Проверка отказов](/docs/ru/auto-mode-config#review-denials)
При входе в автоматический режим широкие правила разрешения, которые предоставляют произвольное выполнение кода, отбрасываются:
* Blanket `Bash(*)` или `PowerShell(*)`
* Подстановочные интерпретаторы, такие как `Bash(python*)`
* Команды запуска менеджера пакетов
* Правила `Agent`
* [`Monitor`](/docs/ru/tools-reference#monitor-tool) правила разрешения, потому что Claude Code запускает команды Monitor через оболочку
Узкие правила, такие как `Bash(npm test)`, остаются в силе. Claude Code восстанавливает отброшенные правила, когда вы выходите из автоматического режима. До v2.1.236 Claude Code оставлял правила `Monitor` разрешения в силе в автоматическом режиме, поэтому правило, которое совпадало со всем инструментом, одобряло команды Monitor без проверки классификатора.
Claude Code также запускает `git status` сам перед командой, которая отбросила бы незафиксированную работу, такой как `git reset --hard` или `rm -rf`, и показывает классификатору, присутствует ли поставленная на сцену, измененная или неотслеживаемая работа. Claude Code сообщает неотслеживаемые файлы в этой проверке, даже когда конфигурация git репозитория устанавливает `status.showUntrackedFiles=no`.
В запросах классификатора, отправленных самим Claude Code, классификатор видит пользовательские сообщения, вызовы инструментов, отличные от чтений только для чтения, такие как чтения файлов и поиски, и содержимое вашего CLAUDE.md. Результаты инструментов удаляются из этих запросов, поэтому враждебное содержимое в файле или веб-странице не может напрямую манипулировать классификатором.
Вы можете аннотировать результат вызова с помощью поля [`classifierContext`](/docs/ru/hooks#annotate-a-result-for-the-auto-mode-classifier) hook PostToolUse, которое классификатор читает как контекст, предоставленный приложением. Поле требует Claude Code v2.1.236 или более поздней версии.
Отдельный зонд на стороне сервера сканирует входящие результаты инструментов и отмечает подозрительное содержимое перед тем как Claude его прочитает. Для получения дополнительной информации о том, как эти слои работают вместе, смотрите [объявление автоматического режима](https://claude.com/blog/auto-mode) и [инженерное углубленное погружение](https://www.anthropic.com/engineering/claude-code-auto-mode).
Как автоматический режим обрабатывает подагентов
Классификатор проверяет работу подагента в трех точках:
- Перед запуском подагента описание делегированной задачи оценивается, поэтому опасно выглядящая задача блокируется во время создания.
- Пока подагент работает, каждое из его действий проходит через классификатор с теми же правилами, что и родительский сеанс, и любой
permissionModeв frontmatter подагента игнорируется. - Когда подагент завершается, классификатор проверяет его работу и его финальный отчет перед тем как родитель прочитает отчет. Когда классификатор отмечает работу подагента или отчет, или отдельная проверка безопасности API отклоняет проверку, отчет все еще доставляется, предваренный предупреждением безопасности. Когда классификатор недоступен для проверки, отчет прибывает с примечанием для проверки работы подагента перед действием на его основе.
Стоимость и задержка
Классификатор работает на Claude Sonnet 5 по умолчанию, а не на выборе вашего /model. Модель классификатора, которую Anthropic настраивает на стороне сервера, имеет приоритет над этим по умолчанию. Когда модель вашего сеанса является Claude Sonnet 4.6, или когда availableModels исключает Sonnet 5, классификатор работает на модели вашего сеанса вместо этого, или на модели Opus, когда сеанс работает на модели Fable; на поставщиках, отличных от Anthropic API, этот fallback Opus является моделью Opus по умолчанию поставщика.
Первый запрос автоматического режима сеанса проверяет по умолчанию Sonnet 5: если запрос успешен, Sonnet 5 остается моделью классификатора сеанса, и если он не удается, потому что модель недоступна, сеанс использует fallback вместо этого. После того как эта проверка урегулируется, модель классификатора не изменяется для сеанса.
На планах Enterprise и на учетных записях, которые используют Claude API, Claude Platform on AWS, Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, вызовы классификатора считаются в сторону использования вашего токена. Каждая проверка отправляет часть стенограммы плюс ожидающее действие, добавляя round-trip перед выполнением. Чтения и редактирования рабочего каталога вне защищенных путей пропускают классификатор, поэтому накладные расходы поступают в основном из команд оболочки и сетевых операций. Где сервер проверяет действия как часть запросов модели сеанса, нет отдельных вызовов классификатора для подсчета; смотрите Проверка классификатора на стороне сервера.
Доступ в песочницу в сеть не добавляет запросы классификатора для каждого соединения. Классификатор судит хосты, которые команда называет, вместе с командой в одной проверке, и Claude Code проверяет каждое соединение по одобренному списку без повторного вызова классификатора.
Разрешить только предварительно одобренные инструменты с режимом dontAsk
Если вы установите режим dontAsk, Claude Code автоматически отклоняет каждый вызов инструмента, который иначе требовал бы запроса. Claude по-прежнему выполняет действия, которые не требуют одобрения в режиме Manual, такие как чтение файлов в ваших рабочих каталогах и команды Bash только для чтения, а также действия, соответствующие вашим правилам permissions.allow, и вызовы, одобренные 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 их одобряет.
Облачные сеансы игнорируют defaultMode: "dontAsk"; см. bypassPermissions для получения подробной информации.
Установите его при запуске с флагом:
claude --permission-mode dontAsk
Пропустить все проверки с режимом bypassPermissions
Режим bypassPermissions отключает запросы разрешений и проверки безопасности, чтобы вызовы инструментов выполнялись немедленно, включая записи в защищённые пути.
Действия, которые ни один режим не одобряет по-прежнему требуют запроса в этом режиме.
Две гарантии обмена сообщениями между сеансами по-прежнему применяются в этом режиме, и в интерактивных сеансах режима plan, где доступны разрешения на обход:
- Запрос одобрения
isolatePeerMachinesдля сообщений вашим сеансам за пределами этой машины по-прежнему появляется. - Когда не применяется значение
crossSessionInbound, Claude Code держит входящее сообщение от другого вашего сеанса для вашего одобрения и доставляет без запроса только когда отправляющий сеанс идентифицирует себя как также обходящий запросы разрешений. Если вы покидаете режим разрешений, пока сообщения удерживаются, Claude Code повторно применяет входящие правила и доставляет любое удерживаемое сообщение, которое они теперь принимают.
В интерактивных сеансах терминала с доступными разрешениями на обход Claude Code также не применяет блокировки режима plan. Claude по-прежнему инструктируется планировать без редактирования, но редактирование файла или команда оболочки, которую он пытается выполнить во время планирования, выполняется без запроса. Явные правила ask и удаления rm и rmdir, нацеленные на критический путь, по-прежнему требуют запроса.
Режим plan сохраняет свои блокировки везде, где Claude Code работает без интерактивного терминала, включая неинтерактивные запуски с -p, сеансы Agent SDK и беседы в панели чата расширения VS Code. Там --allow-dangerously-skip-permissions делает bypassPermissions доступным для выбора позже.
Используйте этот режим только в изолированных средах, таких как контейнеры, виртуальные машины или 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"/*, как удаление критического пути, потому что команда становится удалением из корня файловой системы, когда переменная пуста.
Подсказка для этого случая переменной называет помеченную команду rm и говорит, как переписать её, чтобы проверка прошла:
- Для переменной, такой как
$DIR, защитите каждое расширение так, чтобы оболочка остановилась с ошибкой, когда переменная не установлена или пуста, как вrm -rf "${DIR:?}"/*, или используйте буквальный путь - Для переменной, которая обычно установлена, такой как
$HOME, используйте буквальный путь
Удаление, чьи расширения защищены таким образом, не является удалением критического пути, поэтому в режиме bypassPermissions оно выполняется без подсказки.
Скрытие удаления внутри подстановки с (...), группы в фигурных скобках с { ...; }, подстановки команд с $(...) или обратными кавычками, или подстановки процесса с <(...), не пропускает проверку. Claude Code находит удаление критического пути, находится ли оно внутри вложенной формы, как в (rm -rf ~) или 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