Как я включил Claude Code в режим без вопросов
Содержание
Одна строка в ~/.zshrc — и Claude Code больше не спрашивает разрешение на каждое действие. Флаг --dangerously-skip-permissions выглядит страшно, но внутри своего окружения это нормальный рабочий режим, в котором я живу каждый день. Ниже — правила, по которым я его включаю, и границы, за которые не выхожу.
Обновлено 15 октября 2026: добавил раздел про режим auto, который в Claude Code теперь стартовый.
Что я сделал в этой сессии
Попросил агента добавить третий алиас на ту же команду. До этого было два — lfg и дап (это “let’s fucking go” и “давай, поехали” в русской раскладке, чтобы не переключать язык). Теперь есть ещё cc — короткий, на автомате, из любого состояния руки. Все три указывают на одно и то же: claude --dangerously-skip-permissions.
Написал Claude Code на Opus 4.6:
Агент дописал строку в ~/.zshrc рядом с существующими. Руками я ничего не трогал — по принципу “работает — отлично, не работает — пишу пофикси”.
Что вообще делает этот флаг
По умолчанию Claude Code спрашивает approve на каждую операцию, которая может что-то поменять: bash-команду, запись в файл, git, установку пакетов. Всплывает маленькая панель, ты нажимаешь “yes”, и только после этого агент двигается дальше. --dangerously-skip-permissions отключает эти prompt’ы — агент пишет, запускает, коммитит без прерываний.
Именно поэтому флаг называется со словом “dangerously”. Это не PR-трюк, это честно. Anthropic говорит: снимаешь защиту — значит, сам берёшь риск. Правильно. Я и беру.
Что изменилось с апреля: режим auto
В статье у меня две крайности: кликать approve или отключить проверки целиком. Между ними есть режим auto. Вместо тебя действия агента проверяет вторая модель, классификатор. Она блокирует то, что выходит за рамки твоей просьбы, и то, что похоже на команду из враждебного текста, который агент прочитал. Режим появился в Claude Code ещё в марте, но тогда я о нём не написал. С версий 2.1.283–2.1.284 (конец сентября 2026) он стартовый для интерактивных сессий в терминале и VS Code на всех планах, если ты сам не задал режим.
Документация про режимы разрешений теперь говорит о моём алиасе прямо:
--dangerously-skip-permissionsравен--permission-mode bypassPermissions. Для него в таблице режимов стоит «только изолированные контейнеры и VM».- Про bypass там сказано, что он не защищает ни от prompt injection, ни от случайных действий. Для сессий с минимумом вопросов и фоновыми проверками доки советуют auto.
- Даже в bypass остаются вопросы: на явные
ask-правила и наrmпо критичным путям вроде~. Deny-правила работают в любом режиме, allow-правила в bypass ничего не меняют. - Auto тоже ничего не гарантирует. Доки советуют его для задач, где ты доверяешь направлению, и не считают заменой ревью чувствительных операций.
Что делаю я: три алиаса cc, lfg и дап в ~/.zshrc остались как есть и по-прежнему запускают claude --dangerously-skip-permissions. Я работаю так дома, на своей машине и в своих репо. Доки советуют для bypass контейнеры и VM, а я сижу в своём обычном окружении. Риск мой, поэтому границы из статьи (никаких prod-серверов, никаких свежеклонированных чужих репо, никаких платёжных ключей в env) для меня тем важнее.
Если начинаешь с нуля, мою настройку bypass я бы не повторял. Сначала auto, а bypass только внутри контейнера или VM. Остальной текст ниже описывает, как я живу с bypass. Читай его с поправкой на этот раздел.
Почему approve-режим не работает на потоке
У меня около 88 промптов в день на Max-плане, 5-6 часов активной работы с Claude Code. Если на каждую bash-команду агент будет ждать моего клика — я превращусь в кликера yes-yes-yes вместо того, чтобы думать над задачей. Approve-режим хорош в первый день знакомства с инструментом, дальше он рвёт flow в клочья.
Вайбкодинг держится на делегировании. Approve на каждый шаг — противоположность делегированию: ты не можешь одновременно доверить агенту задачу и контролировать каждое его движение. Либо одно, либо другое.
APPROVE-РЕЖИМ BYPASS-РЕЖИМ
───────────── ────────────
промпт промпт
│ │
▼ ▼
план план
│ │
▼ ▼
шаг 1 ──► approve? ──► wait шаг 1
│ │
▼ ▼
шаг 2 ──► approve? ──► wait шаг 2
│ │
▼ ▼
шаг 3 ──► approve? ──► wait шаг 3
│ │
▼ ▼
результат результат
│ │
▼ ▼
"я думал над задачей?" следующий промпт
Слева — иллюзия контроля. На каждом шаге ты вроде бы решаешь, а на самом деле подтверждаешь то, что понял секунду назад. Справа — настоящее делегирование: ты думаешь над задачей, агент думает над шагами.
Что именно я “одобрил” этим алиасом
Я не дал bypass “на всё подряд”. Я дал его в контексте, который контролирую:
- Свои репо. Я знаю, что у меня в
CLAUDE.md, в хуках, в скиллах — я их сам писал. Проектteach-personal-corpсодержит явные NEVER-правила: не пушить в remote без запроса, не трогатьgit config, не делать force push. Агент читает их каждую сессию. - Своя машина. Я знаю, что стоит в env, какие инструменты установлены, кто
git user. Четыре машины — два старых мака, новый MacBook и один Windows — все настроены по одному шаблону через приватный репоcc-skills. Про синхронизацию рассказывал отдельно в Как я синхронизирую Claude Code на четырёх компах. - Git-обратимость. Любое действие в своём репо откатывается через
git reset, пока не запушено. Агент сломал — говорю “откати”. Агент откатывает.
Это не храбрость. Это понимание размера взрыва.
Приватность — где я bypass не включаю
Теперь про границы. Не в режиме “бойся”, а в режиме “знай, где начинается чужое”.
Секреты в env. Агент видит всё, что видит твой shell. У меня GEMINI_API_KEY торчит в ~/.zshrc как env var — агент прочитает, если попросить. Это ок ровно потому, что ключ не привязан ни к какому аккаунту с платёжкой и его легко отозвать в консоли Google AI Studio. Всё, что стоит денег или открывает доступ к юзерам, — в dev-shell не хранится. Если у тебя там stripe-ключ или prod-токен, bypass тебе не подходит, пока это не уберёшь.
Рандомные репо. Не клонируй чужой проект и не запускай внутри cc сразу после git clone. В CLAUDE.md могут быть prompt injections — это уже встречается в дикой природе, не теория. В post-install скриптах package.json может быть что угодно. Для работы с чужим кодом — отдельная учётка macOS или VM с отдельным gh аккаунтом. Я, честно, редко такое делаю: чужой код почти не трогаю.
Не для продакшен-серверов. Отдельный пункт с личным шрамом. Был у меня Clawdbot на VPS — агент-ассистент на публичном сервере в bypass-режиме. На второй день из-за дыры в setup’е уехали API-ключи. Вывод простой: bypass + белый IP + долгоживущая сессия — это не дом, это витрина. На своём ноуте — да. На сервере в интернете — нет.
Дома учишься быстрее
Approve-режим — это как учиться плавать в спасжилете. Красиво, безопасно, и ты никогда не почувствуешь воду. С bypass ты гораздо быстрее понимаешь, где агент действительно может навредить, а где просто шумит.
На approve-режиме ты боишься всего одинаково: и ls, и rm -rf. Каждый клик выглядит одинаково важным, поэтому ты не учишься отличать опасное от безобидного. На bypass отличие становится видимым сразу, потому что у тебя есть настоящий feedback loop, а не абстрактный “yes/no” на всё подряд.
Страх permission-prompt выполняет педагогическую роль ровно один день. Дальше он мешает учиться.
Guardrails вместо approve
Клики yes-yes-yes я заменил другими guardrails — они работают сами, пока я думаю над задачей:
- Два глобальных хука.
SessionStartподтягивает активные GitHub issues в контекст,PostToolUseнапоминает их закрывать. Агент сам ведёт мой task tracker — описывал это в Хуки Claude Code: агент сам ведёт задачи. - Правило двух фейлов. Агент ошибся два раза подряд —
/clear, новая сессия с чистым контекстом. Не бьюсь головой об стену и не пробую “ну ещё разок”. Контекст протух — начали заново. - Git на всё. Любой чих — коммит. Ничего не теряется, любое действие обратимо, пока не ушло в remote.
- Явные NEVER в
CLAUDE.md. Не пушить в remote без запроса. Не трогатьgit config. Не делать force push. Эти правила агент видит каждую сессию, они в системном промпте раньше, чем моя задача. - Один setup на четырёх машинах. Через
cc-skillsна всех четырёх машинах одинаковые хуки, скиллы и правила. Значит, bypass везде работает в одинаково предсказуемом окружении, а не “тут настроено, там я что-то забыл”.
Это и есть настоящий контроль: не кликнуть yes на каждый чих, а построить контекст, в котором агенту просто некуда свернуть плохо.
Итог
cc — не разрешение “ломай всё”. Это договор: я контролирую контекст, агент работает без прерываний.
- Дома, в своих репо, на своей машине — да.
- На продакшен-сервере — нет.
- В свежеклонированном чужом репо — нет.
- В своём — конечно.
- Если нужен режим без вопросов и ты не хочешь брать весь риск на себя, сегодня для этого есть auto.
Одна строка в ~/.zshrc. Это не про безрассудство, это про то, чтобы перестать мешать агенту делать то, что ты ему поручил.