> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.veiseule.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# リモートコントロール

# リモート 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](/gateway/security) および [Tailscale](/gateway/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を表示させたい場合は、**Transport** を **Direct (ws/wss)** に切り替えます。 ゲートウェイに実際のクライアントIPを表示させたい場合は、**Transport** を **Direct (ws/wss)** に切り替えます。
* **Voice Wake**: トリガーフレーズはリモートモードでは自動的に転送されます。個別のフォワーダーは不要です。

## 通知サウンド

`openclaw` および `node.invoke` を使ったスクリプトから、通知ごとにサウンドを選択します。例:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw nodes notify --node <id> --title "Ping" --body "Remote gateway ready" --sound Glass
```

アプリにはもはやグローバルな「デフォルトサウンド」切り替えはありません。呼び出し元がリクエストごとにサウンド（またはなし）を選択します。
