--device-model and --runtime, with
--os-version as an alias for --runtime. Either filter can be used alone;
when both are present, Atlas returns evidence that matches both exact,
case-sensitive values. JSON responses expose available combinations in
facets.device_targets, and suggested Atlas follow-up commands retain the
active branch, build, time, device, and runtime scope.
Graph and capture-listing follow-ups retain an active --recent-build-limit;
exact observation and report reads remain exact evidence.
Branch scope
Atlas reads andatlas open show All branches (--all-branches) by
default. Pass --branch <name> or --branch-id <id> to narrow the evidence to
one branch, including a branch with no usable build.
--build latest selects the newest usable build on one branch, even when the
branch is pinned: --branch when given, otherwise
your Git branch
when it has a usable build, otherwise the app’s default branch. An exact
--build <id> keeps that build’s scope.
A version string passed to --build <version> selects the newest upload whose
version matches exactly, within an explicit branch when provided and across
branches otherwise. Package names and partial version matches are excluded.
An unavailable version fails; it never falls back to another build.
All branches stays within the selected app and organization, with the same
pagination, time windows, and recent-build limits. A recent-build limit counts
builds across the selected scope: 20 means 20 in total across All branches, not
20 per branch.
Branch-scoped responses include projection.branch_id, and suggested follow-up
commands keep that branch with --branch-id. Follow-ups from All branches use
--all-branches when no exact build is selected.
Branches filter observed evidence. Screen merges, hiding, and identity-root
choices remain app-wide; evidence without a known build appears only in All
branches. See Build branches for
defaults, pins, and saved choices. To keep a shared main or staging map current, see
Keep main or staging current.
Read the graph
brief is a bounded orientation: product areas, starting anchors, highly
connected screens, and a representative visual sample. An anchor’s reasons
(curated_entry, semantic_entry, or observed_root) explain why it is useful
for beginning traversal. They do not define a parent, hierarchy, or preferred
journey.
Download and actually inspect the visual sample before describing the UI:
local_screenshot_path; screenshot filenames are opaque.
On Unix, new screenshot directories use mode 0700 and downloaded or reused
screenshots use 0600. Existing output directories keep their permissions.
On Windows, existing file ACLs are preserved and new files inherit the output
directory’s access controls. Choose a directory restricted to your account
when downloading private screenshots.
graph is the canonical flat contract: starting_anchors, nodes, and typed
edges between returned nodes, without a selected primary path. Check the
top-level truncated or has_more value before treating the response as the
complete app graph. map remains a compatibility alias for the same graph view.
Explore bottom-up with focused commands:
search <query>finds candidate nodes.screen <screen-id>inspects one node and its incoming and outgoing edges.observations <screen-id>loads grouped screenshot evidence.neighbors <screen-id>continues graph traversal in either direction.edge <source-id> <target-id> --runs --jsonloads recorded transition clips.area <product-area>returns the area’s subgraph plus its boundary edges.observation <observation-id>loads one exact screenshot observation.report <screen-or-observation-id>loads the report that produced evidence.
local_screenshot_path files. If an edge is
surprising or important, run
revyl atlas edge <source-id> <target-id> --app <app-id> --runs --json, open
the newest run’s active_video.video_url, and watch the interval bounded by
source_video_start and source_video_end. If the cause remains unclear,
traverse backward through the source node’s incoming edge and inspect that
preceding clip. If native video ingestion is unavailable, use ffmpeg to
extract the bounded interval at roughly two frames per second and open the
frames in chronological order.
Use revyl atlas report <screen-or-observation-id> --app <app-id> --json to
read the originating test goal, steps, actions, and workflow context. Screen
IDs use their representative observation; observation IDs resolve exact
evidence. For a misunderstood edge, use the exact run’s execution_id or
session_id with revyl test report or revyl device report so the report
matches the transition clip. Keep signed URLs and downloaded media temporary
and out of logs and committed artifacts.
Graph inspection JSON responses include a versioned contract and
projection.data_source. summary identifies the compact graph model and
evidence identifies a focused observation read.
Agent investigations
Userevyl tools search "device logs" to discover operations and
revyl tools describe reports.logs to inspect their JSON inputs. The catalog
includes report diagnostics, build executions, Atlas traversal and grounded
annotations. revyl build runs <build-id> --page 1 --limit 20 --json provides
paginated executions attributed to a selected build.
revyl test query --app <app-id> --search onboarding --limit 25 --json
filters tests before pagination. revyl test inspect <test-id> --json reads
current instructions, device targets and saved configuration; those settings
may differ from the version and overrides used by a past execution.
revyl atlas from-reports --app <app-id> --reports <report-id> --json projects
selected reports upward into Atlas and retains unmapped evidence. Missing
evidence does not establish that a feature was removed.
Supported tool calls accept --view to return data with a read-only query
recipe. revyl tools hydrate - reads that recipe from stdin and re-runs it
under the caller’s current authorization. A consuming interface supplies the
native renderer; the agent supplies a query, never executable UI code.
Install the Atlas skill to make this media-first graph workflow the agent
default: