You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`boot --platform ios|android` ensures the target is ready without launching an app.
151
152
- Use `boot` mainly when starting a new session and `open` fails because no booted simulator/emulator is available.
152
153
-`open [app|url]` already boots/activates the selected target when needed.
153
-
-`reinstall <app> <path>` uninstalls and installs the app binary in one command (Android + iOS simulator in v1).
154
+
-`reinstall <app> <path>` uninstalls and installs the app binary in one command (Android + iOS simulator).
154
155
-`reinstall` accepts package/bundle id style app names and supports `~` in paths.
155
156
156
157
Deep links:
157
158
-`open <url>` supports deep links with `scheme://...`.
158
159
- Android opens deep links via `VIEW` intent.
159
-
- iOS deep link open is simulator-only in v1.
160
+
- iOS deep link open is simulator-only.
160
161
-`--activity` cannot be combined with URL opens.
161
162
162
163
```bash
@@ -207,22 +208,22 @@ Android fill reliability:
207
208
- If value does not match, agent-device clears the field and retries once with slower typing.
208
209
- This reduces IME-related character swaps on long strings (e.g. emails and IDs).
209
210
210
-
Settings helpers (simulators):
211
+
Settings helpers:
211
212
-`settings wifi on|off`
212
213
-`settings airplane on|off`
213
214
-`settings location on|off` (iOS uses per-app permission for the current session app)
214
-
Note: iOS wifi/airplane toggles status bar indicators, not actual network state. Airplane off clears status bar overrides.
215
+
Note: iOS supports these only on simulators. iOS wifi/airplane toggles status bar indicators, not actual network state. Airplane off clears status bar overrides.
215
216
216
217
App state:
217
-
-`appstate` shows the foreground app/activity (Android). On iOS it uses the current session app when available, otherwise it falls back to a snapshot-based guess (AX first, XCTest if AX can’t identify).
218
+
-`appstate` shows the foreground app/activity (Android). On iOS it uses the current session app when available, otherwise it resolves via XCTest snapshot.
218
219
-`apps --metadata` returns app list with minimal metadata.
219
220
220
221
## Debug
221
222
222
223
-`agent-device trace start`
223
224
-`agent-device trace stop ./trace.log`
224
225
- The trace log includes snapshot logs and XCTest runner logs for the session.
-`AGENT_DEVICE_IOS_PROVISIONING_PROFILE=<profile>` optional provisioning profile specifier for iOS device runner signing.
275
+
-`AGENT_DEVICE_IOS_RUNNER_DERIVED_PATH=<path>` optional override for iOS runner derived data root. By default, agent-device separates caches by target kind (`.../derived/simulator` and `.../derived/device`). If you set this override, use separate paths per kind to avoid simulator/device artifact collisions.
276
+
-`AGENT_DEVICE_IOS_CLEAN_DERIVED=1` rebuild iOS runner artifacts from scratch. When `AGENT_DEVICE_IOS_RUNNER_DERIVED_PATH` is set, cleanup is blocked by default; set `AGENT_DEVICE_IOS_ALLOW_OVERRIDE_DERIVED_CLEAN=1` only for trusted custom paths.
Copy file name to clipboardExpand all lines: skills/agent-device/SKILL.md
+14-11Lines changed: 14 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: agent-device
3
-
description: Automates mobile and simulator interactions for iOS and Android devices. Use when navigating apps, taking snapshots/screenshots, tapping, typing, scrolling, pinching, or extracting UI info on mobile devices or simulators.
3
+
description: Automates interactions for iOS simulators/devices and Android emulators/devices. Use when navigating apps, taking snapshots/screenshots, tapping, typing, scrolling, or extracting UI info on mobile targets.
4
4
---
5
5
6
6
# Mobile Automation with agent-device
@@ -39,13 +39,13 @@ npx -y agent-device
39
39
40
40
```bash
41
41
agent-device boot # Ensure target is booted/ready without opening app
agent-device snapshot --backend ax # macOS Accessibility tree (fast, needs permissions, less fidelity, optional)
67
+
agent-device snapshot --backend ax # macOS Accessibility tree (manual diagnostics only; no automatic fallback)
68
68
```
69
69
70
-
XCTest is the default: fast and complete and does not require permissions. Use it in most cases and only fall back to AX when something breaks.
70
+
XCTest is the default: fast and complete and does not require permissions. Use AX only for manual diagnostics, and prefer XCTest for normal automation flows. agent-device does not automatically fall back to AX.
Copy file name to clipboardExpand all lines: skills/agent-device/references/permissions.md
+15-1Lines changed: 15 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
## iOS AX snapshot
4
4
5
-
AX snapshot is an alternative to XCTest for when it fails (which shouldn't happen usually); it uses macOS Accessibility APIs and requires permission:
5
+
AX snapshot is available for manual diagnostics when needed; it is not used as an automatic fallback. It uses macOS Accessibility APIs and requires permission:
6
6
7
7
System Settings > Privacy & Security > Accessibility
Copy file name to clipboardExpand all lines: skills/agent-device/references/session-management.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ Sessions isolate device context. A device can only be held by one session at a t
14
14
- Name sessions semantically.
15
15
- Close sessions when done.
16
16
- Use separate sessions for parallel work.
17
+
- In iOS sessions, use `open <app>` for simulator/device. `open <url>` is simulator-only.
17
18
- For dev loops where runtime state can persist (for example React Native Fast Refresh), use `open <app> --relaunch` to restart the app process in the same session.
18
19
- For deterministic replay scripts, prefer selector-based actions and assertions.
19
20
- Use `replay -u` to update selector drift during maintenance.
0 commit comments