コンテンツにスキップ

iOS AppをNodeとして連携させる

モバイルデバイスが持つ強力なセンサーやカメラ機能を、開発中のシステムと手軽に連携させたいと考えたことはありませんか。しかし、実機をネットワーク経由で認識させ、セキュアにコマンドを送信するための環境構築は、意外と手間がかかるものです。

現在内部プレビュー版として公開されているiOS Appを使用すると、iPhoneやiPadを一つのNodeとしてGatewayに接続できます。これにより、Canvasの操作やスクリーンショットの取得、音声対話モードなどを外部から制御できるようになります。

セットアップを始める前に、以下の準備ができているか確認してください。

  • Gateway: macOS、Linux、またはWindows(WSL2)で動作しているGateway
  • ネットワーク経路: 以下のいずれかの方法で接続できること
    • Bonjourを利用した同一LAN内
    • Tailnet(Tailscale)経由のユニキャスト DNS-SD
    • 手動設定(ホスト名とポート指定)

わずか5分で、iOSデバイスをNodeとしてペアリングし、接続を確立できます。

まず、ホストマシンでGatewayを起動します。

Terminal window
openclaw gateway --port 18789

iOS Appを開き、Settings(設定)画面へ進みます。検出されたGatewayを選択するか、「Manual Host」を有効にしてホスト名とポートを入力してください。

Gateway側でペアリング要求を承認する必要があります。

Terminal window
openclaw nodes pending
openclaw nodes approve \<requestId\>

正しく接続されたか、以下のコマンドでステータスを確認します。

Terminal window
openclaw nodes status
openclaw gateway call node.list --params "{}"

iOS Appは、以下の3つの方法でGatewayを見つけ出します。

  • Bonjour (LAN): Gatewayは _openclaw-gw._tcp を local. ドメインで通知します。Appはこれらを自動的にリストアップします。
  • Tailnet: mDNSがブロックされている環境では、ユニキャスト DNS-SD ゾーン(例: openclaw.internal.)と Tailscale の Split DNS を使用します。
  • Manual host/port: 設定画面で Manual Host を有効にし、Gatewayのホスト名とポート(デフォルトは 18789)を直接入力します。

iOS Nodeは WKWebView を利用した Canvas を描画できます。node.invoke を使って操作が可能です。

Terminal window
openclaw nodes invoke --node "iOS Node" --command canvas.navigate --params '{"url":"http://\<gateway-host\>:18793/__openclaw__/canvas/"}'

接続時に Canvas Host の URL が通知されている場合、Nodeは自動的に A2UI へ遷移します。標準の状態に戻すには、canvas.navigate で空の URL ({ "url": "" }) を指定してください。

JavaScriptの実行やスクリーンショットの取得も簡単です。

Terminal window
# JavaScriptの実行
openclaw nodes invoke --node "iOS Node" --command canvas.eval --params '{"javaScript":"(() => { const {ctx} = window.__openclaw; ctx.clearRect(0,0,innerWidth,innerHeight); ctx.lineWidth=6; ctx.strokeStyle=\"#ff2d55\"; ctx.beginPath(); ctx.moveTo(40,40); ctx.lineTo(innerWidth-40, innerHeight-40); ctx.stroke(); return \"ok\"; })()"}'
# スクリーンショットの取得
openclaw nodes invoke --node "iOS Node" --command canvas.snapshot --params '{"maxWidth":900,"format":"jpeg"}'

設定画面から Voice Wake(音声起動)や Talk Mode を有効にできます。 ただし、iOSの仕様によりバックグラウンドでのオーディオ実行が制限される場合があります。Appがアクティブでない状態では、これらの音声機能はベストエフォートでの動作となる点に注意してください。

よくある問題と解決策をまとめました。

  • NODE_BACKGROUND_UNAVAILABLE: iOS Appをフォアグラウンド(最前面)に表示してください。Canvas、カメラ、スクリーンショットのコマンド実行には、Appがアクティブである必要があります。
  • A2UI_HOST_NOT_CONFIGURED: Gatewayが Canvas Host の URL を通知していません。Gateway設定の canvasHost を確認してください。
  • ペアリングのプロンプトが表示されない: openclaw nodes pending を実行し、手動で承認を行ってください。
  • 再インストール後に再接続できない: Keychain内のペアリングトークンが消去されています。再度ペアリングの手順を行ってください。

疑問点がある場合は、AI Setup Assistant も活用してください。

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。