Режим разрешений Claude Code определяет, какие действия выполняются без Вашего подтверждения. default (отображается как Manual) спрашивает перед правками и shell-командами. acceptEdits дополнительно пропускает правки файлов и распространённые файловые команды. plan позволяет Claude читать код и предлагать план, но не вносить правки. auto поручает одобрение действий фоновому классификатору вместо Вас. dontAsk отклоняет всё, что потребовало бы подтверждения. bypassPermissions, который включается флагом --dangerously-skip-permissions, почти полностью пропускает запросы и предназначен только для изолированных контейнеров или VM. Нажмите Shift+Tab, чтобы переключать режимы, или запустите claude --permission-mode <mode>.
Это руководство основано на документации по режимам разрешений от Anthropic. Claude Code часто меняется, поэтому сверяйтесь с ней для своей версии.
01Шесть режимов вкратце
default (Manual)Только чтениеПроверка каждого действия, работа с чувствительными даннымиacceptEditsЧтение, правка файлов и распространённые команды файловой системы, такие как mkdir, touch, mv и cp, в рабочей директорииИтеративная работа над кодом под Вашим присмотромplanЧтение; правки заблокированы, пока Вы не одобрите планИзучение кода перед любыми изменениямиautoВсё, но каждое действие сначала проверяет классификаторДлинные задачи с меньшим числом запросовdontAskЧтение в рабочих директориях и заранее разрешённые инструменты; всё остальное запрещеноCI и строго ограниченные скриптыbypassPermissionsВсё, за редкими исключениямиТолько изолированные контейнеры и VMdefault — это имя, которое используется в настройках, hooks и флаге --permission-mode. В CLI, расширениях для IDE и десктопном приложении он называется Manual, а CLI также принимает алиас manual.
02Как переключать режимы
В терминале нажмите Shift+Tab. Режимы переключаются по кругу: default, acceptEdits, plan, затем дополнительные режимы, разрешённые в сессии. dontAsk в этом цикле не появляется — его можно задать только флагом.
Чтобы запустить сессию в нужном режиме:
claude --permission-mode plan
Чтобы сделать режим режимом по умолчанию, укажите его в ~/.claude/settings.json:
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
Флаг имеет приоритет над настройкой, а настройка — над встроенным значением по умолчанию. Важное ограничение: auto и bypassPermissions не применяются из .claude/settings.json или .claude/settings.local.json проекта. Репозиторий не может незаметно включить Вам режим bypass. Задавайте эти два режима в пользовательских настройках или передавайте флаг.
В каком режиме стартует новая сессия
Свежие версии Claude Code (v2.1.283 и новее) запускают интерактивные сессии в терминале и VS Code в режиме auto, если он доступен и в настройках не указано иное. claude -p и запуски через Agent SDK стартуют в default. Если Вы никогда не выбирали режим и удивляетесь, почему запросов так мало, — причина в этом.
03Подробнее о режимах
default (Manual)
Claude читает файлы без спроса. Для правок, shell-команд и доступа к сети показывается запрос. В запросе Bash вариант «Yes, and don't ask again» сохраняет правило allow в .claude/settings.local.json, и эта команда больше не будет запрашивать подтверждение в данном репозитории. Разрешения на правку файлов действуют до конца сессии.
acceptEdits
Правки и простые файловые команды (mkdir, touch, rm, rmdir, mv, cp, sed) в рабочей директории выполняются без запроса. Остальные shell-команды по-прежнему требуют подтверждения. Хороший компромисс, если Вы следите за diff в реальном времени.
plan
Claude изучает код с помощью чтения и команд только для чтения, а затем предлагает план. Пока Вы его не одобрите, исходники не меняются. Подходит для незнакомого кода или рискованных изменений.
auto
Отдельная модель проверяет каждое действие перед выполнением и блокирует те, что выходят за рамки Вашего запроса, затрагивают незнакомую ей инфраструктуру или похожи на результат влияния вредоносного контента. Явные правила ask по-прежнему вызывают запрос. Если классификатор заблокирует три действия подряд или двадцать за сессию, режим auto приостанавливается и возвращаются обычные запросы. По формулировке самой Anthropic, режим auto «сокращает число запросов разрешений, но не гарантирует безопасность».
dontAsk
Всё, что потребовало бы запроса, запрещается. Выполняются только действия по правилам allow и те, что вообще не требуют подтверждения. Режим предназначен для скриптов и CI, где некому отвечать на запросы.
bypassPermissions и --dangerously-skip-permissions
--dangerously-skip-permissions — то же самое, что --permission-mode bypassPermissions. Запросы пропускаются, в том числе при записи в защищённые пути вроде .git и .claude. Некоторые вещи всё же вызывают запрос или запрещаются в любом режиме: явные правила ask, AskUserQuestion и ряд опасных команд rm. Правила deny продолжают блокировать.
Anthropic рекомендует использовать этот режим только в контейнерах, VM или dev-контейнерах без доступа к интернету. На Mac и Linux Claude Code не запустится в этом режиме от root или через sudo вне распознанной песочницы. Если bypass нужен лишь как доступный вариант, а не включённый, флаг --allow-dangerously-skip-permissions добавит его в цикл Shift+Tab, не переключаясь на него.
04Правила работают поверх режимов
Режимы задают базовое поведение, а правила разрешений в настройках его уточняют:
{
"permissions": {
"allow": ["Bash(npm run test *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)"]
}
}
Правила проверяются в порядке deny, ask, allow, и решает первое совпадение. Правила deny блокируют в любом режиме, включая bypassPermissions. Правила allow в bypassPermissions ни на что не влияют, ведь там и так всё разрешено. Выполните /permissions, чтобы увидеть все правила и файлы, из которых они взяты.
Hooks тоже могут участвовать. Hook PreToolUse может заблокировать вызов инструмента в любом режиме. Hook PermissionRequest может ответить на запрос за Вас, но не может отменить правило deny. Как это сделать, показано в руководстве по PermissionRequest.
05Какой режим выбрать, когда Вы отходите от компьютера
Обычно к --dangerously-skip-permissions прибегают, чтобы оставить Claude работать и не вернуться к сессии, застрявшей на prompt. Проблема реальная, но режим bypass решает её, полностью убирая Ваш контроль, причём на Вашей собственной машине.
Более безопасные варианты:
- Правила allow для рутинных команд. Добавьте команды тестов, линтера и сборки в
allow, оставьтеaskдляgit pushи деплоя и работайте в режимеdefaultилиacceptEdits. - Режим auto для долгих задач, если Вы готовы доверить рутинные действия решению классификатора.
- Получайте prompt там, где Вы находитесь. Оставьте режим с запросами и отвечайте на немногие важные prompt с телефона.
Последний вариант — это именно то, что делает Claude Code Notifier. Это независимый инструмент, не разработанный Anthropic. Его консольная утилита ccn работает как hooks Claude Code на Mac, Windows и Linux. Когда Claude Code собирается запросить разрешение, а Вас нет за компьютером, запрос приходит на сопряжённый телефон iPhone или Android, где можно разрешить один раз, разрешить на всю сессию или отклонить. Он видит только те prompt, которые Claude Code и так показал бы, поэтому что требует подтверждения, по-прежнему определяют режим и Ваши правила. В режиме auto запросов меньше; в bypassPermissions их нет совсем, хотя уведомления «Claude закончил» и вопросы всё равно приходят. Настройка описана в руководстве по подтверждению с телефона, а риски — в статье Безопасно ли подтверждать с телефона?
06FAQ
Чем default отличается от acceptEdits?
default спрашивает перед каждым изменением файла и каждой shell-командой. acceptEdits разрешает без запроса изменения файлов и распространённые файловые команды вроде mkdir, mv и cp внутри рабочей директории. Остальные shell-команды в обоих режимах требуют подтверждения.
--dangerously-skip-permissions — это то же самое, что bypassPermissions?
Да. Этот флаг эквивалентен --permission-mode bypassPermissions. Anthropic рекомендует использовать его только в изолированных контейнерах или VM, желательно без доступа к интернету.
Как сделать, чтобы Claude Code перестал запрашивать разрешение для одной команды?
Выберите в prompt «Yes, and don't ask again» или добавьте правило allow, например "Bash(npm test)", в permissions.allow в настройках. Это безопаснее, чем менять режим целиком.
Могут ли настройки проекта включить у меня режим bypassPermissions?
Нет. bypassPermissions и auto в .claude/settings.json или .claude/settings.local.json не действуют. Они применяются только из пользовательских или управляемых (managed) настроек либо из флага командной строки.
Работают ли hooks в режиме bypassPermissions?
Да. Hooks работают в любом режиме, и hook PreToolUse, отклоняющий вызов инструмента, блокирует его даже в bypassPermissions. Hook PermissionRequest срабатывает только тогда, когда есть prompt, на который нужно ответить, поэтому в режиме bypass он почти не вызывается.