Конспект урока «Permission Modes» из бесплатного курса Anthropic Claude Code in Action. Оригинал урока: https://anthropic.skilljar.com/claude-code-in-action/486932
Это пересказ на русском, а не перевод. Права на курс принадлежат Anthropic.
Режим разрешений — это способ решить один раз, что Клоду можно запускать без вопросов, вместо того чтобы подтверждать каждое действие по очереди. Выбираешь режим под задачу и работаешь на том уровне доверия, который тебя устраивает.
С частью режимов ты уже сталкивался: shift-tab переключает между ручным, «принимать правки» и планированием. Это повседневная работа руками. Но по-настоящему автономный Клод живёт в остальных режимах, и главный из них — авто.
Каждый проводит свою границу между тем, что выполняется свободно, и тем, что требует твоей подписи.
| Режим | Что разрешено |
|---|---|
| Manual | только чтение без запроса. Всё остальное спрашивает |
| Accept edits | чтение, правка файлов и обычные файловые команды — без вопросов. Для итераций по коду, который ты смотришь потом |
| Plan | только чтение. Исследует и предлагает изменения, ничего не правя |
| Auto | принимает всё, но каждое действие перед запуском проверяет отдельная модель-классификатор |
| Don't ask | только заранее одобренные инструменты. Всё прочее отклоняется автоматически, без запроса |
| Bypass permissions | проверок нет вообще. Аналог флага «опасно пропустить разрешения». Запускать только в изолированном контейнере или виртуалке |
Команду под каждый режим запоминать не нужно: shift-tab прокручивает повседневные — ручной, приём правок, план и авто. Текущий режим всегда виден в строке состояния внизу, так что достаточно опустить глаза, чтобы понять, что Клоду сейчас позволено.
Это режим «руки убрал». Клод работает сам, но перед каждым действием его проверяет отдельная модель-классификатор. Классификатор следит за намерением — не пытается ли Клод выйти за рамки того, о чём ты на самом деле просил.
Что он призван блокировать:
А что пропускает: локальные правки в твоём проекте, установку зависимостей из lock-файла, запросы на чтение, пуш в твою собственную ветку.
Он проверяет намерение, а не корректность. Работает ли код — он не знает. Попросишь отрефакторить аутентификацию, а Клод сломает её — классификатор пропустит, потому что сломанное не значит опасное.
Поэтому режим auto ставят в пару со stop-hook'ом, который прогоняет тесты:
Один охраняет намерение до действия, второй — корректность после. Ограничители режима auto ещё дорабатываются, так что актуальные списки разрешённого и запрещённого смотри в документации.
Этот режим нужен везде, где рядом нет человека, который нажмёт «подтвердить»: пайплайны CI, задачи по расписанию, ночные пачки. Разрешены только заранее одобренные инструменты, всё остальное отклоняется молча. В этом и смысл: пайплайн едет дальше, а не висит в ожидании подтверждения, которое некому дать.