# Remote Control ## Overview OpenClaw's remote control capabilities allow a macOS app to function as a controller for an OpenClaw gateway on another host via SSH. ## Key Operational Modes The system supports three operational approaches: 1. **Local execution** on the macOS device 2. **Remote over SSH** (default) with port forwarding 3. **Remote direct** using WebSocket connections without SSH tunneling ## Transport Options Two transport mechanisms are available: - **SSH tunneling**: Masks the client as localhost - **Direct WebSocket**: Exposes the actual client IP ## Setup Requirements ### Remote Host Requirements - Node.js, pnpm, and the OpenClaw CLI installed - Accessible on the system PATH - SSH should use key-based authentication - Tailscale IPs recommended for reliable off-network access ### macOS App Configuration 1. Select transport type 2. Specify the SSH target 3. Optionally provide gateway URLs and identity file paths 4. Use "Test remote" feature to validate connectivity ## Web Chat Integration Web Chat operates through the same SSH tunnel or direct gateway connection depending on the selected transport method. ## Security Considerations - Use loopback bindings with either SSH or Tailscale for secure connections - Implement token/password authentication when binding to non-loopback interfaces ## Troubleshooting Common issues include: - **Exit code 127**: PATH configuration problems - **SSH connectivity failures**: Check key authentication and host accessibility - **Port forwarding mismatches**: Verify WebSocket connection ports match configuration