マルチマシン管理
Cloud とセルフホスト
アカウント連携のマルチマシン管理(自分のネットワーク外のマシンを含む)は Cloud バージョン で利用できます。セルフホストバージョンでも、互いに直接到達できる複数のマシン(同じネットワークまたは Tailscale)をアカウントなしでまとめられます — 下の「アカウントなしでマシンをペアリング(セルフホスト)」を参照してください。
ADHDev Cloud を使うと、1 つのアカウントで単一のダッシュボードから複数の開発マシンを管理できます。
得られるもの
- ノート PC、デスクトップ、業務用マシン、またはリモートサーバーのための単一のダッシュボード
- IDE、CLI ワークフローにまたがるマシン認識のセッション可視性
- 起動コントロール、プロバイダー設定、ログ、session-host の復旧を備えたマシン詳細ページ
- ローカルネットワークの外からのクラウドアクセス
これは、クラウドとセルフホストの最も明確な違いの 1 つです。クラウドはアカウントに紐付いたコントロールプレーンです。セルフホストはホストマシン上のローカルダッシュボードで、互いに到達できるネットワーク上のペアリング済みマシンを取り込めます。
仕組み
各マシンは、同じクラウドアカウントに認証された独自の ADHDev デーモンを実行します:
npm install -g adhdev
adhdev setup
adhdev daemon同じアカウントのもとでマシンが接続されると、ダッシュボードに一緒に表示されます。
Repo Mesh(デーモン間オーケストレーション)
Repo Mesh は、同じアカウントの複数のデーモンを調整し、1 つの コーディネーター セッションが複数のマシンや git ワークツリーにわたって作業を駆動できるようにします。これは 直接のデーモン間 P2P DataChannel(node-datachannel 経由)で実行されます。クラウドサーバーの WebSocket は SDP offer/answer/ICE のシグナリングのみを中継し、両方のデーモンが同じアカウントに属していることを認可します。これはデーモンの調整です — ダッシュボードコマンドのフォールバックでは ありません。ダッシュボードのコマンド/データトラフィックは、依然としてダッシュボード↔デーモンの P2P チャネルのみを使用します。
クラウドダッシュボードは、Repo Mesh ページ(/mesh)で mesh を表示します。
中核となる概念:
- Node — mesh に参加するワークスペース: エージェントが実行できるリポジトリのチェックアウト、または分離された git ワークツリー。
- Mission — それに向かって作業するタスクをグループ化し、永続的な記録として残る目標。
- Task — ノード上のエージェントが実行する作業の単位で、
pending → assigned → completed/failedを通じて移動します。 - Queue — アイドルなノードが自律的にクレームする待機タスクのデーモンローカルなリスト。キューはローカルファーストで権威があります。Cloud/D1 は軽量なメンバーシップ/シグナリングメタデータのみを保持します。
- Ledger — ノード全体ですでに起きたことの追記専用の mesh 監査ログ(履歴であり、To-Do リストではありません)。境界付きの P2P 台帳スライスを通じてデーモン間で照合されます。
- Refinery — ワークツリーブランチをそのベースに収束させるプロセス: 検証 → マージ → プッシュ → クリーンアップ。
コーディネーターデーモンが集約 mesh_status スナップショットを所有します。ワーカーセッションはコーディネーターによってディスパッチされ、デフォルトで自動承認されます。完了は LLM の自己報告ではなく、証拠ベース(git ステータス/チェックポイント、台帳イベント)です。Repo Mesh ツールは、mesh モードの MCP サーバーを通じてコーディネーターセッションに公開されます — MCP サーバー を参照してください。
全体像 — プルベースのオーケストレーション、ワークツリー分離のリポジトリコラボレーション、Refinery の収束、クロス検証 — については、専用の Repo Mesh ガイド を参照してください。
Machines
Machines ページはマシンレベルの概要です。次のことをすばやく確認できる場所です:
- どのマシンがオンラインか
- セッションがどのマシンに属しているか
- 接続とランタイムのステータス
- 詳細を開きたいマシン
マシン詳細
マシンを開くと、メインダッシュボードよりも運用的なビューが得られます:
- 現在の IDE、CLI セッションのための Workspace
- ホスト型 CLI ランタイムの診断と復旧のための Hosted Runtimes
- マシン/プロバイダー設定のための Providers
- マシンのヘルスのための System
- ランタイムおよびデーモンのログのための Logs
これは、高レベルのダッシュボードが何かおかしいと教えてくれるが、マシン固有のコンテキストが必要なときに使うページです。
一般的な使い方
マルチマシンのクラウドセットアップは、特に次のような場合に便利です:
- 1 台のマシンをバックグラウンドのエージェント作業に専念させる
- 個人用と業務用のデバイスを分ける
- 別の場所で実行中のセッションに対するモバイル承認が欲しい
- 物理的に使っていないマシンの CLI ランタイムを復旧する必要がある
プラン制限
| プラン | 最大マシン数 |
|---|---|
| Free | 1 |
| Pro | 2 |
| Ultra | 5 |
| Enterprise | 無制限 |
マシン制限に達すると、1 つを削除するかアップグレードするまで、追加のマシン登録は拒否されます。
セルフホストとの違い
セルフホストは、マシンをアカウント連携のホスト型ダッシュボードに統合しません。
ローカル専用ダッシュボード(必要なら互いに到達できるネットワーク上のペアリング済みマシンを含む)が欲しいときはセルフホストを使ってください。複数のデバイスやネットワークにまたがるアカウント連携のマシン可視性が欲しいときはクラウドを使ってください。
アカウントなしでマシンをペアリング(セルフホスト)
1.0.76 以降(1.0.77 でエンドツーエンドの動作を修正)、無料の standalone デーモンは複数のマシンにまたがれます。互いに直接到達できるマシン(同じネットワークまたは Tailscale)は、mesh 画面でアドレスと 1 回限りのコードを使ってペアリングします。ホストマシンが他のマシンにタスクを渡し、そのセッションを表示します。クラウドアカウントは不要です。
- 他のマシンが到達できるアドレスでホストを起動します。 デフォルトは
127.0.0.1(このマシンのみ)で、他のマシンは接続できません。adhdev standalone --host 0.0.0.0 --token <some-secret>を使うか、LAN または Tailscale の IP にバインドしてください。デーモンがループバック専用の場合、ペアリングカードが--host 0.0.0.0(または LAN/Tailscale IP)で再起動するよう警告を表示します。 - ホストでコードを作成します。 mesh 画面の 別のマシンを接続 カードで ホスト タブのまま ペアリングコードを作成 をクリックします。カードに アドレス(このマシンの LAN または Tailscale の IP とポート、デフォルトは
3847)と コード が表示されます。コードは 1 回だけ表示され、有効期限があります。コピー でコピーできます。 - もう一方のマシンから参加します。 そのマシンで同じリポジトリの mesh を作成(または開き)、mesh 画面の同じカードで メンバー タブを開き、ホストのアドレスを
host:port(例:100.64.0.2:3847)の形式で、そしてコードを入力して 接続 をクリックします。カードにペアリング完了が表示され、接続が確立するまで 接続を待っています と表示されます。 - ホストで管理します。 ペアリング済みのマシンは ホスト タブの 接続済みのマシン に一覧表示され、接続を解除 で削除できます。
ペアリング後は、アシスタントも他のマシンでホストされているプロジェクトにリクエストを渡し、結果を自分のチャットに戻せます。
セキュリティ
mesh ピアはダッシュボードトークンを使いません。各マシンは /ws/mesh で自身のペアリングシークレット(HMAC ハンドシェイク)により認証します。ダッシュボードのトークンやパスワードなしで 0.0.0.0 にバインドすると、そのネットワーク上の誰でもダッシュボードに到達でき、サーバーは起動時に警告を出力します。詳細は Standalone を参照してください。
クラウド専用のままのもの:
- 自分のネットワーク外のマシンへのアクセス(クラウド P2P と TURN)
- プッシュ通知
- ホスト型 REST API と API キー
- マシン間のプロジェクトファイル転送(standalone は WebRTC ファイルリンクを開けません)
マシンの命名
複数のマシンを接続すると、分かりやすいマシン名が重要になります。
マシンのニックネームはダッシュボード全体に表示され、セッションが実際にどこで実行されているかを明確に区別するのに役立ちます。
