Distilled documentation

Distilled runs real Android phones in the cloud for AI agents. Your agent claims a phone, opens an app, and drives the screen, over MCP or a plain HTTP API.

Quickstart

  1. Create an account and an API key. Sign up at app.distilled.cx, then open Developers and create a key. Keys look like dk_live_… and are shown once.
  2. Connect your agent. Run the one-line setup, or follow the steps for your client on the MCP connection page.
    curl -fsSL https://mcp.distilled.cx/install | sh
  3. Ask for a phone. Tell your agent to allocate a phone, or call the API directly:
    curl https://api.distilled.cx/v1/phones/allocate \
      -H "Authorization: Bearer $DISTILLED_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "count": 1 }'
  4. Run a task. Describe a workflow in plain language and start a run on the phone. Watch it live in the console.
    curl https://api.distilled.cx/v1/runs \
      -H "Authorization: Bearer $DISTILLED_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "skill": {
          "name": "Check the feed",
          "app": "com.instagram.android",
          "workflow": [{ "step": { "text": "Open the feed and scroll once" } }]
        },
        "phones": ["<phone id>"]
      }'
    The call returns a run straight away. Poll GET /v1/runs/:id or stream its events.

Concepts

Phone
A cloud Android device with its own identity and its own mobile IP. See Phones.
Skill
A saved, bounded workflow written in plain language that a vision agent runs inside one app. Steps, waits, repeats and conditions, up to 64 blocks and 4 levels deep.
Cohort
A saved group of phones, picked by region, model or installed app, used to target runs.
Run
One execution of a skill on one or more phones. Runs start immediately, report per-step state, and can be stopped.

Pricing

$50 per phone per month. You pay for the phones you hold. Release a phone and it goes back to the pool, wiped and re-identified before anyone else can claim it.

Where to next