Revyl Documentation

Runtime / Mobile

Drive a device

Start, control, and debug Revyl cloud devices from the CLI.

You can use these devices without creating a Revyl test. See Device Infrastructure for custom harnesses, CI workflows, and the Appium and Maestro connection requirements.

If you are new, start with Device Quickstart.

Choose Your Path

When To Use What

GoalBest Entry Point
First end-to-end run on a cloud deviceDevice Quickstart
Signed-in starts via config (session.before_script / session.auth_bypass)Auth And Session Prep
Full command-level controlCommand Reference
Agent-driven device control from IDEMCP Setup
CI orchestration of test and workflow runsCI/CD Integration

Core Ergonomics Loop

Whether you use CLI, SDK, or MCP, use the same reliable loop:

  1. Take a screenshot or otherwise re-observe current state.
  2. Choose one best action.
  3. Verify the result immediately.
  4. Repeat.

This avoids blind action chains and makes failures easier to debug.

Quickstart

This is the fastest way to get a working device session and take real actions safely.

1. Install and Authenticate

curl -fsSL https://revyl.com/install.sh | sh
brew install RevylAI/tap/revyl    # Homebrew (macOS)
pipx install revyl                # pipx (cross-platform)
uv tool install revyl             # uv
pip install revyl                 # pip

Then authenticate. The CLI prints an approval URL — open it in any browser and approve:

revyl auth login

You can also use an API key:

export REVYL_API_KEY="rev_..."

2. Start a Device Session

Run from the directory that owns .revyl/ (or a subdirectory of it) so project config is loaded.

revyl device start --platform android --timeout 600
revyl device info

If .revyl/config.yaml declares session.before_script and/or session.auth_bypass, the CLI runs session.before_script and applies session.auth_bypass when each is configured for iOS and Android sessions. Web (alpha) starts do not run session.before_script. See Auth And Session Prep.

3. Install and Launch Your App

Use a direct build URL (APK or IPA). Launch defaults to the app you just installed, so you do not need to know its bundle ID — pass --bundle-id only to launch a different installed app.

revyl device install --app-url "https://example.com/app.apk"
revyl device launch

4. Use the Safe Action Loop

Always re-observe before and after important actions.

revyl device screenshot --out before.png
revyl device tap --target "Sign In button"
revyl device type --target "Email field" --text "user@example.com"
revyl device screenshot --out after.png

5. Stop the Session

revyl device stop

Next

On this page