Revyl Documentation

CLI

revyl dev

Start and manage a hot-reload dev loop on a cloud device.

Starts a dev loop. It detects your project type (Expo, React Native, Swift, Android), starts hot reload, provisions a cloud device, installs the selected branch's dev build, and opens a live viewer. For a walkthrough, see Run your app on a cloud device.

revyl dev [flags]
revyl dev <command> [flags]

Commands

CommandDoes
revyl dev startStart a hot reload device loop
revyl dev rebuildTrigger a rebuild in a running dev session
revyl dev statusCheck dev session state. Always prints JSON.
revyl dev attachAttach a device session to a dev context
revyl dev listList dev contexts in the current worktree
revyl dev useSet the current dev context
revyl dev stopStop a dev context
revyl dev logsStream logs from the running dev session
revyl dev auth refreshRe-fire the auth bypass deep link from session boot values

Flags

Device and session

FlagDefaultDescription
--platform <ios|android>Device platform to start
--timeout <seconds>300Device idle timeout
--device-runner <id>Target a specific device runner
--open, --no-openopenOpen the live device viewer in the browser
--detachRun in the background and return once the device session is ready
--jsonWith --detach, print a machine-readable handshake once the session is ready
--context <name>worktree defaultTarget a specific named dev context

Build selection

FlagDefaultDescription
--profile <name>Named build profile to use
--app-id <id>App to resolve the initial build from
--branch <name>Revyl branch for the initial build and every rebuild
--build-selection <mode>inheritinherit (the branch's default build), latest, or pinned with --build-version-id
--build-version-id <id>Specific build version to use
--buildForce build and upload before starting
--no-buildNever run build commands; require an existing build
--remoteBuild native iOS changes on a remote Revyl build runner
--seed-latestWith --remote, install the branch's latest build immediately, then hot-swap the fresh build when it lands

Dev server

FlagDefaultDescription
--port <n>8081Port for the local dev server
--ready-timeout <seconds>60Wait for the dev-server relay to become reachable (env REVYL_READY_TIMEOUT)
--prewarm-timeout <seconds>300Wait for a cold Expo bundle prewarm (env REVYL_PREWARM_TIMEOUT)
--tunnel <url>Use an external Expo tunnel URL or dev-client deep link instead of the Revyl relay
--force-hot-reloadDiagnostic: launch after Expo relay transport even if manifest readiness can't be proven

Launch configuration

FlagDescription
--launch-var <key-or-id>Org launch variable to apply when the session starts (repeatable)
--launch-arg <token>Inline non-secret iOS app argument (repeatable, order preserved)
--launch-arg-set <name-or-id>Stored iOS argument set to apply (repeatable)
--no-inherited-launch-varsIgnore REVYL_INHERITED_LAUNCH_ENV_VAR_IDS; explicit launch variables still apply

Global flags: -C, --chdir <dir>, --debug, -q, --quiet.

Subcommand flags

CommandFlagDefaultDescription
rebuild--waitBlock until the rebuild completes
rebuild--jsonOutput the result as JSON (implies --wait)
rebuild--timeout <seconds>120Timeout with --wait
status--wait-readyBlock until the dev loop has a live device session
status--timeout <seconds>300Timeout with --wait-ready
logs--buildStream remote build runner logs for the latest build
logs--followKeep streaming until the build completes
logs--timeout <seconds>300Wait for a remote build job to register, with --follow
stop--allStop every dev context in the current worktree
stop--jsonOutput the result as JSON

Examples

revyl dev
revyl dev --platform ios
revyl dev --platform android --no-open
revyl dev --context ios-main --platform ios
revyl dev attach active
revyl dev list

On this page