SpyBara
Go Premium

permission-modes.md 2026-09-11 23:01 UTC to 2026-09-12 03:02 UTC

This page contains 23 additions and 23 deletions.

2026
Thu 10 23:00 Sat 12 03:02 Sun 13 21:00 Fri 18 23:58 Sat 19 23:57 Tue 22 23:59 Fri 25 23:58

Выберите режим разрешений

Контролируйте, будет ли Claude просить разрешение перед редактированием файлов или выполнением команд. Переключайте режимы с помощью Shift+Tab в CLI, индикатора режима в VS Code или селектора режима в Desktop.

Режим разрешений определяет, какие действия Claude может выполнять в сеансе без предварительного запроса у вас. В режиме Manual Claude Code останавливается и просит вас перед большинством действий, которые редактируют файлы, запускают команды оболочки или обращаются в сеть. В режиме auto вторая модель, классификатор, проверяет действия вместо вас; как классификатор оценивает действия перечисляет, какие действия он проверяет и какие его пропускают.

На планах Pro, Max и Team встроенный начальный режим разрешений — это режим auto. Какой режим начинается в сеансе охватывает интерфейсы и параметры, которые изменяют начальный режим разрешений. Вы также можете изменить режим разрешений работающего сеанса в любое время.

Available modes

Каждый режим делает различный компромисс между удобством и контролем. В таблице ниже показано, что Claude может делать без запроса разрешения в каждом режиме. Manual режим отображается под его значением конфигурации, default.

Mode What runs without asking Best for
default Reads only Reviewing every action yourself, sensitive work
acceptEdits Reads, file edits, and common filesystem commands (mkdir, touch, mv, cp, etc.) Iterating on code you're reviewing
plan Reads, plus classifier-approved commands when auto mode is available Exploring a codebase before changing it
auto Everything, with background safety checks Long tasks, reducing prompt fatigue
dontAsk Reads and pre-approved tools; anything that would prompt is denied Locked-down CI and scripts
bypassPermissions Everything Isolated containers and VMs only

Режим, который проверяет каждое действие, называется 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. Каждый пункт ссылается на раздел, который говорит, что происходит вместо этого в каждом режиме:

Распространённые конфигурации

Режимы разрешений определяют, будет ли 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 берёт режим разрешений из первого из них, который применяется:

  1. Флаг --permission-mode или --dangerously-skip-permissions

  2. permissions.defaultMode в файле параметров

    Если вы установите "auto" в .claude/settings.json или .claude/settings.local.json, значение не вступает в силу, и Claude Code затем использует встроенное значение по умолчанию вместо defaultMode из ~/.claude/settings.json. Если вы установите "bypassPermissions" в этих двух файлах, это также не вступает в силу, и сеанс начинается в режиме Manual. Другие значения применяются из любого файла параметров.

  3. Встроенное значение по умолчанию

Разговоры, которые расширение 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 для неинтерактивных запусков.

Автоматическое одобрение редактирования файлов с режимом 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 доступен только когда ваша учётная запись соответствует всем этим требованиям:

  • План: Все планы.
  • Организация: на 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 получает причину и пытается найти альтернативу. В большинстве сеансов причина называет правило, которое классификатор совпал, такое как `[Data Exfiltration]`, а не даёт письменное объяснение; см. [Проверка отказов](/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 обрабатывает подагентов

Классификатор проверяет работу подагента в трёх точках:

  1. Перед запуском подагента описание делегированной задачи оценивается, так что опасно выглядящая задача блокируется во время порождения.
  2. Пока подагент работает, каждое его действие проходит через классификатор с теми же правилами, что и родительский сеанс, и любой permissionMode в frontmatter подагента игнорируется.
  3. Когда подагент завершается, классификатор проверяет полную историю его действий; если эта проверка возврата выявляет проблему, предупреждение безопасности добавляется к результатам подагента. Когда отдельная проверка безопасности 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 по-прежнему выполняет действия, которые не требуют одобрения в режиме 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 их одобряет.

Облачные сеансы на 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, нацеленные на критический путь, по-прежнему требуют запроса.

Вы не можете войти в 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 и сеансов планирования с доступными разрешениями на обход. Это предотвращает случайное повреждение состояния репозитория и собственной конфигурации 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.yaml
  • gradle-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