Работа в терминале
Запуск в проекте
Запускайте 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 | Показать все сочетания клавиш |
Если команды нет в списке после /, значит, она недоступна в вашей версии или сессии.
Режимы разрешений
Режим разрешений определяет, когда агент спрашивает подтверждение перед действием. Текущий режим показан в интерфейсе.
| Режим | Метка | Как работает |
|---|---|---|
default | DEFAULT | Спрашивает про опасные команды, которые распознаёт разбор, и про команды, которые разобрать не удалось. python -c, node -e и скрипты выполняет без вопроса |
paranoid | PARANOID | Спрашивает про любую команду, если не уверен, что она только читает данные |
bypassPermissions | YOLO | Ничего не спрашивает, выполняет всё сразу |
afk | AFK | «Я отошёл»: ничего не спрашивает, а на вопросы агента отвечает, что вас нет, и агент продолжает работу до конца задачи. Опасные команды не блокируются |
Если агент может запускать скрипты, которые сам написал, и вам важно подтверждать каждое такое действие, используйте paranoid.
Колесо режимов: Shift+Tab
Shift+Tab открывает колесо, на котором за один раз переключаются режим разрешений, модель и уровень рассуждений. Enter применяет выбор сразу, Esc отменяет. Если ничего не нажимать, выбор применится через 1,5 секунды.

Другие способы переключить режим:
- команда
/mode; - флаг при запуске:
veai --permission-mode paranoid.
Каждая сессия хранит свой режим. Субагенты работают в режиме родительской сессии.
afk рассчитан на одну задачу, которую никто не контролирует. После каждого ответа агент получает указание продолжать, пока сам не завершит работу. По умолчанию таких продолжений не больше 10 после вашего последнего сообщения; лимит задаётся параметром afk.maxContinuations. Сессия, сохранённая в afk, при повторном открытии запускается в bypassPermissions.
Чтобы новые сессии всегда начинались в нужном режиме, задайте permissions.defaultMode в ~/.veai/settings.json. Допустимые значения: default, paranoid и bypassPermissions. Этот параметр читается только из глобальных настроек, поэтому склонированный репозиторий не может отключить подтверждения. Подробнее — в разделе «Настройки».
В режимах 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 описаны на странице «Установка и обновление».