Overview
The DCD CLI is the primary way to interact with DeviceCloud from your terminal or CI/CD pipeline. It is a drop-in replacement for maestro cloud — in most cases you can swap maestro cloud for dcd cloud.
The CLI is published as @devicecloud.dev/dcd on npm and as a standalone binary. The npm package also ships an MCP server (dcd-mcp) so AI agents can drive DeviceCloud directly. The standalone binary doesn't include the MCP server.
Installation
The recommended install is the standalone binary — it has no dependencies and doesn't require Node.
curl -fsSL https://get.devicecloud.dev/install.sh | shirm https://get.devicecloud.dev/install.ps1 | iexRequires Node 22 or newer.
npm install -g @devicecloud.dev/dcdIn CI, you can skip a separate install step and run the CLI directly with npx:
npx --yes @devicecloud.dev/dcd@latest cloud <app-file> <flows-dir>Upgrading
If you installed the standalone binary, update it in place:
dcd upgradeIf you installed via npm, upgrade with npm instead:
npm install -g @devicecloud.dev/dcd@latestAuthentication
There are two ways to authenticate. See Authentication for full detail.
dcd login(recommended for local use) — authenticate once in your browser. The CLI stores a session, so you don't have to pass a key on every command, and it unlocks live test updates.API key (recommended for CI/headless) — set the
DEVICE_CLOUD_API_KEYenvironment variable, or pass--api-key <key>on any command.
When both are present, precedence is: --api-key flag → DEVICE_CLOUD_API_KEY env var → stored dcd login session.
Commands
Upload an app and run Maestro flows on DeviceCloud
Upload an app binary and get a reusable binary ID
Check the status of a test upload
List recent uploads for your organisation
Download artifacts or reports for a completed run
Authenticate via your browser
Clear the stored session
Show the logged-in user and active organisation
Switch the active organisation
Start and interact with a live device session (beta)
dcd upgrade
Upgrade the standalone binary in place
Environment Variables
DEVICE_CLOUD_API_KEY
API key to use when --api-key isn't passed. Takes precedence over a dcd login session
DCD_CONFIG_DIR
Directory for the dcd login session file (default $XDG_CONFIG_HOME/dcd, or ~/.dcd)
DCD_ENCRYPT
Set to 1 to make dcd cloud (and the MCP server) encrypt the app binary, flows and --env values on your machine before upload, the same as passing --encrypt
DCD_TELEMETRY_DISABLED
Set to 1 to turn off telemetry
DCD_API_URL
MCP server only. The API base URL to use (CLI commands take --api-url instead)
DCD_MCP_READONLY
MCP server only. Set to 1 for read-only mode
The standalone binary installers also read these:
DCD_VERSION
Install a specific version instead of the latest stable release, e.g. 5.5.0
DCD_BETA
Set to 1 to install the latest beta
DCD_INSTALL_DIR
Where to install the binary (default ~/.dcd/bin, or $env:USERPROFILE\.dcd\bin on Windows)
Telemetry
The CLI sends usage and error events to DeviceCloud to help us find and fix problems. Only commands that authenticate send anything — --help, --version and dcd whoami, for example, don't. Events include:
the command and its arguments, with the values of
--api-key,--app-urland--env/-eredactedhow long the command took and its exit code
the error message and stack trace when a command fails
the names, durations and errors of MCP server tool calls
the CLI version, install method (binary or npm), Node version, operating system and architecture, a random ID for the invocation and, with
dcd login, your email address and team ID
To opt out, set DCD_TELEMETRY_DISABLED=1.
Getting Help
Last updated