Документация

Клиент командной строки

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 открывает два полноэкранных селектора (требуется интерактивный терминал):

  1. Список серверов — сначала Local, затем каждый управляемый сервер как Name (адрес). Навигация стрелками или j/k, прыжок цифрой, Enter выбирает, q отменяет;
  2. Список терминалов — сначала 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]