Want to use a local device instead? Check out the Local Quickstart for setting up with your own devices.
What are Cloud Mobiles?
Cloud mobiles are virtual Android devices hosted on Minitap Platform. Key benefits:Zero Local Setup
No ADB, maestro, or local servers required
Persistent State
Device state is preserved across restarts and sessions
Always Available
Devices ready on-demand, no maintenance
Centralized Monitoring
Built-in observability via Minitap Platform
Prerequisites
1
Get Minitap API Key
Sign up at Minitap Platform and generate an API key from your dashboard.
2
Create a Cloud Mobile
Navigate to the Virtual Mobiles section in Minitap Platform and create a new device. You’ll get:
- A unique UUID (e.g.,
550e8400-e29b-41d4-a716-446655440000) - Or a reference name (e.g.,
my-test-device)
3
Install SDK
New users get $10 in free credits to get started!
Current Availability: Only Android v11 (API level 30) is currently available as a cloud mobile. iOS support is not yet available.
Creating Your First Cloud Mobile Automation
Let’s write a simple script that runs a task on a cloud mobile.cloud_calculator_demo.py
What’s Different from Local Mode?
Configuration
Configuration
Use
.for_cloud_mobile() instead of .for_device():API Key Required
API Key Required
Pass API key to
init() or set MINITAP_API_KEY environment variable:Platform Tasks Only
Platform Tasks Only
Cloud mobiles only support
PlatformTaskRequest (not direct goal parameter):No Local Servers
No Local Servers
No need for ADB, maestro, or local device setup. Everything runs in the cloud!
How to Create a Cloud Mobile in Platform
1
Log in to Minitap Platform
Navigate to app.minitap.ai
2
Go to Virtual Mobiles
Click on Virtual Mobiles in the left sidebar
3
Create New Device
Click + New Virtual Mobile and configure:
- Platform: Android (currently only Android v11 / API level 30 is available)
- Reference Name: Optional friendly name (e.g.,
test-device)
4
Copy Device ID
Once created, copy the device UUID or reference name. You’ll use this in your code:
One-Off Tasks with ManualTaskConfig
You can run one-off tasks on cloud mobiles without pre-configuring them in the Platform by usingManualTaskConfig:
cloud_manual_task.py
ManualTaskConfig is perfect for one-off tasks or quick testing without having to create a task in the Platform first!Complete Example with Structured Output
Here’s a more complete example that uses structured output withManualTaskConfig:
cloud_weather_check.py
Capturing Screenshots from Cloud Mobiles
You can capture screenshots from cloud mobiles usingget_screenshot():
The
get_screenshot() method works seamlessly with both cloud and local devices!Environment Variables
For convenience, set your API key as an environment variable:.env
Monitoring Task Execution
When using cloud mobiles, you can monitor task execution in real-time via Minitap Platform:- Navigate to Task Runs in the Platform
- Filter tasks by cloud mobile to see only tasks running on specific devices
- Find your running task
- View:
- Real-time status updates
- Agent thoughts and decisions
- Subgoal progress
- Screenshots at each step
- LLM costs and usage
Comparing Local vs Cloud Mobiles
| Feature | Local Device | Cloud Mobile |
|---|---|---|
| Setup | Requires ADB, maestro, local servers | Zero setup required |
| Device Access | Must have physical/emulator device | On-demand virtual devices |
| Scalability | Limited by local resources | Easily scale to multiple devices |
| Monitoring | Local logs only | Built-in Platform observability |
| Cost | Free (your hardware) | Pay per usage |
| Task Types | TaskRequest or PlatformTaskRequest | PlatformTaskRequest (with pre-configured tasks or ManualTaskConfig) |
| Offline Support | Yes | No (requires internet) |
Best Practices
Use Reference Names
Name your cloud mobiles for easier management:
test-device, prod-android-1Monitor Costs
Check Platform dashboard for usage and costs
Error Handling
Always use try/finally to ensure cleanup
Environment Variables
Store API keys in environment variables, not code
Troubleshooting
CloudMobileServiceUninitializedError
CloudMobileServiceUninitializedError
Cause: API key not provided or invalid.Solution:
Task fails immediately
Task fails immediately
Cause: Cloud mobile not in “Ready” state.Solution: Check Platform dashboard to ensure device is running and ready. The SDK automatically starts and waits for the device.
Can't use direct goal parameter
Can't use direct goal parameter
Cause: Cloud mobiles don’t support
run_task(goal="...") directly.Solution: Use PlatformTaskRequest with either a pre-configured task or ManualTaskConfig: