Доступные режимы
Каждый режим делает различный компромисс между удобством и контролем. В таблице ниже показано, что Claude может делать без запроса разрешения в каждом режиме. Manual режим отображается под его значением конфигурации,default.
Режим, который проверяет каждое действие, называется Manual в CLI, в
claude --help, в расширениях VS Code и JetBrains, а также в настольном приложении. Его значение конфигурации — default, которое используют hooks и интеграции SDK. CLI принимает manual как псевдоним везде, где вы вводите значение, например claude --permission-mode manual или "defaultMode": "manual".
Для записи в защищённые пути в каждом режиме действует собственное правило.
Режимы устанавливают базовый уровень. Наложите правила разрешений сверху, чтобы предварительно одобрить или заблокировать определённые инструменты. Правила отказа блокируют в каждом режиме, включая bypassPermissions. Правила отказа и запроса не применяются к EndConversation, пока Claude всё ещё имеет хотя бы один другой инструмент, который он может вызвать. Правила разрешения не имеют эффекта в bypassPermissions.
Действия, которые ни один режим не одобряет автоматически
Claude Code не одобряет автоматически следующее ни в одном режиме, включаяbypassPermissions, хотя в режиме bypassPermissions вы можете отключить запрос для опасных команд rm. Каждый пункт ссылается на раздел, который говорит, что происходит вместо этого в каждом режиме:
- Инструменты, соответствующие явному правилу запроса
-
Инструменты соединителя, которые ваша организация установила на
ask, в сеансах, где эта настройка достигает Claude Code -
Инструменты, требующие взаимодействия с пользователем: встроенный инструмент
AskUserQuestionи MCP инструменты, отмеченныеrequiresUserInteraction -
Распознанные удаления
rmиrmdirпо критическим путям, которые не одобряет ни одно правило разрешения или хукPreToolUseс"allow", а также команды Bash, помеченныеDangerous rm operation not ruled out - Защита от кросс-сеансового обмена сообщениями
-
Чтение вне рабочих директорий, пока
permissions.blockReadsOutsideWorkingDirectoriesвключено: распознанные команды Bash для чтения файлов и любой неизолированный повтор, который требует одобрения для запуска вне песочницы, запрашивают даже в режиме auto и режимеbypassPermissions. Требует Claude Code v2.1.257 или более поздней версии. Команда, которую парсер оболочки не может отследить, такая как команда, которая меняет директорию более одного раза или запускает подоболочку, запрашивает то же самое, даже если она не называет никакой внешний путь. Этот запрос не применяется, когда команда выполняется в песочнице и песочница обеспечивает блокировку. -
Запись вне рабочих каталогов, пока
permissions.blockWritesOutsideWorkingDirectoriesвключено: Claude Code отклоняет там вызовыWrite,EditиNotebookEdit, за исключением некоторых собственных файлов. Этот ключ не ограничивает shell-команды, инструменты MCP или программы, которые запускают хуки, поэтому используйте изоляцию в песочнице, чтобы ограничить, куда записывают shell-команды. Требует Claude Code v2.1.314 или более поздней версии.
Распространённые конфигурации
Режимы разрешений определяют, будет ли Claude просить перед действием, а песочница Bash и внешние границы изоляции определяют, что действие может достичь после запуска. Каждая строка ниже связывает цель с флагами или параметрами, которые вас туда доставляют, и необходимой изоляцией, как отправную точку. Доступные режимы перечисляют, что выполняется без запроса в каждом режиме.
Песочница 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. Другие значения применяются из любого файла настроек. - Встроенное значение по умолчанию
auto требует Claude Code v2.1.228 или новее на macOS, Linux и WSL и v2.1.233 или новее на нативной Windows. В более ранних версиях встроенное значение по умолчанию — Manual.
Встроенное значение по умолчанию зависит от того, как вы запускаете Claude Code. Применяется первая строка, которая соответствует вашей сессии. Таблица охватывает сессии, которые вы запускаете в терминале или через расширение VS Code; для настольного приложения и claude.ai см. вкладки Desktop и Web в разделе Переключение режимов разрешений.
Когда флаг, файл настроек или встроенное значение по умолчанию выбирает
auto, но авторежим недоступен для сессии, Claude Code вместо этого запускает сессию в режиме Manual. Авторежим недоступен, когда сессия не соответствует требованиям доступности, например если файл настроек отключает его или модель его не поддерживает, либо когда Anthropic временно отключила его на стороне сервера.
Когда встроенное значение по умолчанию впервые запускает одну из ваших сессий в авторежиме, Claude Code показывает уведомление со ссылкой на эту страницу:
- В терминале — один раз, в верхней части сессии
- В расширении VS Code — в виде карточки на экране нового диалога, которая остаётся, пока вы её не закроете
~/.claude/settings.json устанавливает defaultMode, отличный от auto, и ни один другой файл настроек его не устанавливает, ваши сессии продолжают запускаться в этом режиме.
На планах Pro, Max, Ultra и Team, а также в сессиях, которые не получают флаги функций, Claude Code один раз спрашивает, следует ли изменить настройку на авторежим. Вопрос появляется в терминале или в расширении VS Code, и если вы откажетесь, ваша настройка останется без изменений.
Вызовы инструментов отклоняются в запусках claude -p и Agent SDK
В Claude Code v2.1.302 или новее запуски claude -p и Agent SDK, для которых не задан режим разрешений, начинаются в режиме Manual. В параметрах SDK и настройках этот режим отображается как default. Вызовы, требующие подтверждения, отклоняются, если вы не подтвердите их с помощью правила разрешения, хука, обратного вызова canUseTool или --permission-prompt-tool.
Чтобы эти вызовы подтверждались, добавьте правила разрешения или запускайтесь в авторежиме:
- Добавьте правила разрешения: Claude выполняет перечисленные вами вызовы. Передайте
--allowedTools "Bash(npm test)"вclaude -pили задайте параметр разрешённых инструментов вашего SDK. - Запускайтесь в авторежиме: модель-классификатор проверяет вызовы, поэтому вам не нужно ничего перечислять заранее. Передайте
--permission-mode autoвclaude -pили задайте параметр режима разрешений вашего SDK.
- CLI
- TypeScript
- Python
DISABLE_TELEMETRY.
Запуск в другом режиме разрешений
Вы можете задать начальный режим разрешений для одной сессии или как значение по умолчанию для каждой сессии на компьютере, в проекте или в организации. Когдаpermissions.defaultMode задаётся более чем в одном файле настроек, решает приоритет настроек, поэтому значение проекта или управляемое значение имеет приоритет над ~/.claude/settings.json. Чтобы изменить режим разрешений уже работающей сессии, см. Переключение режимов разрешений.
В этом примере каждая сессия терминала на вашем компьютере начинается в режиме Manual, значение конфигурации которого —
default. Сохраните его в ~/.claude/settings.json:
⏸ manual mode on в строке состояния.
Режимы разрешений с конфигурацией HIPAA
В организации, к которой применена конфигурация HIPAA, встроенное значение по умолчаниюauto не применяется. Сессия терминала или VS Code начинается в режиме Manual, если начальный режим разрешений не выбирает ничто другое. Сессия терминала также показывает Auto mode isn't the default for your organization · Shift+Tab to switch, а расширение VS Code не показывает никакого уведомления. В разделе Проверка того, как разработчики входят в систему и подключаются перечислены сессии, к которым это относится.
Авторежим и bypassPermissions остаются доступными:
- Переключиться на авторежим: нажмите
Shift+Tabили используйте элемент управления вашего интерфейса - Запускаться в авторежиме: передайте
--permission-mode autoили задайтеpermissions.defaultModeв значениеautoв пользовательских настройках либо в управляемых настройках для всей организации. См. Запуск в другом режиме разрешений - Убрать авторежим: установите
permissions.disableAutoModeв значение"disable"в управляемых настройках - Заблокировать
bypassPermissions: установитеpermissions.disableBypassPermissionsModeв значение"disable"в управляемых настройках
Переключение режимов разрешений
Каждый интерфейс имеет свой элемент управления для переключения режимов разрешений во время сеанса и свой способ выбора режима разрешений, в котором начинаются новые сеансы. Выберите ваш интерфейс, чтобы увидеть его элементы управления.- CLI
- VS Code
- JetBrains
- Desktop
- Web and mobile
Во время сессии: нажмите Не все режимы находятся в цикле по умолчанию:Как значение по умолчанию: установите
Shift+Tab для циклического переключения режимов разрешений. Из auto первое нажатие переключает на default, а затем цикл идёт default → acceptEdits → plan. Дополнительные режимы вставляются после plan. Строка состояния показывает активный режим как серый ⏸ manual mode on для default, или как ⏵⏵ accept edits on, ⏸ plan mode on, ⏵⏵ auto mode on, ⏵⏵ don't ask on или ⏵⏵ bypass permissions on.Следите за строкой состояния в этом ролике сессии, которая началась в авторежиме. При каждом нажатии Shift+Tab она меняется с auto mode on на manual mode on, accept edits on, plan mode on и обратно на auto mode 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 по-прежнему показывает вам эти запросы, поэтому переключение их не удалит.При запуске: передайте режим разрешений как флаг.permissions.defaultMode в область, которую вы хотите, как описано в Начните в другом режиме разрешений.Тот же флаг --permission-mode работает с -p для неинтерактивных запусков.Автоматическое одобрение редактирования файлов с режимом acceptEdits
РежимacceptEdits позволяет Claude создавать и редактировать файлы в вашем рабочем каталоге без запроса. Строка состояния показывает ⏵⏵ accept edits on, пока этот режим активен.
В дополнение к редактированию файлов, режим acceptEdits автоматически одобряет распространённые команды Bash файловой системы: mkdir, touch, rm, rmdir, mv, cp и sed. За исключением touch, эти команды также автоматически одобряются при префиксе с безопасными переменными окружения, такими как LANG=C или NO_COLOR=1, или обёртками процессов, такими как timeout, nice или nohup. Как и редактирование файлов, автоматическое одобрение применяется только к путям внутри вашего рабочего каталога или additionalDirectories.
По-прежнему требуют запроса:
- Пути вне этой области действия
- Записи в защищённые пути
- Распознанные удаления
rmиrmdir, нацеленные на критические пути touchс чем-либо помимо простых путей к файлам, например с опцией, glob-шаблоном или префиксом, таким какtimeout 5илиLANG=C- Все остальные команды Bash, кроме встроенного набора только для чтения
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 исследовать код и предлагать изменения, не внося их. Claude читает файлы, выполняет shell-команды для изучения и составляет план, но не редактирует ваш исходный код. За исключением интерактивных сессий в терминале, где доступен обход разрешений, редактирование остаётся заблокированным, пока вы не утвердите план. Что происходит с shell-командой во время планирования, зависит от сессии; применяется первый подходящий из следующих случаев:- Интерактивные сессии в терминале с доступным обходом разрешений: к командам планирования не применяются ни классификатор, ни запрос разрешения. В разделе Пропуск всех проверок с режимом bypassPermissions описаны немногие случаи, когда запрос там всё же появляется.
- Авторежим доступен и настройка
useAutoModeDuringPlanвключена, что задано по умолчанию: классификатор проверяет shell-команды, кроме удалений критических путей, вместо того чтобы запрашивать у вас разрешение. Одобренные команды выполняются, а отклонённые блокируются. - Авторежим недоступен или
useAutoModeDuringPlanвыключена: команды вне встроенного набора команд только для чтения запрашивают подтверждение, в том числе когда включён режим автоматического разрешения песочницы.
Shift+Tab или добавив /plan в начало отдельного промпта. Вы также можете запустить сессию в режиме планирования из CLI:
Shift+Tab ещё раз, чтобы выйти из режима планирования. В запросе на утверждение сначала нажмите Esc, поскольку нажатие Shift+Tab там утверждает план.
Просмотр и утверждение плана
Когда план готов, Claude показывает его и спрашивает, как продолжить. В этом запросе вы можете выбрать:- Yes, and use auto mode: утвердить план и начать работу в авторежиме. Если авторежим недоступен в вашей сессии, например потому что ваша организация его отключила, этот вариант называется Yes, auto-accept edits. Если вы запустили сессию с включённым обходом разрешений, вариант вместо этого называется Yes, and switch to BYPASS PERMISSIONS (no further prompts) for this session.
- Yes, manually approve edits: утвердить план и проверять каждое изменение по отдельности.
- No, keep planning: остаться в режиме планирования и сообщить Claude, что изменить.
Shift+Tab или добавьте /plan в начало следующего промпта.
Нажмите Ctrl+G, чтобы открыть предложенный план в текстовом редакторе по умолчанию и отредактировать его напрямую, прежде чем Claude продолжит. Когда включена настройка showClearContextOnPlanAccept, в списке появляется первый вариант, который утверждает план и очищает контекст планирования.
Принятие плана также присваивает сессии сгенерированное название на основе плана, если вы ещё не назвали сессию.
Установка режима планирования по умолчанию
Чтобы сделать режим планирования режимом по умолчанию для сессий проекта в терминале, задайте дляdefaultMode значение plan в .claude/settings.json, разместив его так, как показано в примере в разделе Запуск в другом режиме разрешений. Диалоги, которые запускает расширение VS Code, не считывают начальный режим разрешений из настроек проекта. В этом случае задайте для claudeCode.initialPermissionMode значение plan в пользовательских настройках VS Code.
Исключите запросы разрешений с помощью авторежима
Авторежим позволяет Claude выполнять действия без рутинных запросов разрешений. Отдельная модель-классификатор проверяет действия перед их выполнением и блокирует всё, что выходит за рамки вашего запроса, нацелено на нераспознанную инфраструктуру или выглядит как результат враждебного контента, который прочитал Claude. Явные правила ask по-прежнему вызывают запрос разрешения. В Claude Code v2.1.283 и более поздних версиях авторежим является встроенным начальным режимом разрешений для интерактивных сессий в терминале и VS Code на всех планах и у всех провайдеров. В более ранних версиях он является встроенным начальным режимом разрешений только на планах Pro, Max, Ultra и 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 Models on Google Cloud (Anthropic managed): Claude Opus 4.6 или новее, Sonnet 4.6 или новее, Haiku 5.5 либо модель Fable
- Amazon Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry и сессии Claude apps gateway с выполненным входом: только Claude Sonnet 5 или новее, Opus 4.7 или новее, Haiku 5.5 и модели Fable
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 с выполненным входом авторежим доступен по умолчанию. Если вы не задаёте там режим разрешений, интерактивные сессии запускаются в авторежиме, а запускиclaude -p или Agent SDK — в режиме Manual, значение которого в конфигурации — default:
- Интерактивные сессии в терминале и VS Code: чтобы запускать их в режиме разрешений, отличном от авторежима, установите
permissions.defaultMode, как описано в разделе Запуск в другом режиме разрешений, или выберите режим в индикаторе режима расширения VS Code. В разделе В каком режиме запускается сессия перечислены версии Claude Code, которые запускают их в авторежиме. - Запуски
claude -pи Agent SDK: чтобы запустить их в авторежиме, передайте--permission-mode autoвclaude -pлибо передайтеpermissionMode: "auto"в TypeScript илиpermission_mode="auto"в Python. Если вы не передаёте режим разрешений, см. раздел Вызовы инструментов отклоняются в запускахclaude -pи Agent SDK, где также описаны более ранние версии Claude Code.
disableAutoMode в значение "disable" в управляемых настройках. Это удаляет auto из цикла Shift+Tab, а сессия, запущенная с --permission-mode auto, вместо этого запускается в режиме Manual. Сессия, уже работающая в авторежиме, выходит из него, когда настройка доходит до этой сессии из источника, развёрнутого администратором, и показывает auto mode disabled by settings. До v2.1.251 работающая сессия сохраняла авторежим до своего завершения.
Проверка классификатором на стороне сервера
В авторежиме Claude Code может попросить сервер проверить действия, которые порядок принятия решений отправляет на проверку, в составе запросов к модели в рамках сессии, вместо отправки собственных запросов классификатора. Сервер запрашивают следующие сессии:- Прямое подключение к Anthropic API: в интерактивных сессиях в терминале, а также в сессиях
-p, Agent SDK, расширения VS Code и десктопного приложения, независимо от вашего плана или типа учётной записи, по мере развёртывания функции Anthropic. Сверьте тип своей сессии со следующими минимальными версиями Claude Code:- В интерактивных сессиях в терминале запрос к серверу требует Claude Code v2.1.271 или новее на планах Pro, Max, Ultra и Team. На планах Enterprise и в учётных записях Claude API такие сессии требуют v2.1.278 или новее.
- В сессиях
-pи расширения VS Code запрос к серверу требует Claude Code v2.1.278 или новее - В сессиях Agent SDK и десктопного приложения запрос к серверу требует Claude Code v2.1.281 или новее
- Начиная с v2.1.282 сессия, которая не получает флаги функций, например потому что вы отключили телеметрию, по умолчанию запрашивает сервер в сессии любого типа
- Облачный провайдер либо LLM-шлюз или прокси: в Claude Platform on AWS, Amazon Bedrock, Google Cloud’s Agent Platform и Microsoft Foundry, а также всякий раз, когда вы направляете
ANTHROPIC_BASE_URLна LLM-шлюз или прокси, независимо от вашего плана. Запрос к серверу по умолчанию требует Claude Code v2.1.278 или новее. - Сессия Claude apps gateway с выполненным входом: требуется Claude Code v2.1.280 или новее
- Облачная сессия в среде, размещённой Anthropic: независимо от вашего плана, когда вы запускаете её из веба, мобильного приложения или десктопного приложения с выбранным вариантом Cloud. Сессии, запущенные облачной запланированной задачей, запрашивают сервер по мере развёртывания функции Anthropic.
- Сервер не проверяет сессию: ответ завершается без результатов проверки, или сервер отвечает, что не проверяет эту сессию. Наиболее частые причины — LLM-шлюз или прокси, который отбрасывает запрос на проверку или её результаты, а также платформа, регион или учётные данные, для которых проверки на стороне сервера ещё недоступны. Claude Code переключается на собственные запросы классификатора. Как только этот резервный вариант закрепляется на оставшуюся часть сессии, Claude Code показывает уведомление о плате за запросы классификатора в учётных записях, где эти запросы оплачиваются.
-
Сервер не выносит вердикт по действию: Claude Code отклоняет действие, а не выполняет его без проверки. При любом подключении это происходит, когда ответ завершается до поступления результатов проверки или результаты приходят в форме, которую Claude Code не может прочитать. К любому из этих случаев может привести LLM-шлюз или прокси, который обрывает ответы или переписывает результаты. При прямом подключении к Anthropic API это также происходит, когда проверка на сервере для действия завершается сбоем, например по тайм-ауту. В разделе Сервер не вернул вердикт безопасности описаны сообщение об отклонении, что происходит при повторяющихся отклонениях и что делать.
Если хук или мод изменяет входные данные действия после проверки сервером, Claude Code может отклонить действие без вердикта. В интерактивных сессиях в терминале и VS Code при прямом подключении к Anthropic API текст отклонения содержит
a hook changed this call's input after auto mode reviewed it. Что делать, описано в соответствующей записи об ошибке.
CLAUDE_CODE_AUTO_MODE_SERVER=0. При прямом подключении к Anthropic API эта переменная требует Claude Code v2.1.281 или новее. Значение 1 в этом случае включает серверную проверку в сессии, где её ещё нет, если только вы также не установили CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. Если вы установили CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 и оставили CLAUDE_CODE_AUTO_MODE_SERVER незаданной, Claude Code также перестаёт запрашивать сервер, за исключением случаев, описанных в разделе Отключение предварительных возможностей.
Модель классификатора по умолчанию
По умолчанию запросы классификатора отправляются в Claude Sonnet 5. Если/status показывает Auto mode server как Enabled, они отправляются только для вызовов вне проверки на стороне сервера.
Найдите в этой таблице первую строку, которая соответствует вашей сессии. Вместо Sonnet 5 вы получите модель из этой строки.
Если Sonnet 5 или модель из
ANTHROPIC_DEFAULT_SONNET_MODEL недоступна у вашего провайдера или исключена политикой моделей вашей организации, Claude Code использует резервную модель. Это модель вашей сессии либо модель Opus в сессии Fable.
Выбор модели классификатора
В Claude Code v2.1.302 или новее задайте вCLAUDE_CODE_AUTO_MODE_MODEL полный идентификатор модели, чтобы запускать классификатор на модели, отличной от модели по умолчанию. Собственные полные идентификаторы моделей вашего облачного провайдера тоже подходят. Этот пример ~/.claude/settings.json задаёт Claude Sonnet 4.6:
Когда проверку выполняет не ваша модель
Если применимо несколько ситуаций, ориентируйтесь на первую в списке.
Проверка того, какую модель использовал классификатор
В оболочке запустите сессию в авторежиме с--debug-file:
curl https://example.com, затем найдите в логе classifier_request_started:
- Ваша модель после
model=: переменная вступила в силу - Другая модель после
model=: найдите в логеignoring CLAUDE_CODE_AUTO_MODE_MODEL— там указаны причина и необходимые действия, если они есть - Такой строки нет: посмотрите значение
Auto mode serverв/statusв промпте Claude Code:Enabled: сервер настроен проверять вызовы этой сессии.Disabled: эта проверка ещё не протестировала вашу модель. Убедитесь, что режим разрешений — авторежим и ни одно правило разрешений не совпадает сcurl, затем снова выполните проверку с отключённой песочницей.
Что классификатор блокирует по умолчанию
Классификатор доверяет вашему рабочему каталогу и remote-репозиториям, которые были для него настроены на момент запуска сессии. Remote, добавленный или перенаправленный во время сессии с помощьюgit remote add или git remote set-url, не считается доверенным, а всё остальное рассматривается как внешнее, пока вы не настроите доверенную инфраструктуру.
Блокируется по умолчанию:
-
Загрузка и выполнение кода, например
curl | bash - Отправка чувствительных данных на внешние эндпоинты
- Развёртывания и миграции в production
- Массовое удаление в облачном хранилище
- Предоставление разрешений IAM или прав на репозиторий
- Изменение общей инфраструктуры
- Необратимое уничтожение файлов, существовавших до начала сессии
- Force push
- Коммит или push изменения, которое при запуске отправит секреты или чувствительные данные за пределы репозитория или расширит то, что раскрывает развёртывание. Сюда относятся CI workflow или конфигурация развёртывания, передающие секрет получателю, который его ещё не получает, скрипт или шаг настройки, который читает хранилище секретов и отправляет данные наружу, а также изменение конфигурации, расширяющее то, что публикует развёртывание, например настройка реестра, видимости, артефакта или sourcemap. Проверка действует на любой ветке, действует даже для общедоступного репозитория и срабатывает при коммите или push изменения независимо от того, запускает ли этот коммит или push конвейер; чтобы снять блокировку, нужно назвать эффект выполнения, а не только коммит или push
-
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 уже был отправлен через push. Изменение только сообщения не блокируется:--amend -mбез новых подготовленных изменений для коммита, который Claude создал в этой сессии -
terraform destroy,pulumi destroy,cdk destroyилиterragrunt destroy, а также применение плана, который уничтожает ресурсы - Запись в менеджер секретов или изменение записей DNS либо сертификатов TLS
- Слияние pull request, который не одобрил ни один человек, одобрение собственного pull request Claude или отключение проверок CI
-
Публикация комментария, который сам является командой для автоматизации, например
atlantis applyили/deployлибо/mergeбота - Переключение, постепенное включение или удаление feature-флага в production
- Применение изменений инфраструктуры к защищённой области действия IaC, а также вывод узлов кластера из работы (drain) и их удаление
-
Запись в общий вычислительный кластер, выходящая за пределы названного вами ресурса, например селектор меток или
--all, который затрагивает задания других пользователей - Создание ресурсов Kubernetes, которые работают на каждом узле или перехватывают трафик кластера, например DaemonSets и admission webhooks
- Интерактивные оболочки или проброс портов на чувствительную удалённую цель
- Открытие туннеля или обратной оболочки, делающих локальный сервис доступным из публичного интернета
- Вывод действующих учётных данных или токена в транскрипт или файл
- Доступ к расположению, указанному как расположение чувствительных данных в вашем окружении, копирование данных из него или отправка данных из него аудитории, которую запись исключает
- Установка пакета в обход вашего внутреннего реестра пакетов через публичный реестр. Это применяется, когда внутренний реестр или зеркало указаны в вашем окружении или когда вы сообщили Claude в диалоге о его существовании
-
Запуск команды с флагом, отключающим защитный механизм, например
--insecure -
Запуск цикла автономного агента, который работает без подтверждения человеком или песочницы, например запущенного с
--dangerously-skip-permissionsили--no-sandbox. Сюда относится запуск стороннего агента или eval harness с отключёнными изоляцией и подтверждением каждого действия, например runner, запущенного с--yes-always - Действия браузера Claude in Chrome, которые могут отправить содержимое страницы, cookie или учётные данные за пределы источника
-
Удаление файлов в
/tmp,$TMPDIRили другом общем каталоге временных файлов или кэша по подстановочному знаку, glob-шаблону или фильтру по возрасту, а не по конкретному указанному пути - Включение чувствительных сведений в контент, отправляемый, загружаемый, публикуемый или записываемый для других людей или в общие системы, если ваше собственное сообщение не разрешало передавать эти сведения данному получателю. Тексты PR и issue, сообщения коммитов и комментарии считаются таким исходящим контентом, когда репозиторий находится за пределами границы доверия или является общедоступным, включая собственные общедоступные репозитории вашей организации; внутренние пути к файлам, кодовые названия, данные из реальных ответов API, такие как адреса электронной почты или идентификаторы учётных записей, и идентификаторы инфраструктуры считаются чувствительными сведениями. Реальные персональные данные из ответа API в тексте PR или issue, такие как адрес электронной почты, идентификатор учётной записи или организации либо метрика использования, требуют, чтобы вы назвали эти сведения и получателя, независимо от видимости репозитория или границы доверия
- Отправка нажатий клавиш в собственную панель tmux Claude Code для управления его собственным интерфейсом, которую классификатор рассматривает как изменение Claude собственных разрешений или надзора за собой
- Комментирование, удаление или принудительное прохождение теста или проверки (assertion), защищающих поведение, связанное с безопасностью, например аутентификацию, контроль доступа, валидацию входных данных или изоляцию в песочнице
- Удаление или уничтожение ресурса с состоянием, который Claude не создавал в этой сессии, когда не применяется более конкретное правило удаления и вы не назвали этот ресурс
-
Перенаправление базового URL API, эндпоинта прокси, получателя webhook или зеркала реестра на сторонний хост, не соответствующий задаче, в том числе в файлах-примерах, таких как
.env.example -
Изменение того, куда выполняются push, с помощью
git remote set-urlилиgit remote add, если вы не назвали новый remote - Push секретов, персональных или доверенных данных в репозиторий, известный как общедоступный, или push туда конфиденциальных материалов, не относящихся к собственной работе этого репозитория. Единственное исключение для персональных или доверенных данных — собственная тематика репозитория dotfiles, а контент из приватного репозитория, попадающий на любую общедоступную площадку, блокируется так же. Если видимость репозитория не установлена, классификатор не блокирует действие только на этом основании; вместо этого он оценивает контент по другим правилам
-
Открытие pull request в другой репозиторий или организацию, создание форка с помощью
gh repo forkили push в сторонний репозиторий, если вы не назвали эту внешнюю цель - Попадание контента из чувствительного локального хранилища или из файла, имя, путь или тип которого указывает на его чувствительность, в коммит, push, текст PR или issue, gist или paste либо публикацию пакета, если вы не назвали и источник, и получателя. Сюда относятся транскрипты сессий и логи диалогов, скрытые каталоги с учётными данными и конфигурацией, такие как ключи SSH, облачные учётные данные, профили браузера и история оболочки, а также экспорты пользовательских данных, и то, что репозиторий приватный, блокировку не снимает
-
Запись в транскрипты сессий Claude Code — файлы истории
.jsonlв~/.claude/projects/или в настроенном вами каталоге конфигурации — напрямую или через shell-команду. Правило также распространяется на строки метаданных, которые Claude Code добавляет к каждой записи транскрипта для собственных проверок. Чтение транскрипта не блокируется -
Рекурсивное принудительное удаление, например
rm -rf "$VAR"илиRemove-Item -Recurse -Force $dir, целью которого является переменная оболочки, не присвоенная в диалоге, который видит классификатор, или glob-шаблон, начинающийся с такой переменной. Без такого присваивания классификатор не может определить, что удалит команда. Блокировка снимается, когда вы называете точный удаляемый путь или когда Claude повторно запускает удаление, вписав в команду вычисленный буквальный путь. Удаления, цель которых классификатор может вычислить, не затрагиваются. Glob-шаблон непосредственно под переменной, как вrm -rf "$VAR"/*, вместо этого считается критическим путём. О целяхRemove-Item, которые представляют собой просто*или заканчиваются на/*или\*, см. Remove-Item в PowerShell: Claude Code сразу отклоняет такую команду.
- Запрос учётных данных у эндпоинта метаданных облачного экземпляра, например
169.254.169.254, или явная аутентификация облачного, кластерного или реестрового вызова с помощью собственного сервисного аккаунта или идентификатора узла машины - Обращение к публичному хосту иным путём, чем прямой запрос, например через туннель, обратную оболочку или конфигурацию резолвера или прокси, переписанную так, чтобы указывать вовне
- Чтение учётных данных, принадлежащих хосту, а не вашей задаче, например сертификатов узла или данных аутентификации узла в реестре контейнеров
- Подключение к соседним контейнерам, подам или виртуальным машинам, которые Claude не запускал, или к узлу, на котором работает контейнер, а также их сканирование
autoMode.environment.
Claude Code v2.1.261 и более поздних версий также блокирует по умолчанию следующее:
- Публикация или запись ссылки на общедоступный сервис для paste, диаграмм или обмена данными в сообщении, тексте PR или issue, документе или в любом другом месте, где ссылка будет открыта или загружена, когда сам URL содержит передаваемый контент, если вы не назвали этот сервис
- Локальные операции с файлами в вашем рабочем каталоге
- Установка зависимостей, объявленных в ваших lock-файлах или манифестах
-
Чтение
.envи отправка учётных данных в соответствующий им API - HTTP-запросы только для чтения
-
Push в любую ветку репозитория, в котором вы работаете, включая ветку по умолчанию. Это не распространяется на ветку, не являющуюся веткой по умолчанию, имя которой обозначает её как цель развёртывания или публикации, например
productionилиgh-pages: push в неё классификатор оценивает отдельно. Содержимое push по-прежнему проверяется по другим правилам классификатора, а правилаpermissions.denyпо-прежнему могут блокировать команды push в том виде, в каком они написаны, в любом режиме. Собственная защита веток на стороне remote по-прежнему действует. - Удаление именно тех заданий, которые Claude создал ранее в той же сессии
- Чтение, проверка или написание кода, конфигураций и моделей угроз, связанных с безопасностью, в рамках вашей задачи
- Сообщения между агентами, работающими вместе в одной многоагентной сессии
-
Отправка данных на доверенные домены, в бакеты и сервисы, которые вы указали в
environment. Это распространяется только на передачу данных, а не на деструктивные операции или операции с учётными данными в той же инфраструктуре - Навигация Claude in Chrome на доверенный внутренний домен, localhost или названный вами URL
claude auto-mode defaults, чтобы вывести полные списки правил в формате JSON. Если рутинные действия блокируются, администратор может добавить доверенные репозитории, бакеты и сервисы через настройку autoMode.environment: см. Настройка авторежима.
Push в любую ветку репозитория, в котором вы работаете, и создание pull request, соответствующего вашему запросу, выполняются без запроса разрешения, если только push или pull request не подпадают под список блокировок, например утечку секретов или чувствительных данных за пределы репозитория или pull request в другой репозиторий или организацию. Чтобы требовать проверки человеком перед этими командами, оставаясь в авторежиме, добавьте правила permissions.ask, которые сопоставляются с командой в том виде, в каком она написана: см. Типичные ограничения.
Первое чтение за пределами рабочих каталогов
Покаpermissions.blockReadsOutsideWorkingDirectories отключена, чтение файлов, кроме чтения из сетевых путей, в авторежиме выполняется без запроса разрешения, в том числе за пределами рабочих каталогов. Когда Claude впервые использует инструмент Read, Grep или Glob для пути за их пределами, Claude Code спрашивает, разрешить ли это чтение.
Запрос не появляется в неинтерактивных запусках -p и фоновых сессиях; чтение там выполняется как прежде.
Каким бы ни был ваш ответ, Claude продолжает работу:
- Да, и и дальше разрешать любое чтение за пределами рабочих каталогов: чтение выполняется, последующие чтения за пределами рабочих каталогов выполняются как прежде, а Claude Code сохраняет ваш ответ, чтобы запрос больше не появлялся
- Нет, и с этого момента блокировать чтение за пределами рабочих каталогов: в чтении отказано, а Claude Code устанавливает
permissions.blockReadsOutsideWorkingDirectoriesв значениеtrueв ваших пользовательских настройках, из-за чего файловые инструменты отказывают в таком чтении в этой и во всех последующих сессиях и во всех режимах разрешений. Чтобы снять блокировку, удалите эту настройку из каждого файла настроек, в котором она задана, затем перезапустите каждую работающую сессию. Для одного каталога в текущей сессии используйте/add-dir. - Нет, и спросить снова в следующий раз: в чтении отказано, и при следующем чтении за пределами рабочих каталогов запрос появится снова
- Да, но спросить снова в следующий раз: чтение выполняется, ничего не сохраняется, и при следующем чтении за пределами рабочих каталогов запрос появится снова
Ограничения, которые вы задаёте в диалоге
Классификатор воспринимает ограничения, которые вы задаёте в диалоге, как сигнал к блокировке. Если вы скажете Claude «не делай push» или «подожди, пока я проверю, прежде чем развёртывать», классификатор заблокирует соответствующие действия, даже если правила по умолчанию их бы разрешили. Ограничение действует, пока вы не снимете его в одном из следующих сообщений. Собственное суждение Claude о том, что условие выполнено, его не снимает. Ограничения не сохраняются как правила. Классификатор заново считывает их из транскрипта при каждой проверке, поэтому ограничение может быть потеряно, если сжатие контекста удалит сообщение, в котором оно было задано. Для надёжной гарантии вместо этого добавьте правило deny.Подтверждения, которые вы даёте в диалоге
Если вы скажете Claude, что заблокированное действие разрешено, классификатор воспримет это как ваше подтверждение и может снять блокировку. От формулировки зависит, будет ли действие выполнено и насколько широко распространяется подтверждение:- Назовите действие и его конкретику: ваше сообщение должно назвать действие и конкретное обстоятельство, которое делает его опасным, например ветку для force push. Одно лишь упоминание глагола ничего не снимает, поэтому «можешь сделать force push» оставляет блокировку в силе.
- Рассчитывайте на одно действие: подтверждение распространяется на названное вами деструктивное действие, поэтому последующее действие снова блокируется, если только вы не дали подтверждение как постоянное. Чтобы не подтверждать рутинный шаблон каждый раз по одному действию, добавьте его в
autoMode.allow. - Некоторые блокировки остаются в силе: порядок приоритета классификатора определяет, какие блокировки может снять ваше подтверждение. Чтобы выполнить шаг, блокировку которого оно не снимает, выйдите из авторежима и ответьте на запрос разрешения.
Когда авторежим переключается на резервный вариант
Когда авторежим не может подтвердить действия вашей сессии, дальнейшее зависит от ситуации:- Заблокированное действие: Claude Code показывает уведомление и выводит действие в
/permissionsна вкладке Recently blocked, где можно подтвердить действие, чтобы Claude мог повторить попытку. - Повторяющиеся блокировки: если классификатор блокирует действие 3 раза подряд или 20 раз в сумме, авторежим приостанавливается, и Claude Code снова начинает запрашивать разрешения. Подтверждение запрошенного действия возобновляет авторежим. О том, как подсчитываются блокировки, см. Пороги повторяющихся блокировок.
- Нет вердикта от классификатора: когда проверка безопасности, не связанная с авторежимом, отклоняет собственный запрос классификатора или ответ классификатора не удаётся разобрать, Claude Code блокирует действие без уведомления и без записи в Recently blocked. Какое сообщение показывается в каждом случае и что делать, см. в разделе Авторежим не может определить безопасность действия.
- Нет вердикта от сервера: при проверке классификатором на стороне сервера Claude Code отклоняет действие, по которому сервер не вынес вердикт, и может остановить ход после десяти подряд ответов без вердикта. См. Сервер не вернул вердикт безопасности.
- Переключение режима во время проверки: если вы переключаете режим разрешений, пока проверка классификатора ещё не завершена, Claude Code отбрасывает вердикт, который новый режим не запросил бы. Вместо этого вам показывается запрос подтверждения, либо действие автоматически отклоняется в режиме
dontAsk.
Пороги повторяющихся блокировок
Пороги в 3 блокировки подряд и 20 блокировок в сумме не настраиваются. Общий счётчик сохраняется в течение сессии и сбрасывается только тогда, когда его собственный предел вызывает переключение на резервный вариант. Claude Code не учитывает отклонение ни в одном из порогов, если собственный запрос классификатора отклонила проверка безопасности, не связанная с авторежимом. У неинтерактивного запуска-p без --permission-prompt-tool нет запроса разрешения, на который можно было бы переключиться. Когда повторяющиеся блокировки достигают порога, действие не выполняется, а Claude продолжает работу. Claude Code не останавливает запуск.
Повторяющиеся блокировки обычно означают, что классификатору не хватает контекста о вашей инфраструктуре. Используйте /feedback, чтобы сообщить о ложных срабатываниях, или попросите администратора настроить доверенную инфраструктуру.
Как авторежим оценивает действия
В следующих разделах описаны порядок, в котором Claude Code оценивает действие, то, как классификатор проверяет работу субагентов, и то, какие затраты и задержку добавляют вызовы классификатора.Как классификатор оценивает действия
Как классификатор оценивает действия
Каждое действие проходит через фиксированный порядок принятия решений. Срабатывает первый подходящий шаг:
- Действия, соответствующие вашим правилам allow, ask или deny, разрешаются немедленно, за следующими исключениями:
- Запись в защищённые пути направляется классификатору, даже если совпадает правило allow. Когда защищённый путь — это файл, на который указывает файл настроек, являющийся символической ссылкой, при записи вместо этого может появиться запрос подтверждения, как описано в списке защищённых путей
- Никакое правило allow не одобряет распознанные удаления критических путей с помощью
rmиrmdir - Инструменты MCP, помеченные
requiresUserInteraction, напрямую запрашивают у вас подтверждение, даже если совпадает правило allow; то же касается инструментов коннекторов, для которых ваша организация установилаask, в сессиях, где эта настройка применяется к Claude Code - Shell-команда, содержащая разрешённые домены для отдельной команды, также направляется классификатору, даже если совпадает правило allow, поскольку правило одобряет команду, а не её хосты
- Правила ask, сопоставляемые с содержимым команды, например
Bash(git push *), переходят к запросу разрешения - Запись, которую проверка символических ссылок разрешает в защищённый путь, вызывает запрос подтверждения, если путь, запрошенный Claude, сам по себе не является защищённым
- Чтение по сетевому пути вызывает запрос подтверждения, даже если совпадает правило allow
- Действия только для чтения и редактирование файлов в вашем рабочем каталоге одобряются автоматически, за исключением записи в защищённые пути и первого чтения за пределами рабочих каталогов, которое вызывает запрос подтверждения
- В сессии с проверкой классификатором на стороне сервера shell-команды только для чтения и выполняемые в песочнице ожидают этой проверки и блокируются, если она их помечает
- Запись внутри рабочего каталога, которую проверка символических ссылок разрешает в расположение за его пределами, вызывает запрос подтверждения
- Когда Claude читает артефакт, созданный кем-то другим, применяются случаи подтверждения, перечисленные в том разделе
- Чтение по сетевому пути вызывает запрос подтверждения
- Всё остальное передаётся классификатору, за исключением удалений критических путей при их обработке по умолчанию. Инструменты коннекторов и инструменты MCP с
requiresUserInteraction, которые на шаге 1 напрямую запрашивают у вас подтверждение, также никогда не попадают к классификатору, поэтому ни подтверждение, требуемое организацией, ни шаг получения согласия не одобряются автоматически- При включённом Code Mode код Claude передаётся классификатору один раз перед выполнением, а вызовы инструментов внутри него — нет. Вы по-прежнему можете заблокировать вызов правилом
denyили потребовать запрос подтверждения правиломask, но Claude может выполнять команды Bash в формах, с которыми правила не совпадают
- При включённом Code Mode код Claude передаётся классификатору один раз перед выполнением, а вызовы инструментов внутри него — нет. Вы по-прежнему можете заблокировать вызов правилом
- Если классификатор блокирует действие, Claude получает причину. В большинстве сессий причина указывает правило, которому соответствовал классификатор, например
[Data Exfiltration], а не содержит письменное объяснение; см. Просмотр отказов
tool.check, также может одобрить действие. О случаях, когда его одобрение не проходит через ваши правила и хуки, см. Расширение разрешений с помощью хуков.О том, как подтверждаются действия браузера Claude in Chrome в расширении VS Code, см. Запросы разрешений в сессиях VS Code.При входе в авторежим широкие правила allow, дающие возможность выполнять произвольный код, отбрасываются:- Универсальные
Bash(*)илиPowerShell(*) - Интерпретаторы с подстановочными знаками, например
Bash(python*) - Команды запуска менеджеров пакетов
- Правила allow для
Agent - Правила allow для
Monitor, потому что Claude Code выполняет команды Monitor через оболочку
Bash(npm test), остаются в силе. Claude Code восстанавливает отброшенные правила, когда вы выходите из авторежима. До v2.1.236 Claude Code оставлял правила allow для Monitor в силе в авторежиме, поэтому правило, совпадавшее со всем инструментом, одобряло команды Monitor без проверки классификатором.Кроме того, перед командой, которая отбросила бы незафиксированную работу, например git reset --hard или rm -rf, Claude Code сам выполняет git status и показывает классификатору, есть ли подготовленные, изменённые или неотслеживаемые изменения. Claude Code сообщает о неотслеживаемых файлах в этой проверке, даже если конфигурация git репозитория задаёт status.showUntrackedFiles=no.В запросах классификатора, которые отправляет сам Claude Code, классификатор видит сообщения пользователя, вызовы инструментов, кроме операций поиска только для чтения, таких как чтение файлов и поиск, а также содержимое вашего CLAUDE.md. Результаты инструментов из этих запросов удаляются, поэтому враждебный контент в файле или на веб-странице не может напрямую манипулировать классификатором.Вы можете снабдить результат вызова аннотацией с помощью поля classifierContext хука PostToolUse, которое классификатор воспринимает как контекст, предоставленный приложением. Поле требует Claude Code v2.1.236 или новее.Отдельный зонд на стороне сервера сканирует входящие результаты инструментов и помечает подозрительный контент до того, как Claude его прочитает. Подробнее о том, как эти уровни работают вместе, см. в анонсе авторежима и подробном инженерном разборе.Как авторежим обрабатывает субагентов
Как авторежим обрабатывает субагентов
Классификатор проверяет работу субагентов в трёх точках:
- Перед запуском субагента оценивается описание делегированной задачи, поэтому задача, выглядящая опасной, блокируется в момент создания субагента.
- Во время работы субагента каждое его действие проходит через тот же порядок принятия решений, что и в родительской сессии, с теми же правилами блокировки и разрешения. Любой
permissionModeво frontmatter субагента игнорируется. - Когда субагент завершает работу, классификатор проверяет его работу и итоговый отчёт до того, как родитель прочитает отчёт. Если классификатор помечает работу или отчёт субагента либо отдельная проверка безопасности API отклоняет проверку, отчёт всё равно доставляется, но с предупреждением о безопасности в начале. Если классификатор недоступен для проверки, отчёт приходит с примечанием о том, что работу субагента нужно проверить, прежде чем на неё опираться.
Стоимость и задержка
Стоимость и задержка
Запросы классификатора, которые отправляет Claude Code, могут выполняться на модели, отличной от выбранной через
/model. См. на какой модели они выполняются.На планах Enterprise и в учётных записях, использующих Claude API, Claude Platform on AWS, Amazon Bedrock, Google Cloud’s Agent Platform или Microsoft Foundry, вызовы классификатора учитываются в вашем расходе токенов. Каждая проверка отправляет часть транскрипта вместе с ожидающим действием, добавляя один цикл запроса и ответа перед выполнением. Чтение и редактирование в рабочем каталоге вне защищённых путей обходят классификатор, поэтому накладные расходы возникают в основном из-за shell-команд и сетевых операций. Там, где сервер проверяет действия в составе запросов к модели в рамках сессии, отдельных вызовов классификатора, которые нужно учитывать, нет; см. Проверка классификатором на стороне сервера.Доступ к сети в песочнице не добавляет запросов классификатора для каждого соединения. Классификатор оценивает хосты, указанные командой, вместе с самой командой в рамках одной проверки, а Claude Code сверяет каждое соединение с одобренным списком, не вызывая классификатор повторно.Разрешить только предварительно одобренные инструменты с режимом dontAsk
Если вы установите режимdontAsk, Claude Code автоматически отклоняет каждый вызов инструмента, который иначе требовал бы запроса, хотя установленный вами мод всё же может подтвердить некоторые из этих вызовов. Чтобы узнать, какие вызовы может подтвердить мод, см. Расширение разрешений с помощью хуков.
Claude по-прежнему выполняет действия, которые не требуют подтверждения в режиме Manual, такие как чтение файлов в ваших рабочих каталогах и команды Bash только для чтения. Действия, соответствующие вашим правилам permissions.allow, и вызовы, одобренные хуком PreToolUse, тоже выполняются. Используйте этот режим для конвейеров CI или ограниченных сред, где вы предварительно определяете, что Claude может делать; сессия никогда не ждёт ввода. Строка состояния показывает ⏵⏵ don't ask on в этом режиме.
Claude Code отклоняет вызовы, соответствующие вашим явным правилам ask, а не запрашивает их. Он также отклоняет встроенный инструмент AskUserQuestion, даже если ваши правила разрешения совпадают с ним, и делает то же самое с инструментами коннекторов, для которых ваша организация установила ask, в сессиях, где эта настройка доходит до Claude Code. Он таким же образом отклоняет инструменты MCP, отмеченные _meta["anthropic/requiresUserInteraction"], потому что их карточка подтверждения требует ответа, который этот режим никогда не собирает.
Правило разрешения или хук PreToolUse не могут одобрить следующее:
- Распознанные удаления
rmиrmdir, нацеленные на критический путь, такие какrm -rf /иrm -rf ~ - Чтение по сетевому пути
defaultMode: "dontAsk"; см. bypassPermissions для получения подробной информации.
Установите его при запуске с флагом:
Пропустить все проверки с режимом bypassPermissions
РежимbypassPermissions отключает запросы разрешений и проверки безопасности, чтобы вызовы инструментов выполнялись немедленно, включая записи в защищённые пути.
Даже в режиме bypassPermissions каждое из действий, которые ни один режим не одобряет автоматически, вызывает запрос или отклоняется, хотя вы можете отключить запрос для опасных команд rm. Чтение публичного артефакта другой организации требует вашего подтверждения, а этот режим его не запрашивает, поэтому Claude не может прочитать такой артефакт. Запреты Remove-Item в PowerShell также применяются в этом режиме.
Две гарантии обмена сообщениями между сеансами по-прежнему применяются в этом режиме, и в интерактивных сеансах режима plan, где доступны разрешения на обход:
- Запрос одобрения
isolatePeerMachinesдля сообщений вашим сеансам за пределами этой машины по-прежнему появляется. - Когда не применяется значение
crossSessionInbound, Claude Code держит входящее сообщение от другого вашего сеанса для вашего одобрения и доставляет без запроса только когда отправляющий сеанс идентифицирует себя как также обходящий запросы разрешений. Если вы покидаете режим разрешений, пока сообщения удерживаются, Claude Code повторно применяет входящие правила и доставляет любое удерживаемое сообщение, которое они теперь принимают.
rm и rmdir, нацеленные на критические пути, по-прежнему требуют запроса.
Режим plan сохраняет свои блокировки везде, где Claude Code работает без интерактивного терминала, включая неинтерактивные запуски с -p, сеансы Agent SDK и беседы в панели чата расширения VS Code. Там --allow-dangerously-skip-permissions делает bypassPermissions доступным для выбора позже.
Вы не можете войти в bypassPermissions из сеанса, который вы запустили без него включённого. Включите его при запуске с permissions.defaultMode: "bypassPermissions" или с включающим флагом:
--dangerously-skip-permissions эквивалентен.
Claude Code отклоняет bypassPermissions в сеансе, который вы запускаете с --restricted. --restricted требует Claude Code v2.1.248 или позже.
В первый раз, когда вы запускаете интерактивную сессию с включённым этим режимом, Claude Code показывает диалоговое окно предупреждения, предлагающее вам принять ответственность за действия, выполняемые без проверок разрешений:
- Если вы согласитесь: Claude Code устанавливает
skipDangerousModePermissionPromptнаtrueв~/.claude/settings.json, поэтому более поздние сеансы пропускают диалоговое окно. Чтобы увидеть диалоговое окно снова, удалите ключ из этого файла или установите его наfalse. СправкаskipDangerousModePermissionPromptперечисляет другие файлы параметров, где вы или ваша организация можете установить его. - Если вы отклоните: Claude Code выходит.
--setting-sources без user, диалоговое окно может появиться снова, хотя вы уже приняли его ранее. Чтобы пропустить его, добавьте user, например --setting-sources user,project.
В неинтерактивном режиме диалоговое окно не показывается.
Фоновая сессия учитывает ваше согласие, если оно записано в пользовательских или управляемых настройках:
-
Если согласие не записано,
claude --bg --permission-mode bypassPermissionsотклоняется. Сначала примите диалоговое окно в интерактивной сессии. -
Если
skipDangerousModePermissionPromptзадан только в.claude/settings.local.json, фоновая сессия запускается, игнорируя запрос на обход:- Если проигнорирован
--allow-dangerously-skip-permissions,bypassPermissionsисключается из её циклаShift+Tab. - Если проигнорированы
--permission-mode bypassPermissionsили--dangerously-skip-permissions, сессия вместо этого запускается в режиме Manual.
"skipDangerousModePermissionPrompt": trueв~/.claude/settings.json, а затем запустите новую фоновую сессию. - Если проигнорирован
bypassPermissions при работе от пользователя root или под sudo:
defaultMode: "bypassPermissions" или "dontAsk" из ваших файлов параметров, поэтому проверенные в репозитории параметры не могут запустить облачный сеанс в режиме bypass-permissions. Параметр игнорируется молча, и сеанс запускается в режиме разрешений, показанном в селекторе режима вместо этого. См. Переключение режимов разрешений для информации о том, какие режимы предлагают облачные сеансы.
Обход разрешений проигнорирован в фоновой сессии
Это уведомление означает, что фоновая сессия не нашла вашего согласия с предупреждением об обходе разрешений в пользовательских или управляемых настройках, поэтому она проигнорировала запрос на обход, сделанный при запуске:"skipDangerousModePermissionPrompt": true в ~/.claude/settings.json, а затем запустите новую фоновую сессию.
claude agents показывает предупреждение об обходе разрешений, которое интерактивные сессии пропускают
Если claude agents показывает предупреждение об обходе разрешений, хотя ваши интерактивные сессии его пропускают, проверьте, не задан ли skipDangerousModePermissionPrompt в .claude/settings.local.json или в файле --settings. Интерактивные сессии считают ключ в этих местах вашим согласием с предупреждением, а claude agents — нет. Независимо от того, найдёте ли вы его там, примите предупреждение, чтобы добавить ключ в ~/.claude/settings.json, где claude agents его ищет.
Защищённые пути
Небольшой набор путей содержит состояние репозитория и собственную конфигурацию Claude, поэтому в каждом режиме действует своё правило для записи в них:
В сеансе, запущенном с
--restricted, который требует Claude Code v2.1.248 или позже, классификатор не может одобрить записи в защищённые пути.
Пока включён параметр permissions.blockWritesOutsideWorkingDirectories, Claude Code отклоняет записи Write, Edit и NotebookEdit в файлы настроек в любом режиме разрешений.
В режимах, которые маршрутизируют записи в защищённые пути классификатору, запись, которую проверка символических ссылок разрешает в защищённый путь, требует вашего подтверждения вместо этого, когда путь, который запросил Claude, сам по себе не защищён.
Правила permissions.allow в файлах параметров не предварительно одобряют записи в защищённые пути. Проверка безопасности выполняется до того, как Claude Code оценивает правила allow из параметров, поэтому запись вроде Edit(.claude/**) в ~/.claude/settings.json или .claude/settings.json не изменяет результат для каждого режима в таблице выше. В режимах, которые требуют подтверждения, запрос для записи в папку .claude/ проекта или в ~/.claude/ может предложить один из этих вариантов, ограниченных сеансом:
- Для папки
.claude/проекта: Да, и разрешить Claude редактировать файлы в папке .claude этого проекта для этого сеанса - Для
~/.claude/: Да, и разрешить Claude редактировать файлы в своей папке ~/.claude для этого сеанса
.git.config/git.vscode.idea.husky.cargo.devcontainer.yarn.mvn.claude, за некоторыми исключениями, например:- собственные git worktrees Claude в
.claude/worktrees/ - собственные файлы планов текущей сессии в
~/.claude/plans/или в заданном вамиplansDirectory - собственный временный каталог фоновой сессии в
~/.claude/jobs/<id>/tmp/ - файлы markdown в каталоге автоматической памяти проекта, например
~/.claude/projects/<project>/memory/, в сессии, запущенной без--restricted - файлы markdown в каталоге памяти субагента, например
.claude/agent-memory/, в сессии, запущенной без--restricted
- собственные git worktrees Claude в
- Каталог, который вы загрузили с помощью
--plugin-dir, потому что Claude Code перезагружает и запускает код мода из него при изменении файла ~/.claude/dev-mods/илиdev-mods/в каталоге, на который указываетCLAUDE_CONFIG_DIR, куда Claude сохраняет моды, которые он пишет для вас
.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.jsonremote-settings.json— сохранённая копия управляемых сервером настроек вашей организации, а также файлы подписи, синхронизации и согласия, которые Claude Code хранит вместе с ней, в~/.claudeили в каталоге, на который указываетCLAUDE_CONFIG_DIR- Файл, который вы передали в
--settings,--mcp-configили--agentsпри запуске сессии - Файл, на который указывает ваш пользовательский, проектный или локальный файл настроек, когда сам файл настроек является символической ссылкой, например в репозиторий dotfiles. В режимах, которые маршрутизируют записи в защищённые пути классификатору, запись в этот файл вместо этого требует вашего подтверждения, даже если совпадает правило allow. Если собственный путь файла также является путём файла настроек, например
.claude/settings.jsonв другой папке, запись направляется классификатору, как и другие записи в защищённые пути
Критические пути
Критические пути — это каталоги, которые Claude Code защищает от командrm и rmdir, такие как корневой каталог файловой системы, ваш домашний каталог и ваш рабочий каталог. Claude Code проверяет эти команды перед их выполнением, и ни одно правило allow не одобряет команду, цель которой он распознаёт как критический путь. Проверка может пропустить некоторые команды, поэтому она не заменяет средства контроля на уровне операционной системы, такие как изоляция в песочнице.
Удаление критического пути — это команда rm или rmdir, цель которой Claude Code распознаёт как критический путь. Хук PreToolUse, который возвращает "allow", также не может его одобрить. Правило allow или хук PreToolUse не могут одобрить такое удаление даже в режимах разрешений, которые пропускают другие запросы.
Эти средства контроля действуют независимо от того, распознаёт ли проверка команду:
- Правила deny: правило deny, совпадающее с командой, блокирует её, хотя установленный вами мод всё ещё может одобрить некоторые из таких вызовов
- Изоляция в песочнице: при изоляции в песочнице операционная система ограничивает пути, в которые могут записывать команды Bash. Команды в песочнице всё равно могут удалить ваш рабочий каталог
- Строгий режим песочницы: по умолчанию команду в песочнице можно повторить вне песочницы, и правило allow или режим
bypassPermissionsмогут одобрить эту повторную попытку без запроса. Строгий режим песочницы отключает повторную попытку
Remove-Item и встроенные команды cmd для удаления имеют свои собственные проверки, описанные в Remove-Item в PowerShell.
Какие пути являются критическими
Claude Code рассматривает цельrm или rmdir как критический путь, когда это любое из следующего:
- Корневой каталог файловой системы
- Каталоги верхнего уровня, то есть любой прямой потомок корня, такой как
/usr,/etcили/data - Ваш домашний каталог. В Windows также учитывается его короткое имя 8.3, например
C:\Users\LONGNA~1 - Корни дисков Windows и их каталоги верхнего уровня, такие как
C:\иC:\Windows. Такие варианты написания, как\\?\C:\и\\localhost\C$, считаютсяC:\ - Ваш рабочий каталог и его родители
- Ваши дополнительные рабочие каталоги и их родители, но только когда удаление — это glob под одним из них, такой как
rm -rf <dir>/*.rm -rf <dir>на самом каталоге не вызывает эту проверку
/mnt/c или /Volumes/USB, см. Запрос для смонтированных дисков.
Проверки короткого имени 8.3 домашнего каталога и вариантов написания \\?\C:\ и \\localhost\C$ требуют Claude Code v2.1.292 или позже.
Другие цели, которые считаются критическими путями
Claude Code также рассматривает следующие целиrm и rmdir как критические пути. Последний столбец объясняет, почему каждая из них считается критической.
Чтобы отключить проверку на цели, которая является только выводом подстановки команды, установите
CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1 в окружении, которое запускает Claude Code.
Удаления внутри вложенных команд и встроенных скриптов
Claude Code также смотрит внутри этих конструкций:- Вложенные команды: подоболочка с
(...), группа в фигурных скобках с{ ...; }, подстановка команд с$(...)или обратные кавычки, или подстановка процесса с<(...). Claude Code находит удаление критического пути, находится ли оно внутри вложенной формы, как в(rm -rf ~)илиecho "$(rm -rf ~)", или в другом месте той же команды. - Встроенные скрипты: скрипт, переданный
sh,bash,zshили аналогичной POSIX-оболочке с-c, как вbash -c 'rm -rf ~'.- Когда скрипт заключён в двойные кавычки, вызывающая оболочка расширяет его переменные перед тем, как внутренняя оболочка получит скрипт. В
find . -name '*.tmp' -exec sh -c "rm -rf \"$1\"/*" _ {} \;команда расширяется в удаление из корня файловой системы один раз для каждого совпадения, и Claude Code рассматривает это как удаление критического пути. - Скрипт в одинарных кавычках, который привязывает
$1к реальному значению, какsh -c 'rm -rf "$1"/*' _ {}, не помечается.
- Когда скрипт заключён в двойные кавычки, вызывающая оболочка расширяет его переменные перед тем, как внутренняя оболочка получит скрипт. В
-c, например ~, установите CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT=1 в окружении, которое запускает Claude Code.
Переписать помеченную команду
Как переписать команду, чтобы она прошла проверку, зависит от того, какие из других целей она использует:- Glob или косая черта под переменной, такой как
$DIR: защитите каждое расширение так, чтобы оболочка остановилась с ошибкой, когда переменная не установлена или пуста, как вrm -rf "${DIR:?}"/*, или используйте буквальный путь. Удаление, чьи расширения защищены таким образом, проходит эту проверку, поэтому в режимеbypassPermissionsоно выполняется без запроса, если другая критическая-путь проверка не помечает его. - Glob или косая черта под переменной, которая обычно установлена, такой как
$HOME: используйте буквальный путь. - Переменная, присвоенная из подстановки, выводящей каталог: используйте буквальный путь. Защита
"${D:?}"не очищает эту проверку, потому что переменная не пуста. - Цель, которая является только выводом подстановки команды: запустите подстановку самостоятельно сначала, а затем удалите буквальные пути, которые она выводит. Запрос говорит Claude сделать то же самое.
rm и говорит, как переписать её, чтобы проверка прошла.
Запрос Dangerous rm operation not ruled out
Полная причина выглядит так:
rm в команде нет. В режиме auto или bypassPermissions отклонение с этим предложением исходит от той же проверки:
bypassPermissions, хотя в режиме bypassPermissions этот запрос можно отключить. Одобрить команду с помощью правила allow Bash или Bash(*), режима автоматического разрешения песочницы или хука PreToolUse, возвращающего "allow", нельзя. Прочитайте команду, а затем одобрите запрос или, после отклонения, выполните её в своей оболочке.
Запрос для смонтированных дисков
Запрос для смонтированных дисков появляется в macOS, Linux и WSL, когда рекурсивная командаrm нацелена на один из перечисленных путей смонтированных дисков, например /mnt/c или /Volumes/USB/build. Его причина выглядит так: Dangerous rm operation on mounted drive path: <path>. Цель /* получает запрос и без рекурсивного флага, поскольку Claude Code читает rm /Volumes/USB/build/* как удаление /Volumes/USB/build.
Даже при наличии правила allow для rm Claude Code обрабатывает команду как удаление критического пути: запрос или отклонение в зависимости от вашего режима разрешений. Одобрите запрос, чтобы позволить rm выполниться, или отключите запрос.
Пути, для которых появляется запрос для смонтированных дисков
Сопоставьте цель вашего рекурсивногоrm или удаления /* с этими формами путей, где каждый заполнитель, такой как <drive> или <name>, обозначает ровно один сегмент пути:
Для рекурсивной или нерекурсивной команды
rm на самих /Volumes, /media или /mnt вы вместо этого видите причину критического пути Dangerous rm operation on critical path: <path>.
Относительная цель отсчитывается от вашего рабочего каталога, поэтому rm -rf build, пока вы работаете в /Volumes/USB, нацелена на /Volumes/USB/build и получает запрос.
Отключение запроса для смонтированных дисков
Чтобы перестать получать запрос для смонтированных дисков, сохранив запросы по другим причинам, запустите Claude Code сCLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT=1 в его окружении. Например, установите переменную в вашей оболочке и запустите из неё claude:
/Volumes/USB, ни для других перечисленных путей. Если вы разрешаете Bash(rm *), используете режим Manual и работаете в /Volumes/USB, то rm -rf build выполняется без запроса.
Если запрос по-прежнему показывает Dangerous rm operation on mounted drive path, значит, переменная не доходит до сессии:
- Переменная в файле настроек: Claude Code игнорирует переменную в блоке
envфайла настроек, независимо от вида файла настроек, поэтому вместо этого установите переменную там, где вы запускаетеclaude - Сессия запущена без переменной: снова запустите
claudeиз окружения, в котором переменная установлена, поскольку запущенная сессия её не подхватывает
Удаления, которые по-прежнему вызывают запрос при отключённом запросе для смонтированных дисков
В режиме Manual с правилом allow дляrm команда rm на пути смонтированного диска всё ещё может вызвать запрос, но без причины Dangerous rm operation on mounted drive path:
- Цель вне ваших рабочих каталогов:
rm -rf /Volumes/USB/other, пока вы работаете в/Volumes/USB/project, получает запрос. Чтобы убрать этот запрос, добавьте в сессию каталог, содержащий цель - Цель с
*:rm -rf build/*получает запрос. Одобрите этот запрос, чтобы выполнить команду, или попросите Claude назвать каждую цель без* - Цель, являющаяся критическим путём: сам
/mntи сам ваш рабочий каталог остаются критическими путями, поэтомуrm -rfна любом из них получает запрос. Одобрите этот запрос, чтобы позволитьrmвыполниться
Удаления критических путей в каждом режиме разрешений
Что Claude Code делает с удалением критического пути, зависит от вашего режима разрешений:
Если явное правило ask совпадает с командой, Claude Code спрашивает вас вместо этого, даже в режиме
auto и без ограничения по времени. В режимах, которые спрашивают, hook PermissionRequest может ответить на запрос.
Чтобы выполнять такие удаления без запроса в режиме bypassPermissions, см. Отключение запроса при удалении критических путей.
Ограничения по времени и отклонения в режимах auto и bypassPermissions
В режимахauto и bypassPermissions запрос в терминале для удаления критического пути показывает обратный отсчёт в две минуты:
- Если обратный отсчёт закончится до того, как вы ответите, Claude Code отклоняет команду и говорит Claude, что делать вместо этого, поэтому автоматический сеанс продолжает работать.
- Нажмите любую клавишу, пока запрос открыт, чтобы остановить обратный отсчёт и оставить запрос в ожидании вашего ответа.
- После трёх таких запросов, которые остаются без ответа в сеансе, Claude Code перестаёт их показывать и немедленно отклоняет дальнейшие удаления критических путей. Отправка нового сообщения начинает отсчёт заново.
auto вне терминала.
Вне терминала вы не получаете этот запрос:
Везде, где удаление отклонено, вы можете прочитать всю команду и выполнить её в своей оболочке.
Чтобы изменить поведение в каждом режиме, установите
CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT в 1:
bypassPermissions: запрос в терминале не имеет ограничения по времени, а панель чата VS Code спрашивает васauto: решает классификатор — в терминале, в панели чата VS Code, в запусках с-pи в сессиях Agent SDK
env SDK, а не в файле настроек Claude Code. Для панели чата добавьте её в claudeCode.environmentVariables в собственном пользовательском settings.json VS Code, а затем начните новый диалог:
Отключение запроса при удалении критических путей в режиме bypassPermissions
Чтобы команды Bashrm и rmdir, нацеленные на критические пути, выполнялись без запроса в режиме bypassPermissions, запустите Claude Code с CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1 в его окружении. Для этого требуется Claude Code v2.1.311 или позже. Claude Code читает переменную только из окружения запуска и игнорирует её в блоке env файла настроек. Например, установите её в вашей оболочке и запустите claude оттуда:
- macOS, Linux, WSL
- Windows PowerShell
- Windows CMD
bypassPermissions, а не в режиме планирования, и только для того, что помечает проверка критических путей в инструментах Bash и Monitor. Сюда входят команды, которые Claude Code не может полностью разобрать: они тоже выполняются без запроса.
Уведомления при запуске о запросе при удалении критических путей
Чтобы проверить, работает лиCLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS, прочитайте строку, которую Claude Code выводит при запуске. При запуске с -p она выводится в stderr. В приложении Agent SDK передайте параметр stderr, чтобы прочитать её. Строка содержит одно из следующего:
is set, so dangerous rm commands can run without a prompt: удаления могут выполняться без запроса после того, как загрузятся управляемые настройки и хуки плагинов. Если удаления по-прежнему получают запрос или отклонение, см. Почему запрос при удалении критических путей остаётся включённымhas no effect in this session: удаления сохраняют свой обычный запрос или отклонение на протяжении всей сессии. Чтобы это изменить, найдите свой случай в разделе Почему запрос при удалении критических путей остаётся включённымhas no effect while the Windows registry cannot be read for managed settings: удаления сохраняют свой обычный запрос или отклонение, а переменная вступает в силу без перезапуска, если последующее чтение реестра завершится успешно. Если удаления по-прежнему получают запрос или отклонение, см. Почему запрос при удалении критических путей остаётся включённым
stderr не видит строку, а удаления всё равно могут выполняться без запроса. В остальных случаях проверьте, что вы установили переменную в окружении запуска, что сессия может перейти в режим bypassPermissions и что claude не запущен внутри другой сессии. Некоторые сессии запускаются без переменной.
Если вы видите одну из этих строк, но не устанавливали переменную, найдите, где она установлена, например в профиле вашей оболочки, и удалите её.
Почему запрос при удалении критических путей остаётся включённым
ЕслиCLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS не действует и удаления сохраняют свой обычный запрос или отклонение, проверьте наличие таких причин:
- Запросы разрешений обрабатывает что-то другое:
--permission-prompt-toolили callbackcanUseToolAgent SDK без--permission-prompts none, хукPermissionRequestс любым matcher или мод, обрабатывающий это событие. Удалите хук, мод, инструмент или callback и перезапуститеclaude - Сессию запускает панель чата расширения VS Code или приложение Desktop: вместо этого запустите
claudeв терминале, например во встроенном терминале IDE - Правило охватывает Bash, Edit или Read: правило deny или ask, нацеленное на один из этих инструментов, при запуске или после того, как Claude Code прочитает его во время сессии, даже если вы позже его удалите. Удалите правило и перезапустите
claude. Чтобы исключить инструмент, используйте--toolsвместо правила deny - Включена настройка
permissions.blockReadsOutsideWorkingDirectories: удалите эту настройку из каждого файла настроек, где она установлена вtrue, затем перезапуститеclaude claudeзапущен внутри другой сессии:claude, запущенный из инструмента Bash сессии или из хука, даже если переменная указана в его командной строке. Запускайтеclaudeиз своей оболочки. Не полагайтесь на это ограничение вложенных сессий как на границу безопасности- Хук
PreToolUseотвечаетaskдля удаления: измените то, что возвращает хук - Claude Code запускает сессию за вас: фоновые сессии, участники команды агентов в разделённых панелях и сессии, которые создаёт сервер Remote Control, запускаются без переменной. Запускайте
claudeиз своей оболочки - Не удаётся прочитать управляемые настройки: Claude Code не смог успешно прочитать источники ваших управляемых настроек. Если серверные управляемые настройки по-прежнему не загружаются, см. Remote managed settings failed to load. При любом другом сбое, не связанном с запросом к реестру, попросите того, кто управляет этим источником, исправить его
- Не удаётся выполнить запрос к реестру Windows: в Windows и в WSL переменной нужен ответ от реестра, даже когда WSL не использует его для настроек. Запрос может не выполняться на протяжении всей сессии в неанглоязычной Windows, в WSL с отключённым interop или в контейнере на ядре WSL2. Если interop отключён, включите его. В противном случае выполняйте такие удаления сами
Remove-Item в PowerShell
Когда вы включаете инструмент PowerShell, Claude Code даётRemove-Item и встроенные команды cmd rd, rmdir, del и erase свои собственные проверки, отдельные от списка критических путей rm. Для Remove-Item результат зависит от цели, и первый совпадающий случай применяется:
- Системные пути: корневой каталог файловой системы и его каталоги верхнего уровня, корни дисков и их каталоги верхнего уровня, и ваш домашний каталог. Claude Code отклоняет команду в каждом режиме, без запроса у вас.
- Подстановочные знаки: голый
*или любая цель, заканчивающаяся на/*или\*, включая glob под переменной оболочки, такой как$dir/*. Claude Code отклоняет команду в каждом режиме, без запроса у вас, перед тем как классификатор её видит. - Ваш рабочий каталог или один из его родителей, с
-Recurse: Claude Code рассматривает команду как любую другую, которая требует одобрения в вашем режиме разрешений, поэтому он спрашивает вас в режимах, которые спрашивают, отправляет её классификатору в режимеautoи отклоняет её в режимеdontAsk. РежимbypassPermissionsпропускает эту проверку.
rd, rmdir, del и erase, когда Claude запускает их через cmd, как в cmd /c rd /s /q C:\Users. По умолчанию Claude Code отклоняет такую команду в каждом режиме, без запроса у вас. Эта проверка cmd требует Claude Code v2.1.283 или позже.
При оценке цели cmd Claude Code рассматривает переменную PowerShell, которая следует за буквальным текстом, как пустую. Это делает cmd /c rd /s /q "C:\$name" удалением C:\, поэтому она также отклоняется. Завершающий подстановочный знак считается папкой, которую он очищает, поэтому cmd /c del /q C:\* отклоняется, а cmd /c del /q dist\* в вашем проекте — нет.
Чтобы отключить проверку cmd, установите CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY=1 в окружении, которое запускает Claude Code. Claude Code игнорирует эту переменную в блоке env файла параметров. Remove-Item на системном пути остаётся отклонённым в любом случае.
См. также
- Permissions: правила allow, ask и deny; управляемые политики
- Configure auto mode: скажите классификатору, какую инфраструктуру ваша организация доверяет
- Hooks: пользовательская логика разрешений через hooks
PreToolUseиPermissionRequest - Security: гарантии безопасности и лучшие практики
- Sandboxing: изоляция файловой системы и сети для команд Bash
- Non-interactive mode: запустите Claude Code с флагом
-p