Code Mode — экспериментальная функция, по умолчанию отключённая. Она может измениться или быть удалена в любом релизе. Чтобы оставить отзыв, выполните
/feedback.Как работает Code Mode
В сессии с Code Mode вы по-прежнему описываете задачу в промпте, а Claude пишет JavaScript-код для её выполнения. Один фрагмент кода может запускать команды параллельно, использовать один результат в следующем вызове и возвращать ту часть вывода, которую Claude нужно прочитать. Например, если вы попросите Claude увеличить лимит повторных попыток, Claude может написать такой код, чтобы найти файл, отредактировать его и запустить тесты. Последняя строка возвращает Claude путь к файлу и вывод тестов:Ctrl+O и откройте просмотрщик транскрипта. Каждый фрагмент кода отображается там в виде свёрнутой строки Code с подсказкой, как её развернуть.
Когда использовать Code Mode
Попробуйте Code Mode на задачах, требующих множества связанных вызовов инструментов, например:- Изменение, которое повторяется во многих файлах
- Поиск, результаты которого нужно отфильтровать, прежде чем Claude их прочитает
- Несколько независимых команд, которые можно выполнять одновременно
Ограничения Code Mode
Прежде чем включить Code Mode, убедитесь, что эти ограничения для вас приемлемы:- Возобновление: сессию с Code Mode можно возобновить только в терминале и только с включённым Code Mode
- Авторежим: классификатор авторежима проверяет код, а не каждый вызов инструмента
- Долго выполняющийся код: если код не может выполняться в фоновом режиме, вы ждёте его завершения, и он останавливается через десять минут
- Хуки: вы можете увидеть отклонённые вызовы инструментов, когда хук
PreToolUseне может запуститься или превышает таймаут, а также вывод кода, заблокированный хукомUserPromptSubmit - Недоступные функции: вы не можете использовать Remote Control, Claude in Chrome или computer use
- Перенос сессии: вы не можете перенести сессию в приложение Desktop или превратить её в фоновую сессию, а
/forkне может запустить фоновую копию
Требования
- Версия: Claude Code v2.1.323 или новее, на любом канале релизов. Более старая версия запускается без Code Mode — с причиной
it isn't open to your account yetили без неё - Аккаунт: подписка Claude или аккаунт Console. Использовать Code Mode через шлюз, Amazon Bedrock, Claude Platform on AWS, Google Cloud’s Agent Platform или Microsoft Foundry нельзя
- Организация: ваша организация не использует ни конфигурацию HIPAA, ни нулевое хранение данных
- Модель: Claude Opus 5.5, Sonnet 5.5, Haiku 5.5 или Fable 5.2
- Интерфейс: интерактивная сессия
claudeв терминале. Code Mode не работает с-p, Agent SDK, панелью VS Code, приложением Desktop и облачными сессиями - Установка: нативная сборка Claude Code
- Windows: установлен Git for Windows
DISABLE_TELEMETRY. Как исправить каждый из этих случаев, см. в разделе Code Mode не запускается.
Попробуйте Code Mode
Включите Code Mode, дайте Claude задачу и посмотрите на код, который написал Claude.1
Проверьте версию
Выполните
claude --version. Если версия старше v2.1.323, выполните claude update. Если вы на канале stable и обновление не доходит до v2.1.323, подождите, пока stable догонит, или переключитесь на latest.2
Запустите Claude Code с включённым Code Mode
Установите для переменной окружения
CLAUDE_CODE_EXPERIMENTAL_CODE_MODE значение 1. Чтобы попробовать Code Mode, задайте её в оболочке. Чтобы включить Code Mode для каждой новой сессии, задайте её в пользовательских настройках.- macOS, Linux, WSL
- Windows PowerShell
- settings.json
3
Подтвердите, что хотите использовать Code Mode
Перед вашей первой сессией с Code Mode Claude Code попросит подтверждения. Выберите Yes, turn on Code Mode. Claude Code перезапустится и покажет эту строку в верхней части сессии:Если вы видите другую строку или не видите никакой, см. раздел Code Mode не запускается.
4
Дайте Claude задачу с множеством вызовов инструментов
В знакомом вам проекте отправьте промпт, например такой:
5
Прочитайте код, написанный Claude
Нажмите
Ctrl+O и разверните строку Code, чтобы увидеть JavaScript-код, стоящий за вызовами инструментов. Нажмите Ctrl+O ещё раз, чтобы вернуться к диалогу.Отключение Code Mode
УдалитеCLAUDE_CODE_EXPERIMENTAL_CODE_MODE из оболочки и из ~/.claude/settings.json, а затем начните новую сессию. Также можно оставить переменную и изменить её значение на 0 в любом из этих мест. Если в одном месте задано 0, Code Mode остаётся отключённым, даже если в другом вы задали 1.
Блокировка Code Mode для вашей организации
ДобавьтеCLAUDE_CODE_EXPERIMENTAL_CODE_MODE со значением 0 в управляемые настройки, чтобы никто в вашей организации не мог использовать Code Mode:
0. Включить Code Mode для пользователей через управляемые настройки нельзя.
Разрешения и долго выполняющийся код
Ваш режим разрешений определяет, как проверяется код Claude и можете ли вы общаться с Claude, пока код выполняется.Проверки разрешений
Каждый вызов инструмента, который выполняет код Claude, проходит через ваши правила разрешенийdeny и ask и ваши хуки PreToolUse. Менять правило или matcher для инструмента, такого как Bash, не нужно. Помимо правил и хуков, в авторежиме код проверяет классификатор, а в режимах, которые запрашивают подтверждение, вы отвечаете на запросы разрешений:
- Авторежим: классификатор проверяет каждый фрагмент кода перед его запуском, а не каждый вызов инструмента. Он не видит значения, вычисляемые во время выполнения, например путь, взятый из вывода поиска, поэтому сохраняйте правила или хуки для вызовов, которые вы обязаны контролировать. Вы по-прежнему можете получить запрос разрешения, когда новый код запускается, пока выполняется предыдущий
- Другие режимы разрешений: код запускается без проверки, а запрос разрешения появляется для каждого вызова инструмента, для которого он появился бы в этом режиме
PreToolUse, который соответствует REPL — инструменту, выполняющему код Claude, — и читайте JavaScript-код из tool_input.code.
Долго выполняющийся код
Пока код выполняет долгую сборку или тест, Claude либо ждёт его, либо позволяет ему продолжаться в фоновом режиме:- Ожидание: Claude отвечает после завершения кода, а код останавливается через десять минут, включая время, которое вы провели над запросами разрешений
- Фоновый режим: вы можете продолжать общаться с Claude, а код может выполняться до двух часов
bypassPermissions. Если Claude всё равно ждёт, проверьте текущий режим и то, как вы начали сессию:
- Вы переключились на другой режим: нажимайте
Shift+Tab, пока не вернётесь в режим, в котором начали - Вы начали в другом режиме или выбрали сессию из списка
claude --resume: если авторежим вам доступен, выйдите, а затем выполнитеclaude --continue --permission-mode autoс включённым Code Mode - Вы передали имена инструментов в
--tools: начните заново в авторежиме без этого флага
Устранение неполадок
Code Mode не запускается
СтрокаCode Mode (experimental) isn't available в верхней части сессии означает, что Claude Code запустился без Code Mode. Причина указана в той же строке, и /status также её показывает. Найдите причину в этой таблице, внесите изменение и начните новую сессию. Если причины нет в списке, проверьте требования.
Если вы не видите строки о Code Mode, выполните
claude --version. Если ваша версия старше v2.1.323, обновитесь. Затем убедитесь, что CLAUDE_CODE_EXPERIMENTAL_CODE_MODE имеет значение 1 в вашей оболочке или пользовательских настройках, и удалите любое значение 0 оттуда и из любого файла --settings.
Запрос разрешения с обратным отсчётом
Когда Claude в авторежиме запускает новый код, пока предыдущий код ещё выполняется, предыдущий код теряет проверку классификатором. Тогда Claude Code спрашивает вас об оставшихся вызовах предыдущего кода, которым потребовалась бы проверка. Если IDE не подключена, запрос показывает обратный отсчёт:Tool call refused by a hook
Если Claude сообщает об отклонённом вызове инструмента, попросите его привести текст ошибки. Эти ошибки означают, что хукPreToolUse не вынес решения, и вызов отклоняется, даже если onFailure не задан:
the hook failed: при вызове из кода Claude ваш хук не смог запуститься, был принудительно завершён, завершился с кодом 126, 127 или кодом выше 128 либо вернул HTTP-ошибку или некорректный вывод. Исправьте хукthe hook did not finish: ваш хук превысил таймаут при вызове из кода Claude или при любом другом вызове инструмента после того, как Claude выполнил код в сессии. Увеличьтеtimeoutхука
command или http завершается с ошибкой или превышает таймаут, задайте для него "onFailure": "continue". Если хук command завершается с обычным кодом, например 1, вызов выполняется, если только вы не задали "onFailure": "block".
Вывод кода, задержанный хуком
Если Claude сообщает причину блокировки от хука там, где вы ожидали вывод кода Claude, проверьте ваши хукиUserPromptSubmit. Когда код может выполняться в фоновом режиме, хуки command, http и mcp_tool для этого события также запускаются для вывода кода. Чтобы пропустить вывод, измените хук так, чтобы он не блокировал, когда source в его входных данных равен poll_event.
Связанные ресурсы
- Режимы разрешений: сравнение авторежима с режимами, которые запрашивают подтверждение
- Справочник по хукам: написание хуков
PreToolUseиUserPromptSubmit - Управляемые настройки: применение единой конфигурации во всей организации