Режимы Claude Code: plan mode, auto и продолжение сессии
Когда впервые открываешь Claude Code, кажется, что он работает в одном режиме: задал вопрос — агент что-то сделал — одобрил. Но у инструмента есть три режима доверия, которые принципиально меняют характер работы, и они переключаются прямо в сессии одним хоткеем. Разберём каждый режим, когда какой выбирать и в чём критичное отличие auto mode от «выключить все проверки».
Три режима доверия и как между ними переключаться
Все три режима — это ответ на один вопрос: насколько самостоятельно агент может действовать в вашем проекте? Переключение между ними в активной сессии — Shift+Tab циклически. Можно задать режим и при старте флагом.
В строке статуса внизу терминала всегда видно текущий режим — это ориентир.
Обычный режим (default)
Стартовое состояние при запуске claude без флагов. Агент действует, но на каждую правку файла и на любую потенциально опасную операцию спрашивает подтверждение. Это «руль в ваших руках»: вы видите каждый шаг и принимаете решение одобрить или отклонить.
Подходит, когда:
- вы только начинаете работу с незнакомой частью кодовой базы;
- задача размытая и хочется контролировать каждое движение агента;
- изменения ведут в код, где цена ошибки высока.
Plan mode — сначала план, потом действие
Запуск с флагом или переключение через Shift+Tab:
claude --permission-mode plan
В plan mode агент анализирует задачу, собирает контекст, формулирует план изменений — и останавливается. Файлы не трогает. Вы читаете план, вносите правки формулировки, одобряете или отказываетесь. Только после явного «да» агент переходит к выполнению.
Это лучший режим для архитектурных решений и рефакторингов с долгими последствиями. Например, в проекте CoffeeCRM (NestJS + Next.js) перед тем как агент начинает переделывать структуру модулей бэкенда, правильно сначала увидеть, что именно он собирается изменить — и согласиться или скорректировать направление. В обычном режиме вы рискуете одобрять изменения по одному, не видя общей картины.
Мысленный образ: агент в роли консультанта — предлагает, но ничего не трогает без вашего слова.
Auto-accept edits — не дёргай на каждый файл
Второй вариант переключения через Shift+Tab, либо флаг при старте:
claude --permission-mode acceptEdits
Когда режим активен, в строке статуса появляется ⏵⏵ auto-accept edits on. Агент сам применяет правки файлов, не останавливаясь на каждом подтверждении. Это снимает трение при рутинных задачах, когда вы доверяете направлению работы и не хотите кликать «одобрить» на каждый файл.
Когда это уместно:
- массовый рефакторинг с понятным образцом (переименования, миграция форматирования, обновление импортов);
- написание CRUD-эндпоинтов или компонентов по шаблону, где план понятен;
- работа в ветке-эксперименте, где риск потери «хорошего кода» минимален.
Что важно понять: auto mode ускоряет только правки файлов. Опасные операции — удаление, git push, сетевые запросы — и все ваши deny-правила из .claude/settings.json по-прежнему работают. Агент не получает дополнительных полномочий: он просто перестаёт спрашивать на каждый Write(file).
Чем auto mode отличается от —dangerously-skip-permissions
Это критически важное различие, которое часто путают.
--dangerously-skip-permissions — флаг, который выключает весь слой разрешений полностью: ни deny-правила, ни подтверждения на опасные команды больше не работают. Агент может выполнить любую операцию без остановки. Это не режим для повседневной работы — это флаг для автоматизированных пайплайнов в изолированных средах, где нет интерактивного пользователя. Многие организации отключают его политикой на уровне настроек, чтобы он вообще не мог быть использован в рабочих окружениях.
Auto-accept edits, напротив, не трогает систему разрешений. Разрешения продолжают работать — просто подтверждение на запись файлов больше не всплывает. Ваши deny: ["Bash(curl *)", "Read(./.env)"] работают так же, как и в обычном режиме.
Коротко:
- auto mode — «не дёргай меня на каждый чих, но опасное всё равно спроси»;
- —dangerously-skip-permissions — «выключить все проверки», антипаттерн для живой разработки.
Подробно про систему разрешений, allow/ask/deny и безопасность — в статье про permissions и безопасность в Claude Code.
Продолжение сессии — —continue и —resume
Контекст сессии в Claude Code не обнуляется автоматически при закрытии терминала. Можно вернуться к прерванной работе:
claude --continue # продолжить последнюю сессию
claude --resume <session_id> # продолжить конкретную сессию по id
--continue подхватывает последнюю сессию — удобно, когда вы прервались и хотите продолжить с того места. --resume нужен, если вы вели несколько параллельных сессий и хотите вернуться к конкретной (id виден в интерфейсе).
Важный нюанс: продолжение сессии восстанавливает контекст, но это не значит, что агент «помнит» всё с той же точностью. Большой накопленный контекст может работать хуже, чем свежий. Если задача новая и не связана с предыдущей — лучше /clear и чистый старт, а не продолжение замусоренной сессии.
Как это выглядит на практике (CoffeeCRM)
Сценарий: вы работаете над модулем заказов в CoffeeCRM — бэкенд на NestJS, фронтенд на Next.js.
Утро, архитектурный вопрос. Нужно решить, как организовать обработку статусов заказа. Запускаете plan mode:
claude --permission-mode plan
Описываете задачу. Агент читает backend/src/orders/, строит план: предлагает enum статусов, схему переходов, какие файлы создать. Вы читаете, корректируете план в диалоге — допустим, убираете лишний статус. Даёте добро. Агент выполняет именно то, что обсудили.
Днём, рутинный рефакторинг. Нужно добавить DTO-валидацию во все эндпоинты. Паттерн понятен, файлов много. Переключаетесь в auto mode через Shift+Tab. Агент идёт по файлам сам, вы следите за терминалом — без кликов на каждый файл. Опасных операций в задаче нет, deny-правила на .env на месте.
Вечером, вернулись к незаконченному. Продолжаете сессию с --continue, но если контекст раздут — чище будет /clear и новый промпт с @backend/src/orders/orders.service.ts, чтобы дать агенту точный контекст без балласта. О том, как правильно подгружать контекст через @-ссылки и когда его чистить — в статье что такое Claude Code.
Итог
Три режима — три позиции на шкале доверия:
- Plan mode — агент советует, вы решаете. Используйте для архитектуры и рефакторингов с последствиями.
- Обычный — агент действует, спрашивает на каждом шагу. Дефолт, когда нужен контроль.
- Auto-accept edits — агент применяет правки файлов сам, опасное по-прежнему спрашивает. Для рутины, которой вы доверяете.
Shift+Tab переключает между ними прямо в сессии — не нужно перезапускать. Можно задать режим по умолчанию в ~/.claude/settings.json через defaultMode, чтобы каждый новый запуск стартовал в нужном состоянии.
Если хотите разобрать это на реальном проекте — от установки и первого запуска до настройки разрешений и работы с агентами — посмотрите полный курс по Claude Code. Все режимы разбираются вживую, с демонстрацией в терминале и практическими заданиями.
Курс
Освойте Claude Code системно
6 модулей, реальный fullstack-проект до деплоя, свои skills, MCP и агенты.
Смотреть программу курса