Skip to content

Flags

Pass --help to any command for the generated flag list:

sh
simdeck --help
simdeck tap --help
simdeck service restart --help

Global

FlagEnvPurpose
--server-url <url>SIMDECK_SERVER_URLTarget a specific running service
--device <selector>SIMDECK_DEVICEOne-off simulator override

SIMDECK_UDID is also accepted for compatibility. Device commands resolve in this order: positional UDID, --device, SIMDECK_DEVICE, SIMDECK_UDID, the project default from simdeck use <udid>, then auto-inference from the service.

Server options

Used by simdeck, service start, service restart, service on, and service reset. When service restart is run without --port, it preserves the installed LaunchAgent port or the current singleton service port before falling back to the configured ~/.simdeck/config.json service port and then 4310.

FlagDefaultNotes
--port <port> / -p4310HTTP port; service restart preserves the existing service port when omitted
--bind <ip>127.0.0.1Use 0.0.0.0 or :: for LAN access
--advertise-host <host>detectedHost printed for remote browsers
--client-root <path>bundled clientStatic client directory
--video-codec <mode>autoauto, hardware, or software
--android-gpu <mode>hostAndroid emulator renderer: host, auto, software, lavapipe, swiftshader, swangle, or swiftshader_indirect
--stream-quality <profile>fullfull, balanced, smooth, economy, low, tiny, ci-software, and related profiles
--local-stream-fps <fps>60Local stream frame target
--low-latencyoffConservative software H.264 profile
--openoffOpen the browser after starting the service
--autostart / -aoffRegister the service as a macOS LaunchAgent

Global config

SimDeck reads optional user defaults from ~/.simdeck/config.json:

json
{
  "service": {
    "port": 4311
  },
  "android": {
    "emulatorArgs": ["-no-snapshot"],
    "disableAudio": true
  }
}

service.port applies when a service command omits --port. Command-line flags still win. android.emulatorArgs are prepended to Android boot request arguments, and android.disableAudio controls whether SimDeck adds -no-audio to managed Android emulator boots.

describe

Alias: snapshot.

FlagPurpose
--format <format>json, compact-json, or agent
--source <source>native-ax by default; accepts auto, nativescript, react-native, flutter, swiftui, uikit, native-ax, or android-uiautomator
--max-depth <n>Trim hierarchy depth
--include-hiddenInclude hidden nodes when supported
-i, --interactiveKeep only actionable elements plus ancestors
--point <x>,<y>Describe the element at a screen point
--directSkip service and use native accessibility directly

Device lifecycle

CommandUseful flags
boot--android-emulator-arg=<arg> for Android emulator startup flags; repeat once per argument, for example -no-snapshot

SimDeck reserves Android emulator target and stream flags such as -avd, -ports, and -share-vid so browser streaming remains attached to the selected emulator.

Input

CommandUseful flags
tap / press--id, --label, --value, --element-type, --index, --wait-timeout-ms, --expect-id, --expect-label, --expect-timeout-ms, --normalized, --duration-ms
touch--phase, --normalized, --down, --up, --delay-ms
swipe--normalized, --duration-ms, --steps
gesture--normalized, --duration-ms, --delta
pinch--start-distance, --end-distance, --angle-degrees, --normalized
rotate-gesture--radius, --degrees, --normalized
type--stdin, --file, --delay-ms
key--modifiers, --duration-ms
key-sequence--keycodes, --delay-ms
key-combo--modifiers, --key
button--duration-ms
back--timeout-ms, --poll-interval-ms, --no-fallback-swipe

describe --format agent prints element refs like @e3; pass one as simdeck press @e3 to target that element by traversal order. Use tap --expect-* to wait for a post-tap state in the same command; use back for app-owned navigation instead of first discovering the current back button label.

Evidence and batch

CommandFlags
screenshot--output <path>, --stdout, --with-bezel
record--seconds <seconds>, --output <path>, --stdout
logs--seconds <seconds>, --limit <count>
stats--pid <pid>, --watch, --interval <seconds>
sample--pid <pid>, --seconds <seconds>
pasteboard set--stdin, --file
batch--step, --file, --stdin, --continue-on-error

Camera Simulation

CommandFlags
camera start--file <path-or-url>, --webcam [id], --mirror auto|on|off
camera switch--file <path-or-url>, --webcam [id], --placeholder, --mirror auto|on|off
camera statusnone
camera stopnone

Exit codes

CodeMeaning
0Success
1Runtime or command failure
2Argument parsing failure

Released under the Apache-2.0 License.