Loading...
Loading...
Use for simulator lifecycle, app install/launch, live viewing, UI inspection, touch/keyboard automation, screenshots, recordings, logs, pasteboard, hardware controls, and repeatable simulator flows.
npx skill4agent add nativescript/simdeck simdecksimdeck--open-p <port>--port <port>-a--autostartsimdeck{
"ok": true,
"pairingCode": "401974",
"pid": 91285,
"projectRoot": "-",
"started": true,
"url": "http://127.0.0.1:4310"
}simdeck
simdeck --open
simdeck -p 4311
simdeck -a
simdeck pair # prints LAN/Tailscale pairing URLs, code, and iOS QR
simdeck service stop
simdeck service kill # stops all SimDeck services from any binary
simdeck service restarthttp://127.0.0.1:4310simdeck?device=<UDID>simdeck -p 4311simdeck pairsimdeck://pairsimdeck service resetsimdeck service killsimdeck service killallsimdecksimdeck --opensimdeck use <UDID>--deviceSIMDECK_DEVICESIMDECK_UDIDsimdeck tap "Continue"simdeck snapshot --format agent --max-depth 2 -isimdeck list
simdeck list --format json
simdeck use <UDID>
simdeck boot <UDID>
simdeck shutdown
simdeck erase
simdeck core-simulator restart
simdeck install /path/to/App.app
simdeck install /path/to/App.ipa
simdeck install android:<AVD_NAME> /path/to/app.apk
simdeck launch com.example.App
simdeck uninstall com.example.App
simdeck open-url myapp://route
simdeck open-url https://example.com
simdeck toggle-appearancesimdeck listsimdeck list --format jsonandroid:Pixel_8_API_36simdeck listdescribesimdeck/testactionquerywaitForasserttapbatchsimdeck describe
simdeck describe --format agent --max-depth 4
simdeck describe --format agent --max-depth 4 --interactive
simdeck snapshot --format agent --max-depth 4 -i
simdeck describe --format compact-json
simdeck describe --point 120,240
simdeck describe --source auto
simdeck describe --source nativescript|react-native|flutter|swiftui|uikit
simdeck describe --source native-ax
simdeck describe --source android-uiautomator
simdeck describe --direct
simdeck wait-for --label "Welcome" --timeout-ms 5000
simdeck wait --label "Welcome" --timeout-ms 5000
simdeck assert --id login.button --source auto --max-depth 8native-ax--source auto--direct--source native-ax--source android-uiautomatordescribeuiautomator dump--format agent--format compact-json--interactive-i@e3simdeck press @e3snapshotpresswaitdescribetapwait-for--expect-id--expect-label--expect-*simdeck tap --id LoginButton --wait-timeout-ms 5000
simdeck tap --id com.apple.settings.screenTime --expect-id BackButton
simdeck tap --label "Continue" --element-type Button
simdeck tap 120 240
simdeck tap "Continue"
simdeck press @e3simdeck/testimport { connect } from "simdeck/test";
const udid = "your-device-udid";
const simdeck = await connect({ udid });
try {
await simdeck.launch("com.example.App");
await simdeck.waitFor({ id: "login.button" }, { maxDepth: 8 });
await simdeck.tap(0.5, 0.5);
await simdeck.assert({ label: "Welcome" }, { maxDepth: 8 });
const matches = await simdeck.query({ id: "account.name" });
console.log(matches);
} finally {
simdeck.close();
}simdeck/testsource: "native-ax"source: "auto"tree()describesimdeck tap 120 240
simdeck touch 0.5 0.5 --phase began --normalized
simdeck touch 0.5 0.5 --phase ended --normalized
simdeck touch 120 240 --down --up --delay-ms 800
simdeck swipe 200 700 200 200
simdeck swipe 200 700 200 200 --duration-ms 500 --pre-delay-ms 100 --post-delay-ms 250
simdeck gesture scroll-up
simdeck gesture scroll-down
simdeck gesture swipe-from-left-edge
simdeck gesture swipe-from-right-edge
simdeck pinch --start-distance 160 --end-distance 80
simdeck pinch --start-distance 0.20 --end-distance 0.35 --normalized --duration-ms 250 --steps 8
simdeck rotate-gesture --radius 100 --degrees 90
simdeck rotate-gesture --radius 0.12 --degrees 45 --normalized --duration-ms 250 --steps 8
simdeck type 'hello'
simdeck type --stdin
simdeck type --file message.txt
simdeck key enter
simdeck key 42 --duration-ms 500
simdeck key-sequence --keycodes h,e,l,l,o --delay-ms 75
simdeck key-combo --modifiers cmd,shift --key z
simdeck dismiss-keyboard
simdeck button software-keyboard
simdeck button home
simdeck back
simdeck button lock --duration-ms 1000
simdeck button side-button
simdeck button volume-up
simdeck button volume-down
simdeck button action --duration-ms 1000
simdeck button mute
simdeck button digital-crown
simdeck crown --delta 50
simdeck button left-side-button
simdeck button siri
simdeck button apple-pay
simdeck home
simdeck app-switcher
simdeck rotate-left
simdeck rotate-right
simdeck pasteboard set 'text'
simdeck pasteboard get--stdin--filesimdeck tap --label "Continue" --wait-timeout-ms 5000
simdeck tap --label "Continue" --expect-label "Done"
simdeck back
simdeck swipe 200 700 200 200 --pre-delay-ms 100 --post-delay-ms 250
simdeck button lock --duration-ms 1000wait-forassertsleep 500sleep 0.5ssleep --seconds 0.5batchsimdeck batch \
--step "tap --label Continue --wait-timeout-ms 5000 --expect-label Done" \
--step "type 'hello world'" \
--step "back" \
--step "pinch --start-distance 0.20 --end-distance 0.35 --normalized"--step--file--stdinsimdeck use <UDID><UDID>--continue-on-errortapbackwait-forassertswipegesturepinchrotate-gesturetouchtypebuttonkeykey-sequencekey-combosleepawait simdeck.batch([
{ action: "tap", selector: { label: "Continue" }, waitTimeoutMs: 5000 },
{
action: "waitFor",
selector: { label: "Continue Tapped" },
timeoutMs: 5000,
},
{ action: "assert", selector: { id: "fixture.status" } },
]);simdeck maestro test flow.yaml --artifacts-dir artifacts/maestrosimdeck screenshot --output screen.png
simdeck screenshot --with-bezel --output screen-bezel.png
simdeck screenshot --stdout > screen.png
simdeck record --seconds 5 --output screen-recording.mp4
simdeck record --seconds 5 --stdout > screen-recording.mp4
simdeck logs --seconds 30 --limit 200
simdeck chrome-profile
simdeck processes
simdeck stats
simdeck stats --watch
simdeck sample --seconds 3--with-bezelrecordstatssamplesimdeck use <UDID>describe --format agent --max-depth 4waitForassertquerydescribedescribeimport { startSimDeckInspector } from "@nativescript/simdeck-inspector";
if (__DEV__) {
startSimDeckInspector({ port: 4310 });
}GET /api/inspector/connectimport "react-native-simdeck/auto";
import "expo-router/entry";expo-router/entryAppRegistry.registerComponent(...)EXPO_PUBLIC_SIMDECK_PORTstartSimDeckReactNativeInspector(...)