Claude Code без подтверждений: флаг bypass и альтернативы

Что отключает флаг --dangerously-skip-permissions в Claude Code, какие проверки остаются и как сократить запросы разрешений с помощью настроек и контейнера.

Опубликовано

Автор
Claude Code без подтверждений: флаг bypass и альтернативы

Claude Code без подтверждений на каждом шаге — не обязательно режим, в котором разрешён любой вызов инструмента. Команда claude --dangerously-skip-permissions включает bypassPermissions: обычные запросы разрешений исчезают, в том числе проверки при работе с защищёнными файлами конфигурации. Этот режим стоит оставить для изолированной среды. Если постоянные запросы просто мешают повседневной работе, начните с режима auto или точечных правил разрешений.

Claude Code без подтверждений: что отключает флаг

Флаги --dangerously-skip-permissions и --permission-mode bypassPermissions включают один и тот же режим. Claude может менять файлы, выполнять команды оболочки и вызывать другие инструменты без обычных остановок на подтверждение. Режим также разрешает запись по защищённым путям. При первом интерактивном запуске появляется предупреждение об ответственности; если его не принять, Claude Code завершает работу. Документация Anthropic о режиме bypass

Представьте, что разрешения — это проверка допуска перед работой, а изоляция — стены мастерской. Убрав проверку, вы не построите стены. Выигрыш понятен: сеанс идёт без перерывов. Цена — потеря возможности заметить опасное действие до его выполнения.

Меняется и порядок работы: вместо согласования каждой операции вы заранее задаёте границы среды, а затем проверяете результат. Сам по себе этот режим не обеспечивает правильность кода и не обезвреживает вредоносные инструкции.

Архитектурная схема: запрос к инструменту, явные запреты, пропущенные обычные подтверждения и отдельная изолированная рабочая среда
Правила разрешений и изоляция решают разные задачи. Bypass убирает обычные подтверждения; ограничивать выполнение должна сама среда.

Какие ограничения сохраняются

Слово «skip» не означает, что все проверки исчезают. Эти различия помогут понять, почему запуск, рассчитанный на работу без участия человека, всё же остановился или отклонил действие:

МеханизмЧто остаётся в силе
Явные правила denyПодпадающие под них вызовы блокируются во всех режимах разрешений. Список allow не ограничивает bypass только перечисленными в нём действиями.
Явные правила askПодпадающие под них вызовы по-прежнему требуют подтверждения.
Обязательное взаимодействие с пользователемAskUserQuestion, инструменты MCP с отметкой requiresUserInteraction и управляемые организацией инструменты коннекторов, настроенные на ask, сохраняют требования к взаимодействию.
Проверки удаления критически важных каталоговКоманды rm и rmdir, направленные, например, на корень файловой системы, домашний или рабочий каталог, по-прежнему проходят особую проверку.
Другие ограниченияПродолжают действовать защитные механизмы обмена сообщениями между сеансами и настроенное ограничение чтения за пределами рабочих каталогов.

За чтение в последней строке отвечает настройка permissions.blockReadsOutsideWorkingDirectories: true. Распознанные команды Bash, читающие файлы за пределами разрешённых каталогов, всё ещё могут вызывать запрос подтверждения; блокировки, обеспечиваемые песочницей, работают иначе. При неинтерактивном запуске bypass с флагом -p вызовы, которым всё ещё нужно подтверждение, отклоняются. Действия, которые ни один режим не одобряет автоматически, настройка чтения за пределами каталогов

Блокирующие хуки PreToolUse тоже продолжают участвовать в проверке вызовов инструментов. Для EndConversation есть особое исключение: пока доступен другой инструмент, правила deny и ask его не ограничивают. Установленные модификации могут переопределять некоторые решения о разрешениях, которые не заданы централизованно, поэтому обязательные для команды ограничения нужно закреплять в управляемой политике. Администраторы могут запретить bypass настройкой "permissions": {"disableBypassPermissionsMode": "disable"}. Сеанс, запущенный с --restricted, также не допускает режим bypass. Приоритет хуков и правил, настройка запрета bypass

В режиме bypass разрешена запись по защищённым путям

Не рассчитывайте, что изменение .git или .claude по-прежнему потребует подтверждения. В режиме bypass запись по защищённым путям разрешена. Это отдельный механизм, не связанный с описанными выше проверками удаления критически важных каталогов.

В список защищённых путей Anthropic входят:

ГруппаПути
Каталоги репозитория и редакторов.git, .config/git, .vscode, .idea, .husky
Каталоги сборки и окружения.cargo, .devcontainer, .yarn, .mvn
Конфигурация Claude и исполняемые расширения.claude, каталоги, загруженные через --plugin-dir, ~/.claude/dev-mods/ или соответствующий каталог dev-mods/ внутри CLAUDE_CONFIG_DIR
Файлы Git и оболочки.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 есть ограниченные исключения: собственные рабочие деревья Claude, файлы текущего плана, временные рабочие файлы фоновых сеансов и некоторые Markdown-файлы памяти. В обычных сеансах Manual и acceptEdits запись по защищённым путям требует подтверждения; режим auto передаёт такие действия своему классификатору. Правило allow в файле настроек не может заранее разрешить эти записи. Защищённые пути и исключения

Четыре способа сократить запросы разрешений с меньшим риском

Подбирайте механизм под конкретную причину остановок. Большинству разработчиков сначала нужна более точная политика разрешений и только потом — bypass.

Для повседневной разработки используйте режим auto

Запустите сеанс командой claude --permission-mode auto. Решения по обычным запросам разрешений принимает классификатор — отдельная модель, которая проверяет предлагаемые действия. Чтобы сделать этот режим стандартным для сеансов в терминале, добавьте "permissions": {"defaultMode": "auto"} в ~/.claude/settings.json, объединив с существующими настройками.

Если записать это значение в .claude/settings.json или .claude/settings.local.json, режим не включится. Доступность auto также зависит от поддерживаемых моделей и настроек организации, а явные правила ask по-прежнему вызывают запросы подтверждения. Режим сокращает число остановок, но не гарантирует безопасность. Настройка режима по умолчанию, требования режима auto

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

Разрешайте проверенные операции и запрещайте конкретные действия

Используйте permissions.allow для команд, которые вы проверили, и permissions.deny для операций, которые нужно блокировать. Claude Code проверяет правила в порядке deny, затем ask, затем allow. Широкое разрешение не отменяет совпавший запрет. Правила разрешений

Для доверенного репозитория подойдёт следующий пример: он сочетает точечные разрешения с блокирующим хуком. Добавьте его в .claude/settings.json, сохранив существующие ключи. Сеансы в терминале здесь намеренно запускаются в режиме Manual, чтобы доступ определялся перечисленными разрешениями. Прежде чем одобрять команды тестирования и линтинга, проверьте, что именно выполняют соответствующие скрипты проекта.

JSON
{
  "permissions": {
    "defaultMode": "default",
    "allow": ["Bash(npm test)", "Bash(npm run lint)"],
    "deny": ["Bash(git push *)", "Read(./.env)", "Read(./.env.*)"]
  },
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "if": "Bash(rm *)",
        "command": "echo 'Use the approved cleanup task instead.' >&2; exit 2"
      }]
    }]
  }
}

Личные переопределения настроек проекта храните в .claude/settings.local.json; если создаёте этот файл сами, добавьте его в .gitignore. Откройте /permissions, чтобы посмотреть действующие правила и файлы, из которых они загружены. Область действия настроек

Такие шаблоны не обеспечивают изоляцию файловой системы или сети. Иная запись команды может не попасть под шаблон Bash, а произвольные скрипты способны читать файлы косвенно, несмотря на запреты для файловых инструментов. Храните секреты за пределами среды и применяйте ограничения песочницы там, где доступ должен быть технически невозможен. Ограничения правил Bash, ограничения файловых правил

Перед масштабными изменениями включайте режим планирования

Начните с claude --permission-mode plan или задайте "permissions": {"defaultMode": "plan"} в настройках проекта. Claude изучит проект и предложит план до того, как вы одобрите изменения исходного кода. Настройка верхнего уровня "useAutoModeDuringPlan": false отключает одобрение команд планирования классификатором: команды за пределами встроенного набора операций только для чтения потребуют вашего подтверждения. Настройка режима планирования

Запускайте новый сеанс планирования без флагов, которые делают bypass доступным. В интерактивном сеансе терминала, где bypass можно выбрать, режим планирования не применяет свои обычные запреты на редактирование и выполнение команд. Это относится и к флагу --allow-dangerously-skip-permissions: он позволяет выбрать bypass позднее, хотя не включает его сразу. Режим планирования при доступном bypass

Блокируйте отдельные команды с помощью хуков

Обработчик hooks.PreToolUse из примера использует matcher: "Bash", type: "command" и if: "Bash(rm *)". При совпадении условия команда оболочки выводит причину и завершается с кодом 2, блокируя вызов инструмента. Отдельный скрипт не нужен. Эту небольшую команду мы составили для примера на основе документированных полей хуков Anthropic и кода завершения, который блокирует вызов. Настройка хуков, блокирующие коды завершения

Хук блокирует вызовы rm, соответствующие условию, но не все возможные способы удалить файл. Команда разработки может заменить его проверенным валидатором для своих команд развёртывания или очистки. Делайте проверки достаточно узкими, чтобы их было легко понять и протестировать. Настройка и отладка разобраны в нашем материале о хуках Claude Code.

Четыре архитектурные полосы с подписями Auto, Rules, Plan и Hooks: проверка действий, правила разрешения и запрета, изучение проекта и блокировка команд
Подбирайте механизм под задачу: автоматически проверять действия, разрешать конкретные операции, сначала составлять план или блокировать команду.

В какой среде Anthropic допускает bypass

В таблице типовых конфигураций Anthropic для этого режима требуется контейнер, виртуальная машина или среда выполнения с песочницей, а в Linux и macOS — пользователь без прав root. Раздел о bypass описывает изолированные среды, из которых нельзя повредить хост, и отдельно упоминает среды без доступа к интернету. Руководство по devcontainer предлагает вариант с подключением к сети, где исходящие соединения ограничены сервисами, необходимыми Claude. Неограниченный сетевой доступ следует рассматривать как отдельный риск. Требования к изоляции, сетевые ограничения devcontainer

В Linux и macOS запуск bypass от root или через sudo обычно отклоняется. Документация указывает на автоматическое исключение внутри распознанной песочницы; описанный подход с devcontainer использует учётную запись без прав root. Не устраняйте ошибку запуска от root ослаблением этого ограничения.

Быстрый запуск на основе эталонного devcontainer

Используйте одноразовую рабочую копию доверенного репозитория. Установив Docker, VS Code и расширение Dev Containers, начните с эталонного проекта Anthropic:

Bash
git clone https://github.com/anthropics/claude-code.git claude-code-isolated
code claude-code-isolated
  1. В VS Code выполните команду Dev Containers: Reopen in Container. Эталонная конфигурация объединяет CLI, постоянные тома и межсетевой экран для исходящих соединений. Проверьте, что remoteUser указывает на учётную запись без прав root.
  2. В терминале контейнера выполните id -u и убедитесь, что результат не равен 0. Запустите claude, чтобы войти в аккаунт, затем завершите этот сеанс.
  3. В том же терминале контейнера выполните claude -p "Inspect this repository and summarize its structure. Do not change files." --dangerously-skip-permissions.
  4. Для своего проекта скопируйте эталонный каталог .devcontainer/ в одноразовую рабочую копию и адаптируйте Dockerfile под используемые инструменты. После каждой задачи проверяйте diff рабочей копии.

Этот порядок соответствует инструкции Anthropic по работе с эталонным контейнером. Эталонный проект — рабочий пример, а не поддерживаемый базовый образ. Сохраните его ограничения исходящих соединений или обеспечьте равноценный сетевой контроль.

Смонтированный рабочий каталог остаётся доступным для записи из контейнера, и изменения попадают на хост. Не монтируйте ~/.ssh, файлы учётных данных облачных сервисов или посторонние каталоги. Вредоносный проект по-прежнему способен передать наружу всё, что доступно внутри контейнера, включая учётные данные Claude. Используйте доверенные репозитории и следите за выполнением задач. Ограничения devcontainer

Облачные сеансы игнорируют bypass в настройках режима по умолчанию

Облачные сеансы без предупреждения игнорируют значения defaultMode: "bypassPermissions" и defaultMode: "dontAsk" из файла настроек. Они запускаются в режиме, указанном в выпадающем списке облачного интерфейса. JSON-настройка, сохранённая в репозитории, не может принудительно включить bypass для облачного сеанса. Поведение режимов в облаке

Локальный файл ~/.claude/settings.json не переносится в облачный сеанс на инфраструктуре Anthropic. У настроек репозитория тоже есть ограничения: сеансы, охватывающие несколько репозиториев, не загружают правила разрешений и хуки каждого из них. Проверьте действующую политику облачной среды, не рассчитывая, что настройки терминала перенеслись автоматически. Настройки в облачных сеансах

Как выбрать режим под задачу

Обычно наибольшую пользу приносит избавление от повторяющихся подтверждений в уже налаженном процессе. Ниже — практические варианты в том порядке, в котором я бы их рассматривал:

СитуацияКак организовать работуЧто это даёт
Разработчик исправляет ошибку в знакомом приложенииРежим auto, затем проверка diff и результатов тестовМеньше внимания уходит на подтверждение обычных шагов
Сопровождающий проекта регулярно запускает доверенные тестыТочные правила allow для команд тестирования и линтингаПредсказуемые разрешения без доступа к любым командам оболочки
Команда планирует рефакторинг нескольких модулейНовый сеанс планирования, проверка предложения, затем одобрение реализацииОшибки в границах задачи обнаруживаются до того, как правки разойдутся по коду
Платформенная команда контролирует команду развёртыванияПротестированный валидатор PreToolUse и централизованно управляемая политикаОдно и то же правило блокировки действует при каждом запуске
Ответственный за CI выполняет строго определённую задачуdontAsk и явный список разрешённых действийНепредусмотренные операции отклоняются, а не ждут человека
Сопровождающий проекта запускает задачу без участия человека в одноразовой средеКонтейнер с ограниченной сетью и пользователем без прав root; bypass только внутри негоМожно выполнить задачу с заданными границами, затем проверить или удалить рабочую копию

Для случая с CI Anthropic приводит такую отправную команду: claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read". Она отклоняет операции, которые иначе потребовали бы подтверждения. Типовые конфигурации

При любом выбранном режиме пригодятся наши рекомендации по работе с Claude Code. Разрешения определяют, что можно выполнить; проверка результата — стоит ли сохранять сделанное.

Два полезных инструмента, которые может создать команда

Наиболее перспективная идея — инструмент проверки конфигурации разрешений. По оценке DataForSEO, запрос «claude code permissions» собирает 720 поисковых запросов в месяц в США. Это указывает на трудности с поиском нужной информации, но не доказывает готовность платить. Команда платформы для разработчиков могла бы создать небольшой инструмент, который объясняет область действия настроек, отмечает игнорируемые значения defaultMode и заранее показывает охват широких правил команд перед подключением коллег к работе. Первый полезный результат — отчёт с предлагаемыми изменениями. Основная сложность — поддерживать инструмент по мере изменения поведения конфигурации Claude Code.

Инструмент запуска одноразовых сред может пригодиться командам с повторяющимися задачами без участия человека. Та же проверка спроса даёт оценку 260 поисковых запросов в месяц в США для «claude code docker». MVP мог бы проверять одобренный шаблон контейнера, разрешённые монтирования, запуск без прав root и политику исходящих соединений, а затем собирать diff и логи для сопровождающего проекта. Его ценность — единообразная настройка среды. Ограничение в том, что такой инструмент не сделает код недоверенного репозитория безопасным и не гарантирует изоляцию лишь за счёт наличия Docker.

Обе идеи относятся к внутренним инструментам; их востребованность нужно проверять с реальными пользователями. Ни одна не требует делать bypass режимом по умолчанию на машинах разработчиков.

Что делает флаг dangerously skip permissions в Claude?

Он включает bypassPermissions: убирает обычные подтверждения вызовов инструментов и разрешает запись по защищённым путям. Явные запреты и описанные в документации требования обязательного взаимодействия с пользователем сохраняют силу. Прежде чем рассчитывать на работу без остановок, разберитесь в различиях, описанных выше.

Как сделать, чтобы Claude перестал постоянно запрашивать разрешения?

Для повседневной разработки попробуйте claude --permission-mode auto. Для предсказуемого рабочего процесса заранее разрешите проверенные команды через permissions.allow, сохраните конкретные запреты и добавьте хуки там, где нужна проверка команд. Для изучения проекта перед правками подходит режим планирования.

Как включить обход разрешений в Claude Code?

Сначала подготовьте изолированную среду и только затем запустите в ней claude --dangerously-skip-permissions. Команда claude --permission-mode bypassPermissions даёт тот же результат. Следуйте описанной выше настройке devcontainer без прав root; не добавляйте в повседневную оболочку универсальный алиас, включающий bypass.

С чего начать в понедельник: выберите один повторяющийся рабочий процесс, проверьте команды, которые он действительно выполняет, и настройте минимальный набор разрешений, позволяющий его завершить. Переходите к одноразовому контейнеру, только если задаче нужно выполняться без участия человека за пределами этой политики.

Если вашей команде нужно настроить и поддерживать такой процесс, мы можем помочь в рамках создания ИИ-систем для промышленной эксплуатации.

Опубликовано
Категория
Build
Похожие статьи
Cursor или VS Code: стоит ли менять редактор в 2026 году

Cursor или VS Code: стоит ли менять редактор в 2026 году

Cursor или VS Code: сравниваем агентов, Tab, расширения, конфиденциальность и тарифы. Когда переход оправдан, а когда лучше сохранить привычный редактор?18 окт. 2026 г.Build
Обзор n8n: автоматизация, ИИ-агенты и реальные ограничения

Обзор n8n: автоматизация, ИИ-агенты и реальные ограничения

Обзор n8n для бизнеса: тарифы Cloud, установка на своем сервере, ИИ-агенты и ограничения Community. Кому подойдет платформа и что нужно для ее сопровождения.18 окт. 2026 г.Build
Railway или Render: что выбрать для бэкенда в 2026 году

Railway или Render: что выбрать для бэкенда в 2026 году

Railway или Render для приложения, API, воркера и Postgres: сравниваем тарифы, восстановление данных и масштабирование на примере одной нагрузки в 2026 году.18 окт. 2026 г.Build
Pydantic AI в продакшене: типы, инструменты и проверка ответов

Pydantic AI в продакшене: типы, инструменты и проверка ответов

Как создавать ИИ-агентов на Python с Pydantic AI: инструменты, валидация ответов, смена моделей и сравнение с LangGraph и LangChain. С примером кода.17 окт. 2026 г.Build
Защита ИИ: как настроить guardrails и контроль действий

Защита ИИ: как настроить guardrails и контроль действий

Как выстроить защиту ИИ: проверки запросов и ответов, права доступа, согласование действий и обзор инструментов. Минимальный набор для небольшой команды.17 окт. 2026 г.Build
Галлюцинации нейросетей: почему ИИ выдумывает факты и как снизить риск

Галлюцинации нейросетей: почему ИИ выдумывает факты и как снизить риск

Почему нейросети выдумывают факты, числа и источники. Как проверять ответы, ссылки и вызовы инструментов, чтобы ошибки LLM не доходили до клиентов.17 окт. 2026 г.Build
Системный промпт: как задать правила ИИ-ассистенту

Системный промпт: как задать правила ИИ-ассистенту

Что такое системный промпт, чем он отличается от пользовательского и как задать правила ИИ. Примеры, готовый шаблон и особенности Claude, OpenAI и Gemini.17 окт. 2026 г.Build
Function calling на практике: подключаем LLM к инструментам

Function calling на практике: подключаем LLM к инструментам

Как работает function calling: полный пример на Python, форматы OpenAI, Anthropic и Gemini, проверка аргументов и отличия от Structured Outputs и MCP.17 окт. 2026 г.Build
Рассылка

Одно письмо, каждое воскресенье.Работающие системы, а не горячие мнения.

Еженедельно. Без спама. Отписка в любой момент.