Skip to content

CLI

The simdeck binary is the only entrypoint SimDeck ships. It opens the browser UI, manages a warm project daemon, and exposes simulator-control subcommands for scripts and tests.

Synopsis

sh
simdeck [--server-url <url>] <COMMAND> [OPTIONS]

Most commands automatically start or reuse the project daemon when that is the fastest path. Set SIMDECK_SERVER_URL=http://127.0.0.1:4310 or pass --server-url to target a specific already-running daemon.

Top-level commands

CommandPurpose
uiStart or reuse the project daemon and serve the browser UI.
daemon start/status/stopManage the project daemon explicitly.
core-simulator ...Restart or manage Apple's CoreSimulator service layer.
listPrint every simulator known to the native bridge as JSON.
boot / shutdown / eraseManage simulator lifecycle.
install / uninstall / launch / open-urlManage apps and URLs inside a simulator.
describePrint accessibility or in-app inspector hierarchy data.
tap / swipe / gesture / type / key / buttonDrive simulator input.
screenshot / logs / pasteboard / chrome-profileCollect evidence and device metadata.

Every subcommand returns an exit code that follows shell conventions: zero on success, non-zero on failure.

Output format

Most subcommands print JSON. This makes the CLI easy to consume from scripts:

sh
simdeck list | jq '.simulators[] | select(.isBooted)'

Errors print a short human-readable message to stderr and a non-zero exit code. They do not print structured JSON for failure cases.

See also

Released under the Apache-2.0 License.