メインコンテンツへスキップ

リモート OpenClaw(macOS ⇄ リモートホスト)

このフローでは、macOS アプリが別のホスト(デスクトップ/サーバー)で稼働している OpenClaw ゲートウェイの完全なリモートコントローラーとして動作します。これはアプリの SSH 経由のリモート接続(リモート実行)機能です。ヘルスチェック、Voice Wake 転送、Web Chat を含むすべての機能は、設定 → 一般 で構成された同一のリモート SSH 設定を再利用します。 アプリのリモートオーバーSSH (リモート実行) 機能です。 すべての機能 — ヘルスチェック、音声ウェイク転送、および Web チャット— Settings → General から同じリモートの SSH 構成を再利用します。 アプリのリモートオーバーSSH (リモート実行) 機能です。 すべての機能 — ヘルスチェック、音声ウェイク転送、および Web チャット— Settings → General から同じリモートの SSH 構成を再利用します。

モード

  • ローカル(この Mac): すべてがノートパソコン上で実行されます。SSH は使用しません。 SSHは参加していません。 SSHは参加していません。
  • SSH 経由のリモート接続(デフォルト): OpenClaw のコマンドはリモートホスト上で実行されます。mac アプリは -o BatchMode に加えて選択した ID/キーを用い、ローカルのポートフォワード付きで SSH 接続を開きます。 SSH 経由のリモート接続(デフォルト): OpenClaw のコマンドはリモートホスト上で実行されます。mac アプリは -o BatchMode に加えて選択した ID/キーを用い、ローカルのポートフォワード付きで SSH 接続を開きます。 Mac アプリは -o BatchMode と SSH 接続を開きます。加えて、選択したアイデンティティ/キーとローカルポートフォワードを使用します。
  • リモートダイレクト(ws/wss): SSHトンネルはありません。 Mac アプリはゲートウェイ URL に直接接続します(例えば、Tailscale Serve またはパブリック HTTPS リバースプロキシ経由)。 Mac アプリはゲートウェイ URL に直接接続します(例えば、Tailscale Serve またはパブリック HTTPS リバースプロキシ経由)。

リモート転送方式

リモートモードは 2 種類の転送方式をサポートします。
  • SSH トンネル(デフォルト): ssh -N -L ... を使用してゲートウェイのポートを localhost にフォワードします。トンネルが loopback であるため、ゲートウェイからはノードの IP が 127.0.0.1 として見えます。 SSH トンネル(デフォルト): ssh -N -L ... を使用してゲートウェイのポートを localhost にフォワードします。トンネルが loopback であるため、ゲートウェイからはノードの IP が 127.0.0.1 として見えます。 トンネルがループバックされているため、ゲートウェイはノードのIPを127.0.0.1として表示します。
  • 直接接続(ws/wss): ゲートウェイ URL に直接接続します。ゲートウェイには実際のクライアント IP が表示されます。 直接接続(ws/wss): ゲートウェイ URL に直接接続します。ゲートウェイには実際のクライアント IP が表示されます。 ゲートウェイは実際のクライアントIPを見ます。

リモートホスト側の前提条件

  1. Node + pnpm をインストールし、OpenClaw CLI をビルド/インストールします(pnpm install && pnpm build && pnpm link --global)。
  2. 非対話シェルでも openclaw が PATH 上にあることを確認します(必要に応じて /usr/local/bin/opt/homebrew/bin にシンボリックリンクします)。
  3. SSHをキー認証で開きます。 LAN外の安定した到達性のためには、Tailscale IPをお勧めします。 LAN外の安定した到達性のためには、Tailscale IPをお勧めします。

macOS アプリのセットアップ

  1. 設定 → 一般 を開きます。
  2. OpenClaw の実行場所SSH 経由のリモート接続 を選択し、以下を設定します。
    • 転送方式: SSH トンネル または 直接接続(ws/wss)
    • SSH 接続先: user@host(任意で :port)。
      • ゲートウェイが同一 LAN 上にあり Bonjour をアドバタイズしている場合、検出された一覧から選択すると自動入力されます。
    • Gateway URL(直接接続のみ): wss://gateway.example.ts.net(ローカル/LAN の場合は ws://...)。
    • ID ファイル(高度な設定): 使用するキーへのパス。
    • プロジェクトルート(高度な設定): コマンド実行に使用されるリモートのチェックアウトパス。
    • CLI パス(高度な設定): 実行可能な openclaw エントリーポイント/バイナリへの任意のパス(アドバタイズされている場合は自動入力)。
  3. テストをクリックします。 テストをクリックします。 リモートをテスト をクリックします。成功すれば、リモートの openclaw status --json が正しく実行できていることを示します。失敗する場合は PATH/CLI の問題が原因であることが多く、exit 127 は CLI がリモートで見つからないことを意味します。 失敗は通常PATH/CLIの問題を意味します。127出口はCLIがリモートで見つからないことを意味します。 失敗は通常PATH/CLIの問題を意味します。127出口はCLIがリモートで見つからないことを意味します。
  4. 以後、ヘルスチェックと Web Chat は自動的にこの SSH トンネル経由で実行されます。

ウェブチャット

  • SSH トンネル: Web Chat はフォワードされた WebSocket 制御ポート(デフォルト 18789)経由でゲートウェイに接続します。
  • 直接接続(ws/wss): Web Chat は設定されたゲートウェイ URL に直接接続します。
  • WebChat 用の個別 HTTP サーバーはもはや存在しません。

権限

  • リモートホストにはローカルと同じ TCC 承認(オートメーション、アクセシビリティ、画面収録、マイク、音声認識、通知)が必要です。一度そのマシンでオンボーディングを実行して付与してください。 そのマシンでオンボーディングを実行して、一度それらを許可します。
  • ノードは node.list / node.describe を通じて権限状態をアドバタイズし、エージェントが利用可能な機能を把握できるようにします。

セキュリティに関する注記

  • リモートホストでは loopback バインドを優先し、SSH または Tailscale 経由で接続してください。
  • ゲートウェイを非 loopback インターフェースにバインドする場合は、トークン/パスワード認証を必須にしてください。
  • Security および Tailscale を参照してください。

WhatsApp ログインフロー(リモート)

  • openclaw channels login --verboseリモートホスト上で 実行します。スマートフォンの WhatsApp で QR をスキャンしてください。 openclaw channels login --verboseリモートホスト上で 実行します。スマートフォンの WhatsApp で QR をスキャンしてください。 お使いの携帯電話のWhatsAppでQRをスキャンします。
  • 認証が失効した場合は、そのホストで再度ログインを実行します。ヘルスチェックでリンクの問題が表示されます。 健康チェックは問題を表面化させます。

トラブルシューティング

  • exit 127 / not found: openclaw が非ログインシェルの PATH に含まれていません。/etc/paths、シェルの rc、または /usr/local/bin//opt/homebrew/bin へのシンボリックリンクに追加してください。 /etc/paths、シェルrc、またはシンボリックリンクを/usr/local/bin//opt/homebrew/binに追加します。 /etc/paths、シェルrc、またはシンボリックリンクを/usr/local/bin//opt/homebrew/binに追加します。
  • ヘルスプローブ失敗: SSH の到達性、PATH、Baileys がログイン済みであること(openclaw status --json)を確認してください。
  • Web Chat が停止する: リモートホストでゲートウェイが稼働していること、およびフォワードされたポートがゲートウェイの WS ポートと一致していることを確認してください。UI は正常な WS 接続を必要とします。
  • Node IP shows 127.0.0.1: SSH トンネルで期待されます。 ゲートウェイに実際のクライアントIPを表示させたい場合は、TransportDirect (ws/wss) に切り替えます。 ゲートウェイに実際のクライアントIPを表示させたい場合は、TransportDirect (ws/wss) に切り替えます。
  • Voice Wake: トリガーフレーズはリモートモードでは自動的に転送されます。個別のフォワーダーは不要です。

通知サウンド

openclaw および node.invoke を使ったスクリプトから、通知ごとにサウンドを選択します。例:
openclaw nodes notify --node <id> --title "Ping" --body "Remote gateway ready" --sound Glass
アプリにはもはやグローバルな「デフォルトサウンド」切り替えはありません。呼び出し元がリクエストごとにサウンド(またはなし)を選択します。