Skip to main content
The Mobile primitive runs cloud mobile emulators/devices on Mobilerun Cloud. You provision hosted Android/iOS devices, run natural-language agent tasks on them (“Open Settings and enable dark mode”), display the live screen, manage an app (APK) library, and reach the entire Mobilerun API through a wildcard wrapper. Naïve owns the Mobilerun credentials and scopes every device to your tenant — your agents never hold a Mobilerun key (the same operator-key model as Compute with AWS).
Phones are billed per minute from your credits: provision creates the device immediately and the meter runs until you terminate it — there is no upstream auto-stop, so always terminate phones you’re done with (running out of credits auto-terminates the phone, as does the max-runtime failsafe). Provisioning, device lifecycle (reboot/reset/terminate), proxy changes, running/stopping tasks, uploading apps, and mutating wildcard calls are sensitive — depending on the user’s Account Kit they may require human approval (status: "pending_approval").

Create a phone & display it

Scope follows the client you hold: naive.mobile.* (your default user) vs naive.forUser(id).mobile.* (an end-user). Each tenant only ever sees the phones it created through Naïve, and each tenant’s credits fund only its own phones.

Run an agent task

Device lifecycle

Proxy (optional residential IP)

Devices come online on a datacenter IP by default. Attach a SOCKS5 proxy for a residential / country-specific IP:

Apps

Wildcard: search & call any Mobilerun API

Mobilerun Cloud is large (devices, tasks, apps, proxies, eSIM, device tools like tap/swipe/screenshot, flows, triggers, …). The mobile primitive ships a generated catalog of every operation, so any endpoint is reachable without a dedicated method:
Device-scoped operations are restricted to your own devices, and mutating calls go through the same approval gate as the curated methods.

CLI

Configuration

Set the operator’s Mobilerun Cloud API key (dr_sk_…) in the API environment as MOBILERUN_API_KEY (override the base URL with MOBILERUN_API_BASE). Billing is metered by the API: NAIVE_MOBILE_CREDITS_PER_MINUTE (default 40) is charged per device-minute, and devices auto-terminate on credit exhaustion or after NAIVE_MOBILE_MAX_RUNTIME_MINUTES (default 1440). naive mobile status reports configuration, reachability, your phone counts, and the operator-wide upstream device total (the “confirm nothing is billing” check).