Android 앱 (노드)
지원 스냅샷
- 역할: 컴패니언 노드 앱 (Android 는 Gateway(게이트웨이)를 호스팅하지 않습니다).
- Gateway 필요 여부: 예 (macOS, Linux, 또는 WSL2 를 통한 Windows 에서 실행).
- 설치: 시작하기 + 페어링.
- Gateway: Runbook + 구성.
- 프로토콜: Gateway 프로토콜 (노드 + 컨트롤 플레인).
시스템 제어
시스템 제어 (launchd/systemd) 는 Gateway 호스트에 있습니다. Gateway를 참조하십시오.연결 Runbook
Android 노드 앱 ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway Android 는 Gateway WebSocket (기본값ws://<host>:18789) 에 직접 연결하며, Gateway 가 소유한 페어링을 사용합니다.
사전 요구 사항
- “마스터” 머신에서 Gateway 를 실행할 수 있어야 합니다.
- Android 기기/에뮬레이터가 gateway WebSocket 에 도달할 수 있어야 합니다:
- mDNS/NSD 를 사용하는 동일 LAN, 또는
- Wide-Area Bonjour / 유니캐스트 DNS-SD 를 사용하는 동일 Tailscale tailnet (아래 참조), 또는
- 수동 gateway 호스트/포트 (대체 수단)
- gateway 머신에서 (또는 SSH 를 통해) CLI (
openclaw) 를 실행할 수 있어야 합니다.
1. Gateway 시작
listening on ws://0.0.0.0:18789
- gateway 호스트의
~/.openclaw/openclaw.json에서gateway.bind: "tailnet"를 설정하십시오. - Gateway / macOS 메뉴바 앱을 재시작하십시오.
2. 디바이스 검색 확인 (선택 사항)
gateway 머신에서:유니캐스트 DNS-SD 를 통한 Tailnet (Vienna ⇄ London) 디바이스 검색
Android NSD/mDNS 디바이스 검색은 네트워크를 넘지 않습니다. Android 노드와 gateway 가 서로 다른 네트워크에 있지만 Tailscale 로 연결되어 있다면, Wide-Area Bonjour / 유니캐스트 DNS-SD 를 대신 사용하십시오:- gateway 호스트에 DNS-SD 존 (예:
openclaw.internal.) 을 설정하고_openclaw-gw._tcp레코드를 게시하십시오. - 선택한 도메인을 해당 DNS 서버로 가리키도록 Tailscale 분할 DNS 를 구성하십시오.
3. Android 에서 연결
Android 앱에서:- 앱은 포그라운드 서비스 (영구 알림) 를 통해 gateway 연결을 유지합니다.
- Settings 를 엽니다.
- Discovered Gateways 아래에서 gateway 를 선택하고 Connect 를 누르십시오.
- mDNS 가 차단된 경우 Advanced → Manual Gateway (호스트 + 포트) 를 사용하고 Connect (Manual) 을 누르십시오.
- 수동 엔드포인트 (활성화된 경우), 또는
- 마지막으로 검색된 gateway (최선의 노력 방식).
4. 페어링 승인 (CLI)
gateway 머신에서:5. 노드 연결 확인
-
노드 상태를 통해:
-
Gateway 를 통해:
6. 채팅 + 기록
Android 노드의 Chat 시트는 gateway 의 기본 세션 키 (main) 를 사용하므로, WebChat 및 기타 클라이언트와 기록과 응답이 공유됩니다:
- 기록:
chat.history - 전송:
chat.send - 푸시 업데이트 (최선의 노력):
chat.subscribe→event:"chat"
7. Canvas + 카메라
Gateway Canvas Host (웹 콘텐츠용 권장)
에이전트가 디스크에서 편집할 수 있는 실제 HTML/CSS/JS 를 노드에 표시하려면, 노드를 Gateway canvas host 로 지정하십시오. 참고: 노드는 Gateway HTTP 서버(gateway.port와 동일한 포트, 기본값 18789)에서 canvas를 로드합니다.
-
gateway 호스트에
~/.openclaw/workspace/canvas/index.html를 생성하십시오. - 노드를 해당 주소로 이동시키십시오 (LAN):
.local 대신 MagicDNS 이름 또는 tailnet IP 를 사용하십시오. 예: http://<gateway-magicdns>:18793/__openclaw__/canvas/.
이 서버는 HTML 에 라이브 리로드 클라이언트를 주입하고 파일 변경 시 다시 로드합니다.
A2UI 호스트는 http://<gateway-host>:18793/__openclaw__/a2ui/ 에 있습니다.
Canvas 명령 (포그라운드 전용):
canvas.eval,canvas.snapshot,canvas.navigate(기본 스캐폴드로 돌아가려면{"url":""}또는{"url":"/"}를 사용하십시오).canvas.snapshot는{ format, base64 }(기본값format="jpeg") 를 반환합니다.- A2UI:
canvas.a2ui.push,canvas.a2ui.reset(canvas.a2ui.pushJSONL레거시 별칭)
camera.snap(jpg)camera.clip(mp4)