CLOUSD
Open account
For AI agents · Early access

Real phones
for your AI agents.

Train, test and run mobile agents on Android devices modelled on real phones, not on an emulator. Save a clean state, restore it before every run, clone as many copies as the job needs.

Request access See the API

Why not an emulator

An agent that only ever practised on an emulator meets a different world on a real phone. Here it works in the one your users have.

Apps see a phone

Model, sensors, camera, GPU, SIM and carrier of the phone the device is modelled on. Apps behave the way they do for real users.

Google Play inside

Play Store and Play services on every device, apps installed the way a phone installs them.

A real user's network

Mobile or residential exit in the country you pick. Time zone, locale and SIM follow it.

Built for runs, not for one phone

Evaluation and training need the same starting point every time, and many of them at once.

Save a world

Set a device up once: apps installed, accounts signed in, data in place. Snapshot it.

Reset between runs

Restore the snapshot before each episode, so every run starts from the same state.

Clone to scale

New devices from the same snapshot: ten or a hundred identical starting points.

Pay per minute

Stopped devices cost nothing. A burst of runs costs what it uses.

An interface an agent can drive.

One call to look: a fresh screenshot, every element on the screen with its position, and the app in front. One call to act, and it waits until the screen settles. ADB when the check needs to go deeper.

GET/devices/{id}/observeScreen and UI tree
POST/devices/{id}/actAct, wait to settle
POST/snapshots/{s}/restoreReset the state
POST/snapshots/{s}/cloneClone a device
ADBrelay.clousd.comCheck from inside
One episodereset · look · act · check
POST /v1/devices/dev_04f2/snapshots/v3/restore

GET  /v1/devices/dev_04f2/observe
     → { "seq": 41, "image": {…}, "activity": "…Cart",
         "ui": [ { "text": "Checkout", "b": [60,1560,1020,1680] } ] }

POST /v1/devices/dev_04f2/act
{ "op": "tap_text", "text": "Checkout", "seq": 41, "settle": true }

adb shell dumpsys activity top
     → did the order go through?
Coming in early access MCP server: plug a phone into Claude or any agentPython SDKTyping in any languageReset in seconds

What teams use it for

Agent evaluationBenchmark an agent on real apps and real device models, from the same starting state every time.
Training environmentsResettable episodes at scale, across device models, Android versions and countries.
Agents that need a phoneProducts that book, order and message for their users, each user on a device of their own.
Testing with agentsLet an agent walk through your app on the phones your users actually own.

Request early access

We are opening this to a few teams first. Tell us what your agent does and how many devices it needs at once; we will set you up and write back within a day.

Devices at once