Skip to content

dcd live ​

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.

WARNING

Live is in beta and is billed at $0.03/min, excluding Sales Tax. Access is limited and by request only. If you would like to try Live, please contact support to request access. dcd live works with a dcd login session or an API key.

bash
dcd live <subcommand> [flags]

A typical session: start a device, install a build, interact, then stop.

bash
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.

dcd live start ​

Start a new live device session. Prints the session name and a console URL you can open to watch the device.

FlagDescription
--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-8, pixel-10, pixel-10-pro, pixel-10-pro-xl or pixel-11
--android-api-level <level>Android only. API level, e.g. 34 (must be passed together with --android-device)
--waitBlock until the device is ready to accept commands

dcd live install ​

Install a binary on a running session's device.

FlagDescription
--session <name>Required. Live session name
--app-binary-id <id>Required. Binary upload ID to install
--waitBlock until the device is ready again after installing

dcd live exec ​

Execute one or more Maestro YAML commands against the session.

FlagDescription
--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)
--waitWait for the device to be ready before executing

Pass either --yaml or --file, not both. dcd live exec exits 0 even when the commands fail, so check the printed result.

dcd live run ​

Run a whole Maestro flow file against the session. The flow's appId: header is handled automatically.

FlagDescription
<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)
--waitWait for the device to be ready before running

dcd live run exits 2 if the flow fails, or if it's still running when --timeout is reached (see Exit Codes).

dcd live screenshot ​

Save the current device screen to an image file (PNG or JPEG, matching the device format).

FlagDescription
--session <name>Required. Live session name
--output <path>, -oFile path to write to (default: live-screenshot.<ext>)

dcd live hierarchy ​

Dump the current view hierarchy — the selectors (text, accessibility labels, resource IDs) you can tap and assert on.

FlagDescription
--session <name>Required. Live session name
--jsonOutput the raw hierarchy as JSON
--output <path>, -oWrite the output to a file instead of stdout

dcd live status ​

Show a session's status — platform, readiness, current device phase, device model, locale, and time until auto-cancel.

FlagDescription
--session <name>Required. Live session name

dcd live stop ​

Stop a live session.

FlagDescription
--session <name>Required. Live session name