vibelive について
vibeliveは、コーディングセッションを共有するためのターミナルコラボレーションツールです。ローカルまたはLANのWebSocketでプロセス出力を共有し、単一ドライバーのキューで入力を管理します。CLI、Node.jsライブラリ、エージェント向けインターフェースを備えています。
主な機能
- 01単一ドライバーの制御キュー
- 02保持した出力の再生
- 03参加者チャットとプレゼンス
- 04共有出力の同意チェック
- 05セッション終了時のプロセス整理
活用シーン
- 01信頼できるLANでClaude Codeを共同操作する
- 02ホストが入力を管理しながらレビュー担当者が出力を見る
- 03MCPでセッションを作成し参加者とドライバーを確認する
MCP 対応
`vibelive mcp`はstdioでMCPサーバーを提供し、セッション開始用の`host_session`と状態確認用の`session_status`を備えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | いいえ | ホスト参加者の任意の表示名。 |
| port | integer | いいえ | バインドする任意のポート(デフォルト:エフェメラルポート)。 |
| command | array | はい | ラップする Agent コマンド。argv 形式で指定します(例:["claude"] または ["python","-i"])。 |
詳細
vibelive
vibelive は、エージェント型コーディングセッションを共有する開発者向けのオープンソースのターミナルコラボレーションツールです。 プロセスをラップし、ローカル/LAN の WebSocket 経由で出力を共有して、一度に 1 人のドライバーが入力できるようにします。 Vibe Suite の CLI、Node.js ライブラリ、エージェントサーバーとして提供されています。
インストール
npm install -g vibelive
Node.js 18 以降が必要です。TypeScript の型宣言と、直接依存する 3 つのランタイム依存関係が含まれています。
最初のプロセスを共有する
一方のターミナルで、入力行をそれぞれエコーするプロセスを起動します。
vibelive host --port 4474 --name ada -- node -e "process.stdin.on('data', b => process.stdout.write(b))"
もう一方のターミナルで、接続します。
vibelive join ws://localhost:4474 --name bee
ホストのターミナルで hello と入力します。両方のターミナルに hello が表示され、接続側には参加状況と操作権の状態も表示されます。
認証情報や環境変数は必要ありません。vibelive は .env ファイルを読み込まず、ラップされたエージェントはホスト環境を引き継ぎます。
LAN のピアには、ホストに表示される LAN アドレスを使用してください。通信にはプレーンな WebSocket を使用し、組み込みの認証や暗号化はありません。
接続側で /drive と入力します。ホストで /release と入力すると、操作権を引き渡せます。
その後、接続側から /type ping を送信すると、両方のターミナルに ping が表示されます。ホストで /quit を使用すると、セッションが終了します。
仕組み
Host terminal -> wrapped child process -> ordered output log
^ |
| v
one driver <- host WebSocket relay -> participants
| |
control queue chat + presence
ホストがプロセスの出力と操作権の状態を管理します。後から参加したクライアントには、保持されている出力に続いてライブ更新が送信されます。
リレーはデフォルトで 0.0.0.0 にバインドされるため、接続可能な LAN クライアントが接続できます。
開発の背景
コーディングエージェントをペアで使う際には、次に誰が入力できるのかを明確にする必要があります。 vibelive は、ラップされたコマンドを中心に、協調型のドライバーキューとチャットを追加します。 tmux や tmate などのツールは、より幅広いターミナルワークフローに対応しています。vibelive は、エージェントからアクセスできるセッション管理を備えたプロセス共有に重点を置いています。
比較
2026-10-14 に、tmux および tmate と比較して確認しました。
| プロパティ | vibelive | tmux | tmate |
|---|---|---|---|
| 対象範囲 | ドライバー調停機能付きのプロセス共有 | ターミナルマルチプレクサー | ターミナル共有 |
| ここでの通信方式 | プレーンなローカル/LAN WebSocket | ローカルセッション。リモートアクセスは別途設定 | SSH ベースの共有 |
| インターフェース | CLI、Node.js ライブラリ、エージェントツール | ターミナルコマンド | ターミナルコマンド |
| プロセス処理 | 子プロセスのパイプ | ターミナルセッション | tmux 由来のターミナルセッション |
対応状況
| 対応対象または連携 | 状況 | 範囲 |
|---|---|---|
| WebSocket / ws | 実装済み | ホストリレー、クライアント、出力、チャット、参加状況、操作権 |
| Claude Code | 汎用コマンドラッパー | claude を別途インストールする必要があります。専用アダプターはありません |
| OpenAI Codex | 汎用コマンドラッパー | CLI を別途インストールする必要があります。専用アダプターはありません |
| Google Gemini CLI | 汎用コマンドラッパー | CLI を別途インストールする必要があります。専用アダプターはありません |
| Pi / Grok ワークフロー | 汎用コマンドラッパー | パイプ互換コマンドに対応。専用アダプターはありません |
| Kimi | 汎用コマンドラッパー | CLI を別途インストールする必要があります。専用アダプターはありません |
| MCP | 実装済み | 2 つの stdio ツール |
| Cursor の更新 | プロトコルのみ | ライブラリでの送受信に対応。リッチな CLI カーソルレンダラーはありません |
| 暗号化されたリモートリレー | ロードマップ | 未提供 |
| 完全なターミナルエミュレーション | ロードマップ | 擬似端末には未対応 |
ハーネスアダプターのレジストリはありません。ホストは Node.js の子プロセスパイプを通じて、任意のコマンドを実行します。 ローカルテストでは、ホスト、リレー、クライアント、調停、プロトコル関連の動作、MCP を対象としています。個別のエージェント CLI は、ここでは認定していません。
一般的なユースケース
- Claude Code のペア利用:信頼できる LAN 上でプロセス出力を共有し、操作担当を引き継ぎます。
- Codex のレビュアー:ホストが入力を制御する間、ラップされたコマンドを監視します。
- Gemini CLI のメンター:チャットで議論を続け、
/type経由でエージェントに入力を送ります。 - Node.js チーム:AI の認証情報なしで共同作業をテストするため、行ベースのスクリプトをラップします。
- エージェントのビルダー:Model Context Protocol(MCP)経由でセッションを開始し、参加者と操作担当の状態を確認します。
機能
- 単独の操作担当: 先入れ先出しの制御キューを使用します。操作担当以外からの入力は拒否されます。
- 出力の再生: シーケンス番号付きの保持履歴とライブ出力を提供します。
- チャット: 参加者のメッセージとプロセス入力を分離します。
- プレゼンス: 参加者名と現在の操作担当を表示します。
- 同意: 出力共有の中継時に、vibe-core の
share:sessionスコープを確認します。 - ライフサイクル: ホストの終了時にセッションを閉じます。MCP の切断時には、ホストが起動したプロセスをクリーンアップします。
実行環境
vibelive host [--port N] [--name name] -- command [args...]
vibelive join ws://host:port [--name name]
vibelive mcp
vibelive --help / -h
vibelive --version / -v
ラップするコマンドのフラグはすべて -- の後に指定します。--port 0 を指定すると、利用可能なポートが選択されます。
参加用のパーサーも --port を受け付けますが、使用しません。接続先は URL によって決まります。
参加時の名前は、USER、次に USERNAME、どちらもなければ anon がデフォルトになります。
| 対話型コマンド | ホスト | 参加者 |
|---|---|---|
/drive | 制御を要求 | 制御を要求 |
/release | 制御を解放 | 制御を解放 |
/quit | セッションを終了 | セッションから退出 |
/type text | 操作担当の場合、プロセス入力として扱われます | 操作担当の場合、プロセス入力を送信 |
/help | 操作担当の場合、プロセス入力として扱われます | スラッシュコマンドのヘルプを表示 |
| その他のテキスト | 操作担当の場合、プロセス入力 | チャット |
vibelive mcp は、ツールがちょうど 2 つの stdio MCP を起動します。
| ツール | 入力 | 結果 |
|---|---|---|
host_session | コマンド配列。名前とポートは省略可能 | セッション ID と WebSocket 参加 URL |
session_status | URL フィルターは省略可能 | アクティブなセッション、参加者、操作担当 |
ライブラリーの例
npm install vibelive でローカルにインストールし、以下を demo.mjs として保存してから node demo.mjs を実行します。
import { createHost, createRelay, joinSession } from 'vibelive';
const host = createHost({ command: ['node', '-e', "setInterval(() => console.log('hello'), 200)"] });
const relay = await createRelay({ host: '127.0.0.1', port: 0, hostHandle: host });
const client = joinSession({ url: relay.url, name: 'ada' });
client.onOutput(text => process.stdout.write(text));
await client.id;
await new Promise(resolve => setTimeout(resolve, 600));
client.close();
host.kill();
await relay.close();
このスクリプトは hello を出力し、プロセスとリレーを終了します。
提供形態と動作上の制限
提供されるトランスポートは、ローカル/LAN 用のプレーンな WebSocket です。参加者認証、TLS、エンドツーエンド暗号化は組み込まれていません。 セッションへのアクセスとネットワークへの公開範囲が、想定する参加者に適合する環境でのみ使用してください。出力には、ラップされたコマンドが表示するあらゆる内容が含まれる可能性があります。 ホストは疑似端末(PTY)ではなくパイプを使用します。サイズ変更は何も行わず、raw モードや全画面表示のエージェントインターフェースは動作しない場合があります。 出力履歴のデフォルトは、メモリー上の 5,000 チャンクです。古いエントリーは削除され、ホストの終了後にセッションは保持されません。 カーソルメッセージはプロトコルに含まれていますが、CLI はアニメーションカーソルではなくプレゼンスを表示します。 このパッケージには、管理されたリレー、リモートへのファンアウト規模に関する保証、永続的なチャットサービスはありません。
統合ガイド
- Claude Code のプロセス共有:
vibelive host -- claudeを実行します。Claude Code は別途インストールし、認証してください。 - その他のコーディングエージェント:インストール済みのコマンドを
--の後に指定します。パイプ経由で動作できることを確認してください。 - LAN での参加:表示された
ws://<LAN-address>:<port>URL をvibelive joinとともに使用します。 - MCP ホストの設定:
{"mcpServers":{"vibelive":{"command":"vibelive","args":["mcp"]}}}
ステータス
パッケージのバージョン 0.2.3 は 1.0 より前のため、インターフェースは変更される可能性があります。CLI のソースバージョンは、現在も 0.2.2 を報告します。
今後の作業には、PTY ラッピング、より豊かなカーソル表示、暗号化されたセルフホスト可能なリモートリレーが含まれます。
公開事例はまだ公開されていません。公開ドキュメントサイトは設定されていません。セットアップ手順はこのページ内で完結しています。
サポートには GitHub の issue をご利用ください。リポジトリへのアクセスが必要な場合があります。
コントリビューションを行う場合は、npm ci、npm run typecheck、npm run build、npm test を実行してください。
FAQ
どの統合が検証済みですか?
vibelive は、ローカルプロセスと WebSocket の動作をテストします。名前が挙げられているコーディングエージェントには、専用の認証情報検証済みアダプターではなく、汎用ラッパーを使用します。
vibelive はマネージドリレーを提供していますか?
vibelive はホストマシン上でリレーを実行します。パッケージには、マネージドリモートリレーサービスは含まれていません。
vibelive と tmux の違いは何ですか?
vibelive は、ドライバーキューとチャットを備えたラップ済みプロセスを 1 つ共有します。tmux は、ターミナルセッション、ウィンドウ、ペインを管理します。
vibelive と tmate の違いは何ですか?
vibelive はローカル/LAN WebSocket と明示的なドライバー調停を使用します。tmate は SSH ベースのターミナル共有を提供します。
vibelive はエンドツーエンド暗号化されていますか?
vibelive は暗号化されていない WebSocket トランスポートを提供します。暗号化されたリモートリレーは今後のロードマップに含まれています。
2 人が同時にエージェントに入力できますか?
vibelive では、入力を送信できるドライバーは 1 人です。他の参加者はチャットしたり、操作権限の取得を待つキューに入ったりできます。
vibelive は全画面表示のターミナルアプリで動作しますか?
vibelive は PTY のセマンティクスを持たない子プロセスパイプを使用します。raw モード、リサイズ、全画面表示のターミナル動作には制限があります。
後から参加した人は、それ以前の出力を確認できますか?
vibelive は、ライブ更新の前に保持されている出力履歴を送信します。デフォルトのローリングバッファには、最大 5,000 個のチャンクが保持されます。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。