Companion
MadoHub iOS アプリを Mac とペアリングし、ローカルネットワーク経由でキャンバスをミラーリングします。
Companion は、ローカル Wi-Fi 経由で MadoHub のキャンバスを iOS アプリにミラーリングします。デスクトップから離れてもスマートフォンからエージェントを監視でき、キーボードに戻らずに素早いキー入力を送ったりフローを開始したりできます。
これはクラウド中継ではなく LAN ミラーです。キャンバス、エージェント、ターミナル出力のいずれも MadoHub サーバーを経由しません。Mac がローカルネットワーク上で小さなサーバーを動かし、スマートフォンがそこへ直接接続します。両者が同じ Wi-Fi にいる限り同期し続けます。
できること
- スマートフォンからキャンバスを表示 — すべてのフレーム、タイル、エージェントの状態、アクティビティ行、そしてターミナル出力の最近の末尾を、読み取り専用で表示します。
- タイルを開いてターミナルの詳細を読む — スマートフォンにはデスクトップと同じタイル状態(アイドル、作業中、待機中、停止、完了、失敗、終了)が表示されます。
- タイルへキー入力を送信 — 自由テキストに加え、
escape、ctrl-c、enterを特殊キーとして送信できます。ローカルでタイプした場合と同じ経路で届きます。 - スマートフォンからターミナルやフレームを作成 — デスクトップのビューポート中央に新しいターミナルを立ち上げたり、パスを指定してワークスペースフレームを開いたりできます。
- フローをリモート実行 — スマートフォンからタスクプロンプト付きで Flow を起動すると、デスクトップ側でフローが開始されます。
- ペアリングトークンをリセット — スマートフォンを失くした場合ややり直したい場合、設定からすべてのペアリング済みデバイスを即座に無効化できます。
使い方
- Mac の 設定 → General を開き、Companion を有効にします。
- 設定パネルに Mac のローカル IP とポート(例:
192.168.1.23:9280)、ペアリングトークン、スマートフォンにコピーできるmadohub://companion?…リンクが表示されます。 - スマートフォンでリンクを開きます(または iOS アプリでアドレスとトークンを手動入力します)。
- スマートフォンがペアリングされ、キャンバスのミラーリングが始まります。設定画面には現在接続中のデバイス数が表示されます。
- スマートフォンからタイルをタップして詳細を読み、タイルに入力を送るか、メニューからターミナル作成、フレームを開く、フローを実行を選びます。
すべてのペアリングを解除するには、設定で reset token をクリックします。ペアリング済みのすべてのデバイスが即座に無効化されます。サーバーが動作中の場合は新しいトークンの下で再起動します。
よくあるユースケース
- 「長時間動くエージェントをソファから監視したい」 — スマートフォンを開き、タイルの状態と最近の出力を確認し、暴走したら
ctrl-cを送ります。 - 「デスクトップに戻らずにピアレビューフローを開始したい」 — スマートフォンから Peer review フローをタスクプロンプト付きで実行します。
- 「部屋の反対側から許可プロンプトを承認したい」 — タイルをタップし、
yまたはenterを送ってエージェントのブロックを解除します。
ヒントとベストプラクティス
- 両方のデバイスが同じ Wi-Fi に接続している必要があります。Companion はインターネット経由や異なるサブネット間では動作しません。
- キャンバスのミラーは読み取り専用です — タイルの表示や入力送信はできますが、スマートフォンからタイルをドラッグしたりコネクションを繋ぎ変えたりはできません。
- ペアリング済みのスマートフォンを失くしたりネットワークを切り替えたりした場合はトークンをリセットしてください。新しいトークンは以前のすべてのペアリングを即座に無効化します。
- サーバーはまずポート 9280 を試し、使用済みなら 9299 まで順に上がっていくため、マシンごとに実際のポートは異なる場合があります — 推測せずに設定からリンクをコピーしてください。
セキュリティとプライバシー
- LAN のみ、クラウド中継なし。 キャンバス、エージェント、ターミナル出力はすべてローカルネットワークに留まり、MadoHub サーバーを一切経由しません。
- ペアリングはトークン + チャレンジレスポンス方式で、毎リクエストのベアラートークンではありません。 トークン自体はネットワークを渡りません。接続ごとの新しいチャレンジに対するソルト付きレスポンスだけが渡るため、キャプチャされたレスポンスを後の接続に再生することはできません。
- トークンなしでは誰も書き込めません。 同じ Wi-Fi 上の受動的な観察者はミラートラフィックを読めます(まだ TLS がありません)が、トークンなしに認証セッションを開いたり入力を注入したりはできません。
- サーバーは敵対的な LAN に対して自衛します — 同時接続は最大 64 まで、認証済みクライアントが 60 秒間無反応なら接続を切り離し、コネクション枠を無期限に占有できないようにします。
関連機能
- Flows — スマートフォンからフローをリモート実行できます。
- 設定 — Companion の有効化とトークンのリセットを行います。
- チームコラボレーション — 自分のキャンバスではなくチームメンバーを監視するための機能です。
制限事項
- Companion は両デバイスが同じローカル Wi-Fi に接続している必要があります。LAN 外(インターネット経由)の利用はまだサポートされていません。
- 接続に TLS がありません。同じ LAN 上の受動的な観察者はミラートラフィックを読めますが、能動的な中間者攻撃にはまだ対応していません。
- キャンバスのミラーは読み取り専用です — スマートフォンからタイルをドラッグしたりコネクションを繋ぎ変えたりはできません。
- Companion は現在 Mac ホストが必要です。Windows ホストのサポートはまだありません。