Skip to content

Session lifecycle

Boot a simulator (or attach a paired device), install + launch a target app, return a session_id.

session_start(
bundle_id="com.acme.app",
device="iPhone 17", # optional, default = first booted sim
os_version="26.3",
target="simulator", # or "device"
udid="<device-udid>" # device target only
)

Returns: { session_id, target, device, os_version, bundle_id, status }

Tear down the session, release the simulator lock, drain pending recorders. Idempotent.

session_end()

Report current session state.

session_status()
# → { session_id, status: "ready" | "recording" | "replaying" | ..., device, bundle_id }