- Connects to a running iOS or Android app.
- Performs real UI actions such as taps, typing, navigation, and waits.
- Captures screenshots and UI source from the live app.
- Evaluates assertions against the observed UI state.
- Persists reports and artifacts so a person or an LLM can review what happened.
What Visor is for
Visor is built for cases where code alone is not enough to verify behavior. Typical use cases:- Verify that a UI change actually rendered on screen.
- Compare before and after state using screenshots and UI source.
- Run the same scenario repeatedly to measure stability.
- Produce machine-readable evidence for review, debugging, or automation.
Product scope
Visor currently supports mobile applications only. Supported scope today:- Android apps through Appium and UiAutomator2.
- iOS apps through Appium and XCUITest.
- Real device or simulator interaction.
- Mock execution for dry runs and predictable artifacts.
- Web applications.
- Desktop applications.
- Rich assertion types beyond visibility checks.
Core building blocks
The product is organized around a small set of concepts.| Concept | What it means |
|---|---|
| Target | The UI element or screen location Visor should act on. |
| Action | A direct operation such as tap, type, navigate, wait, screenshot, or source capture. |
| Scenario | A JSON document that defines a repeatable sequence of steps and optional assertions. |
| Assertion | A rule checked after the steps finish. Today, visibility is the supported assertion type. |
| Artifact | A file written during or after execution, such as a screenshot, XML source dump, or summary report. |
| Determinism score | A stability score that shows how often repeated runs produced the same signature. |
Documentation map
Read the pages in this order if you are new to Visor:- Getting started
- Core concepts
- Platforms and runtime
- Interactions
- Targeting and selectors
- Evidence capture
- Scenarios
- Assertions and determinism
- Artifacts and reports
What Visor returns
Every operation returns a structured response envelope. The envelope always tells you:- whether the operation succeeded or failed
- when it started and ended
- which artifacts were produced
- what the next logical action is
- which structured payload belongs to the operation