Интерактивный режим и навигация по сессии

REPL Claude Code — не просто строка ввода. Это многослойная среда: здесь можно ссылаться на файлы, запускать шелл-команды, вставлять скриншоты, переключать модели и управлять памятью, не выходя из диалога. Чем лучше вы ориентируетесь в её слоях, тем меньше трений между идеей и результатом.

Если вы уже знакомы с установкой и поверхностями — терминальная поверхность (CLI) как раз живёт здесь: REPL, который запускается командой claude из директории проекта.


Три режима одной строки

Визуально строка ввода выглядит одинаково, но её поведение определяется первым символом:

flowchart TD A["Строка ввода REPL"] --> B{"Первый символ?"} B -->|"/"| C["Слэш-команды и навыки\n/clear, /compact, /model…"] B -->|"!"| D["Shell-режим\nвывод в контекст"] B -->|"@"| E["Файловое автодополнение\nсодержимое файла → контекст"] B -->|"(нет)"| G["Обычный промпт Клоду"]
flowchart TD
    A["Строка ввода REPL"] --> B{"Первый символ?"}
    B -->|"/"| C["Слэш-команды и навыки\n/clear, /compact, /model…"]
    B -->|"!"| D["Shell-режим\nвывод в контекст"]
    B -->|"@"| E["Файловое автодополнение\nсодержимое файла → контекст"]
    B -->|"(нет)"| G["Обычный промпт Клоду"]
Первый символ определяет режим строки ввода REPL
СимволРежимЧто происходит
/Команды и навыкиОткрывает слэш-меню; список фильтруется по мере набора
!Shell-режимКоманда уходит напрямую в шелл, вывод добавляется в контекст
@Файловое автодополнениеClaude читает файл и включает содержимое в текущий ход

Выйти из shell-режима можно нажав Escape, Backspace или Ctrl+U на пустой строке. Переключение мгновенное — никакого модального состояния.

Check yourself
Вы работаете в REPL и хотите быстро проверить статус git, не прерывая диалог с Claude. Какой самый быстрый способ — и попадёт ли вывод команды в контекст диалога?

@-упоминания файлов

Начните вводить @ — появится автодополнение путей. Это не просто вставка имени: Claude читает содержимое файла и включает его в контекст текущего хода.

@src/api/auth.ts объясни логику refresh-токена
@package.json  какие зависимости устарели?

В одном промпте можно упомянуть несколько файлов одновременно. Важный нюанс: @-упоминание работает в рамках одного хода — на следующем шаге файл не переносится автоматически. Если файл нужен постоянно, добавьте ссылку на него в CLAUDE.md через @path/to/import.

С большими файлами стоит быть точным. 3000-строчный модуль ради одной функции занимает контекстное окно без пользы — лучше описать, что именно нужно найти, и дать Claude возможность воспользоваться Grep/Glob самостоятельно.


Quick recall
Какой режим ввода используется для добавления содержимого файла в контекст текущего хода?

Вставка изображений

Claude Code принимает изображения прямо в строке ввода:

  • macOS (iTerm2): Cmd+V
  • Windows / WSL: Ctrl+V или Alt+V

После вставки в строке появляется чип [Image #1]. Несколько изображений нумеруются по порядку, и на них можно ссылаться явно:

[Image #1] что за ошибка в этом стектрейсе?
[Image #2] она как-то связана с этим дизайн-макетом?

Поддерживаются PNG, JPEG, GIF, WebP. Удобно для скриншотов консольных ошибок, UI-макетов или графиков из Jupyter — всего, что сложнее описать словами.

Check yourself
Вы хотите показать Claude скриншот ошибки и одновременно сослаться на файл src/error-handler.ts. Как правильно объединить оба источника в одном промпте?

Shell-режим: быстрый выход в терминал

Префикс ! запускает команду напрямую, без посредничества Claude, и добавляет её вывод в контекст:

! git log --oneline -10
! npm run test -- --testPathPattern=auth
! ls -la src/components/

Это не то же самое, что просить агента «выполни команду»: вывод появляется мгновенно, вы видите его в реальном времени, и Claude тоже его видит на следующем ходу. Shell-режим поддерживает Tab-автодополнение из истории предыдущих !-команд в текущем проекте.

Для долгих процессов — Ctrl+B переводит команду в фон. Диалог с Claude продолжается, вывод фоновой задачи сохраняется в файл; агент может прочитать его через инструмент Read. Пользователям tmux нужно нажать Ctrl+B дважды из-за конфликта с префиксом tmux.


Quick recall
Какой символ нужно ввести в начало строки, чтобы команда ушла напрямую в шелл без посредничества Claude?

Горячие клавиши, которые меняют ежедневную работу

Полная таблица в документации большая — вот ключевые:

СочетаниеДействие
Shift+TabПереключить режим разрешений (default → acceptEdits → plan → …)
Option+T / Alt+TВключить/выключить extended thinking
Option+O / Alt+OВключить/выключить fast mode
Option+P / Alt+PСменить модель, не сбрасывая промпт
Ctrl+GОткрыть промпт в $EDITOR
Ctrl+OПоказать журнал вызовов инструментов
Ctrl+RОбратный поиск по истории команд
Ctrl+LПерерисовать экран (если терминал «поехал»)
EscПрервать ответ, сохранив выполненную часть
Esc + Esc (пустая строка)Открыть меню rewind
Ctrl+X Ctrl+KОстановить все фоновые субагенты

Про Ctrl+G стоит сказать отдельно. Включите в /config опцию «Show last response in external editor» — и редактор откроется с ответом Claude в виде #-комментариев над вашим промптом. Редактируете в контексте предыдущего ответа, сохраняете — комментарии убираются автоматически. Полезно для длинных, структурированных промптов, которые сложно набирать в однострочнике.

macOS-нюанс: большинство Alt/Option-сочетаний требуют настройки Option key как Meta в вашем терминале: iTerm2 → Settings → Profiles → Keys → Left Option key → «Esc+». Исключение: Option+T работает без этого начиная с версии 2.1.132.


Quick recall
Какая горячая клавиша переключает между режимами разрешений (default, acceptEdits, plan)?

Управление длинной сессией

Контекстное окно не резиновое, а заполненное окно — главный враг качества ответов. Вот инструменты контроля:

/compact — Claude суммирует диалог, сжимая его до компактного резюме. Автоматически срабатывает при приближении к лимиту. Можно задать фокус:

/compact focus on the authentication module

Резюме будет прицельным, не обобщённым. После компакции проектный CLAUDE.md переинжектируется заново — инструкции не теряются.

/clear — начать новую сессию. Диалог сбрасывается, но предыдущий сеанс сохраняется и доступен через /resume.

Двойной Esc (на пустой строке) — открывает меню rewind для отката к предыдущей точке сессии. Подробно описано в статье Управление контекстным окном.

/btw — боковой вопрос без записи в историю. Работает даже пока Claude обрабатывает задачу:

/btw как называлась та утилита для парсинга дат?

Ответ появляется в overlay и не засоряет контекст. Нажмите f внутри overlay, чтобы форкнуть разговор в отдельную сессию с полным доступом к инструментам — если хотите продолжить тему. /btw — обратная сторона субагента: он видит весь диалог, но не имеет инструментов. Субагент — наоборот: полные инструменты, но чистый контекст.

Ctrl+T — показать/скрыть список задач. Когда Claude работает над многошаговой задачей, он ведёт task list, который сохраняется между компакциями — удобно для длинных рефакторингов.

Check yourself
В чём принципиальная разница между /compact и /clear? При каком сценарии лучше /compact, а не начинать сессию заново?

Поиск по истории

Ctrl+R запускает обратный поиск по истории команд — интерактивно, с подсветкой совпадений. По умолчанию поиск охватывает все проекты. Ctrl+S внутри поиска переключает область видимости: текущая сессия → текущий проект → все проекты. Tab или Esc принимают совпадение для дальнейшего редактирования; Enter — принимает и сразу выполняет.

История команд сбрасывается при /clear (начало новой сессии), но привязана к рабочей директории — в разных проектах истории независимые.


Vim-режим и мультилайн

Для поклонников vim включите vim-режим через /config → Editor mode. Поддерживается полноценный подмножество: NORMAL/INSERT/VISUAL, текстовые объекты (iw, i", i(), motions (f{char}, t{char}), u для undo, . для повтора. Block-visual (Ctrl+V) не поддерживается.

Для мультилайн-ввода без vim наиболее универсальный способ — \ + Enter (работает в любом терминале). В iTerm2, WezTerm, Ghostty, Kitty, Warp, Apple Terminal и Windows Terminal — Shift+Enter без настроек. Если ваш терминал не в этом списке — запустите /terminal-setup.


Recap и контекст возврата

После трёх и более минут неактивности Claude Code автоматически генерирует одну строку-резюме того, что произошло в сессии. Это готово в момент возвращения к терминалу. Команда /recap генерирует резюме вручную.

В статусной строке внизу — ссылка на открытый PR текущей ветки с цветовым индикатором: зелёный — approved, жёлтый — ожидает ревью, красный — requested changes, серый — draft. Кликается через Cmd+Click / Ctrl+Click, обновляется каждые 60 секунд и сразу после любой команды gh pr или git push.


See also