visor --help or invoke the CLI with no command, visor prints a usage summary instead of a JSON response envelope.
Global runtime inputs
These inputs are accepted globally and, where relevant, by individual commands.| Input | Meaning |
|---|---|
platform | android or ios |
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 |
appium-cmd | Override command used to launch Appium |
startup-timeout | Seconds to wait for Appium to become reachable after startup |
no-auto-start-appium | Disable auto-start and fail if Appium is unreachable |
attach | Attach to an already running app process when possible |
mock | Use mock runtime instead of a real device |
formatis currently informational only for normal commands; the implementation still returns JSON envelopesvisor --helpand no-command invocation print plain-text usage instead of JSON
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
- in the real Appium adapter, the destination is passed to WebdriverIO through
url(to) - in mock mode, the destination is echoed back in the action payload
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
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
platformdevicetimeoutoutputserver-urlapp-idappium-cmdstartup-timeoutno-auto-start-appiumattachmock
runwarnings
run object contains the full run result, including step results, assertion results, artifacts, determinism signature, and run-level error data.
If Appium is auto-started for this command, visor stops that managed Appium process before returning.
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
report
Purpose: return guidance about where run reports are stored.
Optional input:
path, which defaults toartifacts
messagepathformat
Appium lifecycle commands
start
Purpose: start Appium when unreachable or return current reachable status.
Optional inputs:
server-urlappium-cmdstartup-timeout
serverUrlreachablemanagedpidcommandmetadataPathlogPathstartedalreadyRunning
status
Purpose: report whether Appium is reachable and whether it is managed by visor.
Optional inputs:
server-url
serverUrlreachablemanagedpidcommandmetadataPathlogPath
stop
Purpose: stop a visor-managed Appium process for the given server URL.
Optional inputs:
server-urlforce
serverUrlstoppedmanagedreasonpidreachablemetadataPathlogPath
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 output is the exception: visor --help and no-command invocation print usage text instead of an envelope.