For OpenClaw v2026.2 | This article assumes you have completed Gateway deployment and want to use it on mobile devices.
TL;DR: iOS/Android apps connect to the Gateway as “nodes,” providing camera, screen recording, location, and notification capabilities. Pairing flow: open app → discover Gateway → enter pairing code. Commands: camera.snap (take photo), screen.record (record screen), location.get (location), notification.send (notification). Voice wake is only supported on iOS—say “Hey Claw.”
Mobile Feature Overview
Feature Comparison
| Feature | iOS | Android | Notes |
|---|---|---|---|
| Messaging | ✅ | ✅ | Via WebChat or chat app |
| Canvas | ✅ | ✅ | Visual interface |
| Camera | ✅ | ✅ | Take photos for AI analysis |
| Screen Recording | ✅ | ✅ | Record and share screen |
| Location | ✅ | ✅ | Get current position |
| Notifications | ✅ | ✅ | Receive AI-sent notifications |
| Voice Wake | ✅ | ❌ | “Hey Claw” wake |
| Local Execution | ❌ | ❌ | Requires Gateway connection |
Architecture Diagram
[iOS/Android App] <--WiFi/Cellular--> [Gateway] <---> [Agent]
| |
[Node API] [Tools/Skills]
| |
[Device Capabilities] [External Services]
- Camera
- Screen
- Location
- Notifications
iOS Installation
System Requirements
| Requirement | Version |
|---|---|
| iOS | 15.0+ |
| Device | iPhone 8 or newer |
Installation Methods
Method 1: TestFlight (Recommended)
- Join TestFlight beta
- Install OpenClaw iOS app
- Open the app to pair
Method 2: Build from Source
# Clone repository
git clone https://github.com/openclaw/openclaw.git
cd openclaw/apps/ios
# Install dependencies
pod install
# Open Xcode
open OpenClaw.xcworkspace
# Build and install to device
iOS Permission Configuration
| Permission | Purpose | Required |
|---|---|---|
| Camera | Photo analysis | Optional |
| Photo Library | Save/read photos | Optional |
| Location | Get current position | Optional |
| Notifications | Receive message alerts | Recommended |
| Microphone | Voice wake | Optional |
| Face ID | Secure authentication | Optional |
Android Installation
System Requirements
| Requirement | Version |
|---|---|
| Android | 10.0+ (API 29+) |
| Device | Most modern devices |
Installation Methods
Method 1: Direct APK Install
- Download the latest APK
- Allow installation from unknown sources
- Install and open the app
Method 2: Build from Source
# Clone repository
git clone https://github.com/openclaw/openclaw.git
cd openclaw/apps/android
# Build
./gradlew assembleDebug
# Install to device
adb install app/build/outputs/apk/debug/app-debug.apk
Android Permission Configuration
| Permission | Purpose | Required |
|---|---|---|
| Camera | Photo analysis | Optional |
| Storage | Save/read files | Optional |
| Location | Get current position | Optional |
| Notifications | Receive message alerts | Recommended |
| Microphone | Voice input | Optional |
Node Pairing
Pairing Flow
sequenceDiagram
participant A as Mobile App
participant G as Gateway
participant D as Discovery Service
A->>D: Broadcast discovery request
D-->>A: Discover Gateway
A->>G: Request pairing
G-->>A: Return pairing code
A->>A: Display pairing code
Note over A,G: User enters pairing code in App
A->>G: Submit pairing code
G->>G: Verify pairing code
G-->>A: Pairing success
A->>G: Register node capabilities
G-->>A: Confirm registration
Pairing Steps
1. Ensure Gateway is Running
# Start Gateway
openclaw gateway --port 18789
# Check status
openclaw health
2. Open Mobile App
Open the OpenClaw iOS/Android app.
3. Discover Gateway
The app will automatically scan the local network for the Gateway, or you can manually enter the Gateway address:
http://192.168.1.100:18789
4. Get Pairing Code
View the pairing code in the Gateway terminal:
openclaw pairing list
# Example output:
# Node Code Platform
# ios-1 ABC123 iOS
# android-1 XYZ789 Android
5. Enter Pairing Code
Enter the pairing code in the app to complete pairing.
Node Configuration
{
"nodes": {
"ios-1": {
"platform": "ios",
"capabilities": ["camera", "screen_record", "location", "notification"],
"autoConnect": true
},
"android-1": {
"platform": "android",
"capabilities": ["camera", "screen_record", "location", "notification", "sms"],
"autoConnect": true
}
}
}
Camera Features
Take Photos for AI Analysis
User: Can you see what's in my fridge?
Agent: Sure, let me check through your phone camera...
[Call camera.snap]
[Analyze image]
Your fridge contains:
- Milk (half bottle)
- Eggs (6)
- Cucumbers (2)
- Tomatoes (several)
I'd suggest making scrambled eggs with tomatoes~
Camera Commands
| Command | Description |
|---|---|
camera.snap |
Take photo |
camera.video |
Record video |
camera.switch |
Switch front/back camera |
Camera Configuration
{
"nodes": {
"ios-1": {
"camera": {
"defaultCamera": "back",
"quality": "high",
"saveToGallery": false
}
}
}
}
Screen Recording
Record and Share
User: Can you help me see how to use this app?
Agent: Sure, please start screen recording...
[User operates the app]
Agent: I see, this is a to-do app.
You can:
1. Tap the + button in the bottom right to add tasks
2. Swipe left to delete tasks
3. Tap a task to edit details
Screen Recording Configuration
{
"nodes": {
"ios-1": {
"screenRecord": {
"maxDuration": 300,
"quality": "medium",
"withAudio": true
}
}
}
}
Location Services
Get Current Location
User: What good restaurants are nearby?
Agent: Let me check where you are...
[Call location.get]
You're currently near Sanlitun, Chaoyang District, Beijing.
Here are some highly-rated restaurants:
1. Xiao Diao Li Tang - 4.8 stars, traditional Beijing cuisine
2. Hu Da Restaurant - 4.7 stars, crayfish
3. ...
Location Commands
| Command | Description |
|---|---|
location.get |
Get current location |
location.watch |
Continuously monitor location changes |
Location Configuration
{
"nodes": {
"ios-1": {
"location": {
"accuracy": "high",
"distanceFilter": 100
}
}
}
}
Notification Features
Send Notifications
Agent: Task completed. I'll send a notification to your phone.
[Call notification.send]
Phone receives notification:
Title: Task Complete
Content: Code has been deployed to production
Notification Configuration
{
"nodes": {
"ios-1": {
"notification": {
"enabled": true,
"sound": true,
"badge": true
}
}
}
}
Voice Wake (iOS)
Configure Voice Wake
{
"nodes": {
"ios-1": {
"voiceWake": {
"enabled": true,
"keyword": "hey claw",
"sensitivity": "medium"
}
}
}
}
Using Voice Wake
- Say “Hey Claw”
- App automatically starts listening
- Speak your question
- Agent responds
Canvas on Mobile
Canvas on Mobile
Mobile Canvas provides the same visual experience as desktop:
- Interactive dashboards
- Real-time data display
- Form input
- Charts and tables
Mobile Canvas Optimization
{
"canvas": {
"mobile": {
"adaptiveLayout": true,
"touchGestures": true,
"performanceMode": "balanced"
}
}
}
Node Management
View Nodes
# List all nodes
openclaw nodes list
# Example output:
# Node Platform Status Capabilities
# ios-1 iOS online camera,location,notification
# android-1 Android offline camera,location,sms
# View node details
openclaw nodes show ios-1
Node Operations
# Enable node
openclaw nodes enable ios-1
# Disable node
openclaw nodes disable ios-1
# Disconnect node
openclaw nodes disconnect ios-1
# Rename node
openclaw nodes rename ios-1 --name "My iPhone"
Troubleshooting
Node Cannot Connect
# Check Gateway status
openclaw health
# Check network
ping 192.168.1.100
# View node logs
openclaw logs --node ios-1
Permission Issues
# Check node permissions
openclaw nodes permissions ios-1
# Example output:
# Permission Status
# Camera Granted
# Location Granted
# Notification Granted
# Microphone Denied
Pairing Failure
- Ensure the Gateway is running
- Check network connection (same LAN)
- Check firewall settings
- Try pairing again
Summary
Mobile nodes extend OpenClaw’s capabilities:
- Camera: Photo analysis, video recording
- Location: Get current position
- Notifications: Push messages to phone
- Canvas: Mobile visual interface
- Voice Wake: Hands-free operation
Changelog:
- 2026-02-26: Initial release
Series Navigation:
- ← Previous: Remote Deployment
- → Next: Automation and Scheduled Tasks