← Блог / Основы

Режимы Claude Code: plan mode, auto и продолжение сессии

·7 мин

Когда впервые открываешь 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 и агенты.

Смотреть программу курса