Start an interactive cloud device session and drive it from your terminal — install a build, run individual Maestro commands or a whole flow, capture screenshots, and dump the view hierarchy. This is ideal for authoring and debugging flows against a real cloud device.
{% hint style="warning" %}
Live is in beta and is billed at $0.03/min. Access is limited and by request only. If you would like to try Live, please contact support to request access. dcd live requires a dcd login session.
{% endhint %}
dcd live <subcommand> [flags]A typical session: start a device, install a build, interact, then stop.
dcd live start --platform android --wait
dcd live install --session <name> --app-binary-id <id> --wait
dcd live run --session <name> path/to/flow.yaml
dcd live stop --session <name>Every subcommand (except start) takes a --session <name> flag identifying the session, and accepts --api-key / --api-url.
Start a new live device session. Prints the session name and a console URL you can open to watch the device.
| Flag | Description |
|---|---|
--platform <android|ios> |
Device platform (default: android) |
--app-binary-id <id> |
Binary upload ID to install on the device at start |
--device-locale <locale> |
Device locale, e.g. de_DE |
--android-device <device> |
Android only. Device profile (pixel-6, pixel-6-pro, pixel-7, pixel-7-pro) |
--android-api-level <level> |
Android only. API level, e.g. 34 (must be passed together with --android-device) |
--wait |
Block until the device is ready to accept commands |
Install a binary on a running session's device.
| Flag | Description |
|---|---|
--session <name> |
Required. Live session name |
--app-binary-id <id> |
Required. Binary upload ID to install |
--wait |
Block until the device is ready again after installing |
Execute one or more Maestro YAML commands against the session.
| Flag | Description |
|---|---|
--session <name> |
Required. Live session name |
--yaml <commands> |
Inline Maestro YAML commands, e.g. --yaml "- launchApp" |
--file <path> |
Read the Maestro YAML to execute from a file (alternative to --yaml) |
--wait |
Wait for the device to be ready before executing |
Pass either --yaml or --file, not both.
Run a whole Maestro flow file against the session. The flow's appId: header is handled automatically.
| Flag | Description |
|---|---|
<flow-file> |
Required. Path to the Maestro flow file (positional argument) |
--session <name> |
Required. Live session name |
--timeout <seconds> |
Max seconds to wait for the flow to finish (default: 600) |
--wait |
Wait for the device to be ready before running |
Save the current device screen to an image file (PNG or JPEG, matching the device format).
| Flag | Description |
|---|---|
--session <name> |
Required. Live session name |
--output <path>, -o |
File path to write to (default: live-screenshot.<ext>) |
Dump the current view hierarchy — the selectors (text, accessibility labels, resource IDs) you can tap and assert on.
| Flag | Description |
|---|---|
--session <name> |
Required. Live session name |
--json |
Output the raw hierarchy as JSON |
--output <path>, -o |
Write the output to a file instead of stdout |
Show a session's status — platform, readiness, current device phase, device model, locale, and time until auto-cancel.
| Flag | Description |
|---|---|
--session <name> |
Required. Live session name |
Stop a live session.
| Flag | Description |
|---|---|
--session <name> |
Required. Live session name |