Skip to main content

Работа в терминале

Запуск в проекте​

Запускайте veai из корня проекта: агент работает с файлами в текущем каталоге, а настройки проекта читает из <проект>/.veai/.

cd path/to/project
veai

Сообщения пишите в поле ввода внизу экрана. Команды начинаются с /: введите /, чтобы увидеть список доступных команд с описаниями.

Сессии​

Каждый разговор с агентом сохраняется как сессия. К ней можно вернуться позже.

ДействиеКак сделать
Начать новую сессию/new
Открыть другую сессию/resume или запуск veai --resume
Продолжить последнюю сессиюЗапуск veai --continue
Задать название сессии/name
Посмотреть сведения о сессии и расход токенов/session
Вернуться к одному из прошлых сообщений и продолжить с него новую ветку/fork или /tree
Скопировать текущую сессию/clone
Сжать контекст сессии/compact
Экспортировать сессию в HTML/export

После первого успешного ответа агент сам придумывает сессии короткое название. Генерацию можно отключить в настройках.

Команды​

Основные команды терминального интерфейса:

КомандаНазначение
/login, /logoutВойти в аккаунт или подключить провайдера; удалить учётные данные
/modelВыбрать модель
/thinkingЗадать уровень рассуждений модели
/modeПереключить режим разрешений
/custom-providerДобавить, изменить или удалить свою модель или шлюз. См. «Свои модели и шлюзы»
/llamaУправлять моделями локального сервера llama.cpp
/agentsПосмотреть вспомогательных агентов и включить или выключить их. См. «Субагенты»
/skillsПосмотреть скиллы и включить или выключить их
/rulesПоказать правила, которые действуют в проекте
/mcpУправлять MCP-серверами
/todosПоказать список задач агента в текущей сессии
/btwЗадать быстрый вопрос по текущему чату, не прерывая агента. См. «Быстрый вопрос: /btw»
/telegramНастроить управление из Telegram. См. «Управление из Telegram»
/notifyНастроить уведомления на рабочем столе
/languageПоказать или сменить язык ответов агента: /language ru или /language en
/settingsОткрыть меню настроек терминального интерфейса
/copyСкопировать последний ответ агента в буфер обмена
/reloadПеречитать скиллы, правила и расширения без перезапуска
/hotkeysПоказать все сочетания клавиш

Если команды нет в списке после /, значит, она недоступна в вашей версии или сессии.

Режимы разрешений​

Режим разрешений определяет, когда агент спрашивает подтверждение перед действием. Текущий режим показан в интерфейсе.

РежимМеткаКак работает
defaultDEFAULTСпрашивает про опасные команды, которые распознаёт разбор, и про команды, которые разобрать не удалось. python -c, node -e и скрипты выполняет без вопроса
paranoidPARANOIDСпрашивает про любую команду, если не уверен, что она только читает данные
bypassPermissionsYOLOНичего не спрашивает, выполняет всё сразу
afkAFK«Я отошёл»: ничего не спрашивает, а на вопросы агента отвечает, что вас нет, и агент продолжает работу до конца задачи. Опасные команды не блокируются

Если агент может запускать скрипты, которые сам написал, и вам важно подтверждать каждое такое действие, используйте paranoid.

Колесо режимов: Shift+Tab​

Shift+Tab открывает колесо, на котором за один раз переключаются режим разрешений, модель и уровень рассуждений. Enter применяет выбор сразу, Esc отменяет. Если ничего не нажимать, выбор применится через 1,5 секунды.

Колесо по Shift+Tab: режим разрешений, уровень рассуждений и модель

Другие способы переключить режим:

  • команда /mode;
  • флаг при запуске: veai --permission-mode paranoid.

Каждая сессия хранит свой режим. Субагенты работают в режиме родительской сессии.

afk рассчитан на одну задачу, которую никто не контролирует. После каждого ответа агент получает указание продолжать, пока сам не завершит работу. По умолчанию таких продолжений не больше 10 после вашего последнего сообщения; лимит задаётся параметром afk.maxContinuations. Сессия, сохранённая в afk, при повторном открытии запускается в bypassPermissions.

Чтобы новые сессии всегда начинались в нужном режиме, задайте permissions.defaultMode в ~/.veai/settings.json. Допустимые значения: default, paranoid и bypassPermissions. Этот параметр читается только из глобальных настроек, поэтому склонированный репозиторий не может отключить подтверждения. Подробнее — в разделе «Настройки».

warning

В режимах bypassPermissions и afk агент выполняет любые команды без подтверждения. Включайте их только в проектах, где изменения можно легко откатить, например через Git.

Безопасность и ограничения​

CLI не полагается на регулярные выражения и не использует LLM-классификатор. Он разбирает команду в синтаксическое дерево и раскрывает обёртки env, sudo, timeout, xargs, вызовы bash -c и подстановки $(...) на глубину до восьми уровней. Поэтому опасная команда, спрятанная за безобидными обёртками, например env FOO=1 timeout 5 bash -c "rm -rf ~", тоже вызовет запрос.

CLI всегда спрашивает подтверждение, если:

  • вложенность глубже восьми уровней;
  • команда содержит eval;
  • имя команды не записано буквально, например $CMD или $(which rm);
  • скрипт передаётся через pipe;
  • команду не удалось разобрать.

Ограничения:

  • Песочницы на уровне ОС нет. Проверка защищает от ошибок модели, но не изолирует процессы.
  • Защищённые пути, например .git, проверяются только для распознанных команд записи: sed -i, перенаправлений вывода, tee, cp и mv. Запись из python -c, node -e или скрипта, который агент сам написал и запустил, в режиме default пройдёт без вопроса.
  • Windows без Git Bash. Инструмент bash выполняет команды в PowerShell, и модель пишет команды на синтаксисе PowerShell. Разбора PowerShell у политики разрешений пока нет.
  • Режим нельзя задать файлом в проекте. Иначе склонированный чужой репозиторий мог бы отключить вам подтверждения.

Остановка агента и выход​

  • Esc — прервать текущий ответ агента. В историю добавляется отметка [Request interrupted by user], поэтому модель видит, где её остановили, и на следующем ходу не доделывает прерванную работу без вашего указания.
  • Ctrl+D в пустом поле ввода — выйти из veai.

Полный список сочетаний клавиш показывает команда /hotkeys.

Вид интерфейса​

По умолчанию интерфейс занимает весь экран: поле ввода и строки состояния закреплены внизу, а разговор прокручивается внутри окна колёсиком мыши, клавишами PgUp/PgDn и Ctrl+Home/Ctrl+End. После выхода разговор выводится в терминал.

В полноэкранном режиме выделенный мышью текст не копируется автоматически. Чтобы скопировать выделение, нажмите Ctrl+X.

Встроенный режим regular выводит разговор в обычную историю прокрутки терминала. Включить его можно так:

  • в /settings выберите пункт TUI mode → regular;
  • для одной сессии запустите veai --tui-mode regular.

В том же меню /settings пункт Fullscreen copy on select включает копирование при выделении.

Анимированного персонажа в строке состояния можно сменить командой /mascot, а подсказки под ней отключить параметром tui.tips в настройках.

Флаги запуска​

ФлагНазначение
--continue, -cПродолжить последнюю сессию
--resume, -rВыбрать сессию для продолжения
--permission-mode <режим>Запустить в режиме default, paranoid, bypassPermissions или afk
--model <модель>Запустить с указанной моделью
--tui-mode fullscreen|regularВыбрать вид интерфейса на одну сессию
--version, -vПоказать версию
--help, -hПоказать справку

Команды veai login, veai logout, veai update и veai config описаны на странице «Установка и обновление».