ドキュメント

コマンドラインクライアント

vtermc はコマンドラインクライアントです。サーバーに接続してターミナルセッションを作成・アタッチし、保存済みサーバーリストを管理します。すべて素のターミナル内から、SSH 越しに、あるいはヘッドレスマシン上で利用できます。デスクトップクライアントと ~/.vibeterminal/client.json を共有するため、両者が同じサーバーを見ます。

ターミナルの起動

モードフラグなしで vtermc を実行すると、ローカルサーバー(デフォルト wss://localhost:7878)上に検出されたシェルで新しいターミナルを作成し、現在のターミナルにストリーミングします。リモートシェル内で exit(または Ctrl+D)を入力するとセッションを終了します。

セッションはサーバー上に存在します。接続が切れても — ネットワーク断、ウィンドウを閉じる、vtermc を kill — セッションは動作し続け、後から vtermc -s で再アタッチできます。

  • vtermc -p <id> — 特定のターミナルプロファイルで起動(プロファイル一覧は Web UI の 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 に保存して終了します。ターミナルは開きません。2 つの方法があります:

  • vtermc -a — 対話式プロンプト:Server name、Server address、Secret key。アドレスは wss://host:port である必要があります(不正入力は再プロンプト、空のアドレスでキャンセル)。空の名前はアドレスにフォールバックします;
  • vtermc -a "vtshare1:..." — 暗号化された共有文字列を貼り付け。Web UI の Server セクションでペアリング QR Code をクリックするとクリップボードにコピーされます。vtermc が復号し、名前・アドレス・シークレットキーを自動入力します。

知っておくと良い詳細:

  • 既存のアドレスを再追加すると、エントリが複製されるのではなくその場で更新されます(id は保持);
  • ローカルアドレスは拒否されます — Local は暗黙に常に利用可能で、エントリは不要です;
  • エントリはデスクトップクライアントの Server Manager にも表示されます。

サーバーとセッションの選択

vtermc -s は 2 つの全画面ピッカーを開きます(対話型ターミナルが必要です):

  1. サーバーリスト — 最初に Local、次に管理下のすべてのサーバーが Name (address) 形式で。矢印キーまたは j/k で移動、数字でジャンプ、Enter で選択、q でキャンセル;
  2. ターミナルリスト — 最初に New Terminal、次にそのサーバーの稼働中セッション(作業ディレクトリ、タイトル、所有サーバー付き)。既存セッションにアタッチするか、新規作成します(その場合、通常の vtermc 実行と同様に -p / -w が尊重されます)。

アタッチしてもセッションは中断されません。アタッチ間もサーバー上で動作し続けます。

サーバーの削除

サーバーリストで管理下のサーバーに移動して 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]