How It Works
Tests live as YAML files in.revyl/tests/. Each file contains a _meta block that tracks the relationship with the remote copy on the Revyl server:
When you push, the CLI sends the local blocks to the server and increments the version. When you pull, the CLI downloads the remote blocks and updates the
_meta accordingly. Conflicts are detected by comparing version numbers and checksums.
Sync Statuses
Every test has a sync status derived from comparing local_meta against the remote API:
revyl sync — Full Reconciliation
revyl sync is the top-level command that reconciles the entire project in one pass. It covers three domains: tests, app links, and hot reload mappings.
- Name-match linking — local files that match a remote test by name (but lack a
remote_id) are offered for linking. - Import — remote-only tests with no local counterpart are imported after confirmation (interactive) or skipped (non-interactive /
--skip-import). - Status reconciliation — each linked test is checked and the appropriate action is applied (pull, push, detach, prune).
Flags
Examples
revyl test list — View Sync Status
Show all local tests with their sync status, local version, and remote version:
Flags
revyl test push — Push Local Changes
Upload local test changes to the Revyl server.
- Checks changed local YAML with backend validation.
- Resolves
build.nameto anapp_idand any module/script names to UUIDs. - Sends the blocks to the server with an
expected_versionfor optimistic concurrency. - If the remote version has advanced (HTTP 409 conflict), the push is rejected. Use
--forceto overwrite, or pull first and re-push. - On success, updates
_metawith the newremote_version,checksum, andlast_synced_at.
Flags
revyl test pull — Pull Remote Changes
Download test changes from the Revyl server to local YAML.
- Fetches the remote test and converts tasks to blocks.
- Strips server-generated block IDs.
- Resolves UUIDs back to human-readable names (modules, scripts).
- Pulls associated tags, custom variables, environment variables, and device targets.
- Writes the updated YAML with refreshed
_meta.
--all to discover and import tests created by teammates in the web UI that don’t exist locally yet.
Flags
revyl test diff — Compare Local vs Remote
Show a unified diff between the local and remote versions of a test:
revyl test remote — List All Organization Tests
List every test in your Revyl organization, regardless of local project state:
Flags
Common Workflows
First-time setup (clone and sync)
After cloning a repository that already has.revyl/tests/ files: