Интерактивный режим командной строки - это тот же агент, но в терминале и с терминальными привычками. Запускают его из нужного репозитория, потому что рабочий каталог определяет и то, что агент увидит, и то, где он будет править. Режимы переключаются тем же сочетанием, что и в редакторе, многострочный ввод набирается отдельной комбинацией, а выход из программы требует двойного нажатия. Двойное подтверждение здесь не формальность: в длинной сессии одно случайное нажатие закрывает разговор, который собирался полчаса, и возвращаться к нему придётся через список сессий.
Терминал под это настраивают один раз. Перенос строки внутри реплики через Shift+Enter работает не везде: iTerm2, Ghostty, Kitty, Warp и Zed поддерживают его сами, а tmux и screen перехватывают сочетание раньше, чем оно дойдёт до программы. Надёжный вариант - Ctrl+J, управляющий символ перевода строки: он проходит и через мультиплексор, и через SSH, где возможности зависят от локального эмулятора, а не от машины на том конце. Команда /setup-terminal распознаёт терминал и подсказывает, как добавить Option+Enter. Тем же усилием закрывают остальное: модальное редактирование включается командой /vim или записью в ~/.cursor/cli-config.json, а тему интерфейс определяет по ответу терминала - и когда это определение ошибается, её задают переменной COLORFGBG.
Наивная привычка, приносящая больше всего проблем, - запускать агента откуда придётся. В терминале это легко: вы уже стоите в какой-то папке, и команда работает. Но рабочий каталог и есть та область, из которой берётся контекст и в которой происходят правки. В монорепозитории разница видна лучше всего: запуск из корня даёт агенту все пакеты сразу, запуск из одного пакета - только его. Оба варианта законны, но отвечают на разные задачи, и выбирает между ними каталог, а не формулировка запроса.
Контекст в терминале собирают явно. Упоминание открывает выбор файлов и папок, отдельная команда сжимает историю, когда разговор стал длинным. Дисциплина та же, что и в редакторе, только без визуальных подсказок: никто не покажет, что в контекст уехало лишнее. Сжимать историю разумно на границах задач, а не в середине разбора: после сжатия от разговора остаётся выжимка, и подробность, которая понадобится через реплику, из неё уже не восстановится.
Полезно один раз увидеть запуск в разных режимах. Ниже - переход в каталог репозитория и два вызова: разбор без правок и планирование миграции. Флаг режима решает здесь больше, чем формулировка задачи, и снимает необходимость надеяться, что агент поймёт слова только объясни правильно.
Разница между флагом и формулировкой принципиальная. Просьба ничего не менять - это пожелание, которое модель толкует вероятностно; флаг режима отбирает у агента инструменты правки на уровне программы. В первом случае вы полагаетесь на понимание, во втором - на устройство инструмента. Цена ошибки при этом несимметрична: неверно понятое пожелание даёт правки, которых вы не ждали, и заметите вы их не в разговоре, а в diff, иногда через несколько шагов.
Признаки того, что в терминале что-то пошло не так, узнаются быстро. Агент отвечает уверенно, но ссылается на файлы, которых вы в этой задаче не ждали, или заявляет, что нужного модуля в проекте нет, - почти всегда это неверный рабочий каталог, а не выдумка модели. Ответы стали общими и повторяют уже сказанное - история переросла полезный объём, пора сжимать. Оба симптома проверяются за секунду и стоят дешевле, чем разбор правок, сделанных не там.
Сессии в терминале продолжаются несколькими способами: возобновить последнюю, продолжить конкретную по идентификатору, посмотреть список. В терминале это важнее, чем в редакторе, потому что работа чаще прерывается: закрыли окно, перезагрузили машину, ушли на встречу. Возобновляемая сессия превращает прерывание из потери контекста в паузу, а список сессий заменяет попытку вспомнить, чем закончился вчерашний разговор.
Отдельный приём - передача текущей задачи в облако прямо из терминала: сообщение с особым префиксом уходит облачному агенту, а продолжают работу уже в браузере или на телефоне. Удобство очевидное, но перед передачей проверяют две вещи: что облачное окружение подходит этой задаче и что нужные секреты там есть в правильном виде. Задача, отправленная без окружения, честно упрётся в отсутствие зависимостей, и узнаете вы об этом не сразу, а когда откроете её в другом месте.
Инженерный вывод простой: терминал даёт максимум контроля и минимум подсказок. Здесь нет визуальных напоминаний о режиме, контексте и каталоге, поэтому дисциплина переносится на вас: запускаться из нужного места, задавать режим флагом, собирать контекст явно и сжимать историю на границах задач. Взамен вы получаете предсказуемость и возможность сложить всю последовательность в скрипт, который повторит работу без вас.
Типичные провалы предсказуемы. Запустить агента не из того каталога и получить работу не в том месте. Растить историю до предела вместо своевременного сжатия. Надеяться на формулировку вместо флага режима. Закрыть окно, не запомнив, какую сессию продолжать. И передать задачу в облако, не проверив окружение и секреты.
cd /path/to/repo
agent --mode=ask "Объясни точки входа без правок"
agent --plan "Спланируй миграцию авторизации"
# продолжение работы: --resume, --continue, agent resume, agent ls