Руководство
Разрешения ИИ-агентов для программирования и YOLO mode: более безопасная настройка
Режимы разрешений в Claude Code, Codex и Cursor: что на деле пропускают режимы «пропустить всё», что может изменить репозиторий и какие настройки агентов не коммитить.
· 8 мин чтения · Команда vetkit


Режимы разрешений в трёх инструментах
Каждый ИИ-агент для программирования балансирует между двумя вещами: как часто он вас прерывает и сколько может сделать, не спрашивая. В каждом инструменте настройки называются по-разному, но устроены одинаково: режим, который спрашивает, режим, в котором решает автоматический ревьюер, и режим, который пропускает всё и который неформально называют YOLO mode.
| Инструмент | Режимы согласно документации | Настройка «пропустить всё» |
|---|---|---|
| Claude Code | Manual, auto (действия проверяет классификатор; стартовый режим для интерактивных сессий), acceptEdits, plan, dontAsk | bypassPermissions, также включается флагом --dangerously-skip-permissions |
| OpenAI Codex | Режимы песочницы read-only, workspace-write, danger-full-access в сочетании с политикой подтверждений, например on-request или never | --dangerously-bypass-approvals-and-sandbox, алиас --yolo |
| Cursor | Auto-review (рекомендуемый по умолчанию), Allowlist | Run Everything |
Что на самом деле пропускают режимы «пропустить всё»
Режимы «пропустить всё» убирают не только запросы. В Codex этот флаг отключает и подтверждения, и песочницу. Cursor описывает Run Everything как автоматический запуск каждого вызова инструмента без песочницы и без ревьюера. Режим bypass в Claude Code также пропускает запросы на запись в собственный каталог .claude и в .git.
Вендоры единодушны в том, где этим режимам место: Claude Code советует использовать режим bypass только в изолированных средах, таких как контейнеры или виртуальные машины, а Codex помечает свой флаг как повышенный риск и не рекомендует его. Даже в контейнере всё, что в него смонтировано, например облачные учётные данные или SSH-агент, становится лёгкой добычей. В руководстве о том, к чему агенты имеют доступ перечислено, что туда обычно входит.
Что может изменить репозиторий
Конфигурация агентов всё чаще живёт в репозитории рядом с кодом: настройки .claude/, .codex/config.toml, .cursor/mcp.json, определения хуков и файлы инструкций вроде AGENTS.md и CLAUDE.md. Для команд это удобно, но это значит, что git clone может изменить поведение агента.
- Проверка доверия помогает. Codex загружает слой
.codex/проекта только после того, как вы отметили проект как доверенный. Claude Code применяет правилаallowиз репозитория только после того, как каждый участник команды отметит папку как доверенную, и игнорируетbypassPermissionsв качестве режима по умолчанию в настройках проекта. - Не всё защищено одинаково. Хуки, определения MCP-серверов и файлы инструкций по-прежнему приезжают вместе с репозиторием; у MCP-серверов есть собственный запрос на подтверждение, а workspace trust в Cursor выключен, пока вы его не включите.
- Старые версии ведут себя иначе. Настройку, которую текущие релизы игнорируют, всё ещё может учитывать более старый клиент на чьей-то машине, а само её наличие говорит о том, что проект рассчитывает на работу агентов без присмотра.
Настройки агентов, которые не стоит коммитить
Вот паттерны, которые стоит поймать на ревью, прежде чем они попадут в основную ветку:
- Отключённые подтверждения:
bypassPermissionsкак режим по умолчанию, субагент сpermissionMode: bypassPermissionsили скрипт в package.json, запускающий агента с--dangerously-skip-permissionsили--dangerously-bypass-approvals-and-sandbox. - Правила allow, заранее разрешающие что угодно:
Bash(*)или wildcard-ы для оболочек, интерпретаторов, раннеров пакетов и сетевых инструментов, напримерBash(curl:*)илиBash(npx:*). - Хуки, которые скачивают и запускают скрипт, например передают вывод
curlв shell через пайп. - Незакреплённые MCP-серверы, запускаемые из удалённого скрипта, доступные по обычному HTTP или настроенные с захардкоженными учётными данными.
- Скрытый текст в файлах инструкций: HTML-комментарии или невидимые символы Unicode в
AGENTS.mdилиCLAUDE.md, которые ревьюер не видит, а агент читает.
{ "permissions": { "defaultMode": "bypassPermissions", "allow": ["Bash(*)", "Bash(curl:*)", "Bash(npx:*)"] }}Более безопасная базовая конфигурация
- На ноутбуках оставляйте режим по умолчанию или auto; режимы «пропустить всё» приберегите для одноразовых сред.
- Коммитьте узкие правила allow для конкретных команд, которые запускает ваш проект, и запрещайте чтение секретов.
- Закрепляйте версии MCP-серверов и храните их учётные данные в переменных окружения, а не в файле.
- Включайте песочницу там, где она опциональна, и ограничивайте сетевой доступ allowlist-ом.
- Считайте изменения конфигурации агентов и файлов инструкций значимыми для безопасности на ревью.
{ "permissions": { "allow": ["Bash(npm run test:*)", "Bash(npm run lint)"], "deny": ["Read(./.env)", "Read(./secrets/**)"] }}Правила allow, заканчивающиеся wildcard-ом, безопасны ровно настолько, насколько безопасна команда перед ним: правило для npm run test узкое, правило для node или curl — нет.
Где здесь vetkit
Аудит репозитория vetkit проверяет закоммиченную конфигурацию агентов в рамках набора AI code risks: настройки и флаги обхода подтверждений, правила allow, заранее разрешающие произвольные shell- или сетевые команды, хуки, запускающие удалённые скрипты, незакреплённые или запускаемые удалённо MCP-серверы, MCP-серверы по обычному HTTP или с захардкоженными учётными данными, а также скрытые комментарии или Unicode в файлах инструкций агентов. Те же правила используются сервером @vetkit/mcp и Agent Watch, который сообщает, что агенты на самом деле делают на машинах команды; эту сторону описывает руководство по мониторингу.
Источники
Утверждения о каждом инструменте мы взяли из его собственной документации :
- Claude Code: разрешения, настройки и безопасность
- OpenAI Codex: подтверждения и безопасность агента и основы конфигурации
- Cursor: режимы запуска и безопасность агента
Названия продуктов являются товарными знаками соответствующих владельцев. vetkit не связан с ними, не одобрен и не спонсируется ими. Заметили устаревшие сведения? Напишите на contact@vetkit.dev, и мы всё исправим.