2.9x faster in one internal four-flow comparison with live Appium MCP navigation.
Across four mobile flows, Visor’s map-driven execution finished in 249
seconds versus 723 seconds for the Appium MCP baseline: a 2.9x speedup and 66%
less execution time. The deepest flow was 5.7x faster, and Visor used 31%
fewer execution tokens overall.
- Connects to a running iOS or Android app.
- Builds compact semantic memory for screens, safe actions, and known routes.
- Executes deterministic preferred and recovery paths in one request.
- Performs real UI actions and captures targeted evidence from the live app.
- Evaluates assertions against 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 agent-driven use cases:- Discover a new app once, then reuse the resulting semantic map across tasks.
- Navigate known flows without repeatedly inspecting screenshots or UI source.
- Recover from unknown screens with exact observation tokens and safe alternate paths.
- 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.
- Web applications.
- Desktop applications.
- Rich assertion types beyond visibility checks.
Core building blocks
The product is organized around a small set of concepts.Documentation map
Read the pages in this order if you are new to Visor:- Agent setup
- Core concepts
- Agent memory and deterministic routes
- 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