Документация
Клиент командной строки
vtermc — клиент командной строки: он подключается к серверу, создаёт терминальные сессии или подключается к ним и управляет сохранённым списком серверов — всё внутри обычного терминала, по SSH или на headless-машине. Он разделяет ~/.vibeterminal/client.json с десктоп-клиентом, поэтому оба видят одни и те же серверы.
Запуск терминала
Запустите vtermc без флагов режима, чтобы создать новый терминал на локальном сервере (по умолчанию wss://localhost:7878) с обнаруженной оболочкой и передать его поток в текущий терминал. Введите exit (или Ctrl+D) в удалённой оболочке, чтобы завершить сессию.
Сессии живут на сервере: если соединение оборвётся — потеря сети, закрытие окна, убийство vtermc — сессия продолжает работать и может быть переподключена позже через vtermc -s.
vtermc -p <id>— запуск с конкретным профилем терминала (список профилей — в разделеProfilesвеб-интерфейса);vtermc -p— без id профиля: селектор интерактивно перечисляет профили сервера;vtermc -w <dir>— задать рабочий каталог новой сессии.
Когда stdin не терминал (канал или файл), vtermc переходит в пакетный режим: stdin подаётся в сессию, а вывод идёт потоком, пока сессия не закроется — удобно из скриптов или агентов:
echo "make test" | vtermc
Подключение к серверу
--server wss://host:port— подключение к конкретному серверу вместо локального (IPv6-адреса в скобках:wss://[fd00::1]:7878); переменная окруженияVTERM_SERVERзадаёт то же значение по умолчанию;- Рукопожатие отвечается секретным ключом сервера: серверы, добавленные через
-a/-s, несут свой ключ вclient.json; локальный сервер откатывается к переменной окруженияTERMINAL_GUI_SECRET_KEY(или ключу открытым текстом вserver.json).
Добавление серверов
-a сохраняет сервер в client.json и выходит — терминал он никогда не открывает. Два способа:
vtermc -a— интерактивные запросы:Server name,Server addressиSecret key. Адрес должен бытьwss://host:port(неверный ввод запрашивается снова; пустой адрес отменяет). Пустое имя откатывается к адресу;vtermc -a "vtshare1:..."— вставьте зашифрованную строку общего доступа. Клик поQR Codeсопряжения в разделеServerвеб-интерфейса копирует её в буфер обмена;vtermcрасшифровывает её и автоматически заполняет имя, адрес и секретный ключ.
Детали, которые стоит знать:
- повторное добавление существующего адреса обновляет запись на месте (её id сохраняется) вместо дублирования;
- локальные адреса отклоняются —
Localвсегда неявно доступен и никогда не требует записи; - записи также показываются Server Manager’ом десктоп-клиента.
Выбор серверов и сессий
vtermc -s открывает два полноэкранных селектора (требуется интерактивный терминал):
- Список серверов — сначала
Local, затем каждый управляемый сервер какName (адрес). Навигация стрелками илиj/k, прыжок цифрой,Enterвыбирает,qотменяет; - Список терминалов — сначала
New Terminal, затем живые сессии этого сервера с рабочим каталогом, заголовком и сервером-владельцем. Подключитесь к существующей сессии или создайте новую (которая затем уважает-p/-w, как обычный запускvtermc).
Подключение никогда не прерывает сессию — она продолжает работать на сервере между подключениями.
Удаление сервера
В списке серверов перейдите к управляемому серверу и нажмите d: строка краснеет, и подсказка просит подтверждения. Нажмите y (или Enter), чтобы удалить запись из client.json, любая другая клавиша отменяет. Local удалить нельзя.
Переменные окружения
Новая сессия наследует фиксированный набор из вашей оболочки — PATH, HOME, USER, SHELL, TERM, WT_PROFILE_ID, PSMODULEPATH:
--env-inherit <patterns>— список через запятую (или переменная окруженияVTERM_ENV_INHERIT); поддерживаются шаблоны*;-e VAR=VALUE— внедрить дополнительные переменные (повторяемо);--no-env— запустить сессию совсем без унаследованных переменных.
vtermc -w ~/project -e RUST_LOG=debug --env-inherit "PATH,HOME,TERM"
Все опции
-p, --profile [<ID>] Выбрать профиль терминала (опустите для интерактивного списка)
-w, --working-dir <DIR> Задать рабочий каталог
-s, --select Интерактивно выбрать сервер и существующий терминал
-a, --add [<SHARE>] Добавить сервер (vtshare1: строка общего доступа, или интерактивно)
--server <URL> WebSocket-URL сервера [env: VTERM_SERVER]
-e, --env <VAR=VALUE> Дополнительные переменные окружения
--no-env Не наследовать переменные окружения
--env-inherit <PATTERNS> Шаблоны наследуемых переменных окружения [env: VTERM_ENV_INHERIT]