@@ -98,45 +98,11 @@ simdeck use <udid>
9898simdeck tap 0.5 0.5 --normalized
9999simdeck tap " Continue"
100100simdeck describe --format agent --max-depth 2 --interactive
101+ simdeck press @e3
102+ simdeck snapshot --format agent --max-depth 2 -i
101103simdeck --device < other-udid> describe --format agent --max-depth 2
102104```
103105
104- ## Daemon
105-
106- Manage the project daemon explicitly when needed:
107-
108- ``` sh
109- simdeck daemon start
110- simdeck daemon restart
111- simdeck daemon status
112- simdeck daemon stop
113- simdeck daemon killall
114- ```
115-
116- ` simdeck daemon ` manages the normal per-project warm process. ` daemon killall `
117- stops SimDeck daemons across all workspaces.
118-
119- Use software H.264 when the hardware encoder is unavailable, busy, or starved
120- by screen recording:
121-
122- ``` sh
123- simdeck daemon start --video-codec software
124- ```
125-
126- Restart the CoreSimulator service layer when ` simctl ` reports a stale service
127- version or the live display gets stuck before the first frame:
128-
129- ``` sh
130- simdeck core-simulator restart
131- ```
132-
133- You can also start or stop the CoreSimulator service layer explicitly:
134-
135- ``` sh
136- simdeck core-simulator start
137- simdeck core-simulator shutdown
138- ```
139-
140106## CLI
141107
142108``` sh
@@ -161,12 +127,17 @@ simdeck stream --frames 120 > stream.h264
161127simdeck describe
162128simdeck describe --format agent --max-depth 4
163129simdeck describe --format agent --max-depth 4 --interactive
130+ simdeck snapshot --format agent --max-depth 4 -i
164131simdeck describe --point 120,240
165132simdeck wait-for --label " Welcome" --timeout-ms 5000
133+ simdeck wait --label " Welcome" --timeout-ms 5000
166134simdeck assert --id login.button --source auto --max-depth 8
167135simdeck tap 120 240
168136simdeck tap --label " Continue" --wait-timeout-ms 5000
137+ simdeck tap --id com.apple.settings.screenTime --expect-id BackButton
169138simdeck tap " Continue"
139+ simdeck press @e3
140+ simdeck back
170141simdeck swipe 200 700 200 200
171142simdeck gesture scroll-down
172143simdeck pinch --start-distance 160 --end-distance 80
@@ -184,7 +155,7 @@ simdeck button action --duration-ms 1000
184155simdeck button digital-crown
185156simdeck crown --delta 50
186157simdeck button left-side-button
187- simdeck batch --step " tap --label Continue" --step " type 'hello'" --step " wait-for --label hello "
158+ simdeck batch --step " tap --label Continue --expect-label Done " --step " type 'hello'" --step " back "
188159simdeck dismiss-keyboard
189160simdeck button software-keyboard
190161simdeck home
@@ -205,35 +176,7 @@ metadata.
205176` simdeck use <udid> ` stores a default simulator for the current project
206177directory. Most device commands accept ` [<udid>] ` ; when it is omitted, SimDeck
207178uses ` --device ` , ` SIMDECK_DEVICE ` , ` SIMDECK_UDID ` , the saved project default,
208- or the only booted simulator, in that order. The old explicit-UDID form still
209- works for every command.
210-
211- ` boot ` uses SimDeck's private CoreSimulator boot path so it can start devices
212- without launching Simulator.app. If that private path is unavailable, the
213- command returns the CoreSimulator error instead of falling back to
214- ` xcrun simctl boot ` .
215-
216- Android emulators appear in ` simdeck list ` with IDs like
217- ` android:SimDeck_Pixel_8_API_36 ` . For Android IDs, lifecycle, install, launch,
218- URL, screenshot, logs, UIAutomator ` describe ` , tap, swipe, text, key, home, app
219- switcher, rotation, pasteboard, and browser live view route through the Android
220- SDK tools (` emulator ` and ` adb ` ) plus the emulator gRPC screenshot stream for
221- live video. ` simdeck stream ` remains iOS-only because it writes the iOS H.264
222- transport stream.
223-
224- ` stream ` writes an Annex B H.264 elementary stream to stdout for diagnostics or
225- external tools such as ` ffplay ` .
226-
227- ` describe ` uses the project daemon to prefer React Native, NativeScript,
228- Flutter, or UIKit in-app inspectors, then falls back to the built-in private
229- CoreSimulator accessibility bridge. Use ` --format agent ` or
230- ` --format compact-json ` for
231- lower-token hierarchy dumps, and add ` --interactive ` /` -i ` when an agent only
232- needs actionable elements plus their ancestors. Set a project default with
233- ` simdeck use <udid> ` so agent commands can use short forms like
234- ` simdeck tap "Continue" ` and ` simdeck describe --format agent --max-depth 2 ` .
235- Coordinate commands accept screen coordinates from the accessibility tree by
236- default; pass ` --normalized ` to send ` 0.0..1.0 ` coordinates directly.
179+ or the only booted simulator, in that order.
237180
238181## JS/TS Tests
239182
@@ -257,12 +200,6 @@ healthy, and only stops daemons it started itself. Pass `udid` to `connect()`
257200to make it the default for session methods; each method still accepts an
258201explicit UDID as the first argument when needed.
259202
260- Run common Maestro YAML flows against the same daemon-backed simulator API:
261-
262- ``` sh
263- simdeck maestro test flow.yaml --artifacts-dir artifacts/maestro
264- ```
265-
266203## NativeScript Inspector
267204
268205NativeScript apps can connect directly to the running server from JS and expose
@@ -318,13 +255,6 @@ void main() {
318255}
319256```
320257
321- ## VS Code
322-
323- Install the ` nativescript.simdeck-vscode ` extension from the VS Code Marketplace, then
324- run ` SimDeck: Open Simulator View ` from the Command Palette. The extension
325- opens the simulator inside a VS Code panel and auto-starts the local daemon
326- when it is not already reachable.
327-
328258## Contributing
329259
330260Contributors should read [ CONTRIBUTING.md] ( CONTRIBUTING.md ) for local build
0 commit comments