revyl dev [flags]
revyl dev <command> [flags]
Commands
| Command | Does |
|---|---|
revyl dev start | Start a hot reload device loop |
revyl dev rebuild | Trigger a rebuild in a running dev session |
revyl dev status | Check dev session state. Always prints JSON. |
revyl dev attach | Attach a device session to a dev context |
revyl dev list | List dev contexts in the current worktree |
revyl dev use | Set the current dev context |
revyl dev stop | Stop a dev context |
revyl dev logs | Stream logs from the running dev session |
revyl dev auth refresh | Re-fire the auth bypass deep link from session boot values |
Flags
Device and session
| Flag | Default | Description |
|---|---|---|
--platform <ios|android> | Device platform to start | |
--timeout <seconds> | 300 | Device idle timeout |
--device-runner <id> | Target a specific device runner | |
--open, --no-open | open | Open the live device viewer in the browser |
--detach | Run in the background and return once the device session is ready | |
--json | With --detach, print a machine-readable handshake once the session is ready | |
--context <name> | worktree default | Target a specific named dev context |
Build selection
| Flag | Default | Description |
|---|---|---|
--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> | inherit | inherit (the branch’s default build), latest, or pinned with --build-version-id |
--build-version-id <id> | Specific build version to use | |
--build | Force build and upload before starting | |
--no-build | Never run build commands; require an existing build | |
--remote | Build native iOS changes on a remote Revyl build runner | |
--seed-latest | With --remote, install the branch’s latest build immediately, then hot-swap the fresh build when it lands |
Dev server
| Flag | Default | Description |
|---|---|---|
--port <n> | 8081 | Port for the local dev server |
--ready-timeout <seconds> | 60 | Wait for the dev-server relay to become reachable (env REVYL_READY_TIMEOUT) |
--prewarm-timeout <seconds> | 300 | Wait 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-reload | Diagnostic: launch after Expo relay transport even if manifest readiness can’t be proven |
Launch configuration
| Flag | Description |
|---|---|
--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-vars | Ignore REVYL_INHERITED_LAUNCH_ENV_VAR_IDS; explicit launch variables still apply |
-C, --chdir <dir>, --debug, -q, --quiet.
Subcommand flags
| Command | Flag | Default | Description |
|---|---|---|---|
rebuild | --wait | Block until the rebuild completes | |
rebuild | --json | Output the result as JSON (implies --wait) | |
rebuild | --timeout <seconds> | 120 | Timeout with --wait |
status | --wait-ready | Block until the dev loop has a live device session | |
status | --timeout <seconds> | 300 | Timeout with --wait-ready |
logs | --build | Stream remote build runner logs for the latest build | |
logs | --follow | Keep streaming until the build completes | |
logs | --timeout <seconds> | 300 | Wait for a remote build job to register, with --follow |
stop | --all | Stop every dev context in the current worktree | |
stop | --json | Output 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