iOS 앱 (Node)

가용성: 내부 프리뷰. iOS 앱은 아직 공개적으로 배포되지 않았습니다.

기능

  • WebSocket을 통해 Gateway에 연결 (LAN 또는 tailnet).
  • Node 기능 노출: Canvas, Screen snapshot, Camera capture, Location, Talk mode, Voice wake.
  • node.invoke 명령을 수신하고 node 상태 이벤트를 보고합니다.

요구사항

  • 다른 기기에서 실행되는 Gateway (macOS, Linux 또는 Windows WSL2).
  • 네트워크 경로:
    • Bonjour를 통한 동일 LAN, 또는
    • Unicast DNS-SD를 통한 Tailnet (예시 도메인: openclaw.internal.), 또는
    • 수동 host/port (대체 방법).

빠른 시작 (페어링 + 연결)

  1. Gateway 시작:
openclaw gateway --port 18789
  1. iOS 앱에서 설정을 열고 검색된 gateway를 선택합니다 (또는 수동 호스트를 활성화하고 host/port를 입력).

  2. Gateway 호스트에서 페어링 요청 승인:

openclaw nodes pending
openclaw nodes approve <requestId>
  1. 연결 확인:
openclaw nodes status
openclaw gateway call node.list --params "{}"

검색 경로

Bonjour (LAN)

Gateway는 local.에서 _openclaw-gw._tcp를 광고합니다. iOS 앱은 이를 자동으로 나열합니다.

Tailnet (네트워크 간)

mDNS가 차단된 경우, unicast DNS-SD 영역(도메인 선택; 예: openclaw.internal.)과 Tailscale split DNS를 사용하세요. CoreDNS 예시는 Bonjour를 참조하세요.

수동 host/port

설정에서 수동 호스트를 활성화하고 gateway host + port (기본값 18789)를 입력합니다.

Canvas + A2UI

iOS node는 WKWebView canvas를 렌더링합니다. node.invoke를 사용하여 제어하세요:

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

참고사항:

  • Gateway canvas host는 /__openclaw__/canvas//__openclaw__/a2ui/를 제공합니다.
  • iOS node는 canvas host URL이 광고되면 연결 시 자동으로 A2UI로 이동합니다.
  • canvas.navigate{"url":""}로 내장 스캐폴드로 돌아갑니다.

Canvas eval / snapshot

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

  • Voice wake와 talk mode는 설정에서 사용할 수 있습니다.
  • iOS는 백그라운드 오디오를 일시 중지할 수 있습니다; 앱이 활성화되지 않은 경우 voice 기능을 최선의 노력으로 처리하세요.

일반 오류

  • NODE_BACKGROUND_UNAVAILABLE: iOS 앱을 포그라운드로 가져오세요 (canvas/camera/screen 명령에 필요).
  • A2UI_HOST_NOT_CONFIGURED: Gateway가 canvas host URL을 광고하지 않았습니다; Gateway 구성에서 canvasHost를 확인하세요.
  • 페어링 프롬프트가 나타나지 않음: openclaw nodes pending을 실행하고 수동으로 승인하세요.
  • 재설치 후 재연결 실패: Keychain 페어링 token이 지워졌습니다; node를 다시 페어링하세요.

관련 문서