This page documents the current command surface exactly as implemented. If you runDocumentation Index
Fetch the complete documentation index at: https://visorai.dev/docs/llms.txt
Use this file to discover all available pages before exploring further.
visor --help, visor -h, or invoke the CLI with no command, visor prints a usage summary instead of a JSON response envelope. visor --version and visor -v print the package version instead of a JSON response envelope.
Global runtime inputs
These inputs are accepted globally and, where relevant, by individual commands.| Input | Meaning |
|---|---|
device | Device or simulator identifier |
timeout | Per-step timeout budget in milliseconds for scenario runs |
output | Base output directory for run artifacts and reports |
format | text or json |
server-url | Appium server URL |
app-id | Android app package or iOS bundle identifier; on iOS it must match an installed app on the selected target |
attach | Attach to an already running app process when possible |
formatis currently informational only for normal commands; the implementation still returns JSON envelopesvisor --help,visor -h, and no-command invocation print plain-text usage instead of JSONvisor --versionandvisor -vprint the package version instead of JSONplatformis inferred from the selected device;--platformis not accepted
Direct action commands
tap
Purpose: click an element or coordinate.
Inputs:
- target mode:
target - coordinate mode:
x,y - optional:
normalized
actionplatformargs
args contains either:
target, orx,y, andnormalized
navigate
Purpose: move to a destination.
Required input:
to
actionplatformargs.to
- the destination is passed to WebdriverIO through
url(to)
act
Purpose: perform a helper action.
Supported variants:
name=typewithtargetandvaluename=back
actionplatformargs
scroll
Purpose: perform a page-style vertical scroll.
Required input:
directionwith valueupordown
percent, default70
actionplatformargs.directionargs.percent
- Android uses Appium scroll gestures within the current viewport
- iOS attempts the same gesture path and falls back to a touch swipe when needed
screenshot
Purpose: capture a PNG image.
Optional input:
label
actionplatformargs.labelargs.fileargs.pathargs.widthargs.height
label is omitted, the runtime defaults it to capture.
wait
Purpose: pause execution.
Required input:
ms
actionplatformargs.ms
source
Purpose: capture current UI source as XML.
Optional inputs:
labelpath
actionplatformargs.labelargs.fileargs.pathargs.formatargs.bytes
visor start first.
Scenario commands
validate
Purpose: parse a scenario and return validation issues.
Required input:
scenario
validissues
- returns success when the scenario is valid
- returns a non-zero exit code with
status: okwhen the scenario is syntactically valid JSON but fails schema validation - returns a failure envelope when parsing fails or the file cannot be read
run
Purpose: execute one scenario, evaluate assertions, and write reports.
Required input:
scenario
devicetimeoutoutputserver-urlapp-idattach
runwarnings
run object contains the full run result, including step results, assertion results, artifacts, determinism signature, and run-level error data.
For scenario runs, run visor start first.
benchmark
Purpose: run one scenario repeatedly and compute a determinism score.
Required input:
scenario
runswith default20thresholdwith default95.0- the same runtime inputs accepted by
run
runsthresholddeterminismScorepassfailuresrunIdswarnings
visor start first.
report
Purpose: return guidance about where run reports are stored.
Optional input:
path, which defaults toartifacts
messagepathformat
Runtime lifecycle commands
start
Purpose: start the Visor daemon and ensure Appium is reachable.
Optional inputs:
server-urlappium-cmd
serverUrldaemonappium
status
Purpose: report Visor daemon state, Appium reachability, and warm sessions.
Optional inputs:
server-url
serverUrldaemonappium
stop
Purpose: close warm sessions and stop the Visor daemon.
Optional inputs:
server-urlforce
serverUrlstoppeddaemonappium
Response envelope behavior
Every command returns the same top-level envelope fields:statuscommand_idstarted_atended_atartifactsnext_actionerrordata
next_action is a hint, not an execution chain. Examples include run, report, and none.
Help and version output are the exceptions: visor --help, visor -h, and no-command invocation print usage text instead of an envelope, while visor --version and visor -v print the package version.