From ios-dev-toolkit
Provides agent-ready AXe CLI usage guidance for iOS Simulator automation. Use when asked to "use AXe", "automate a simulator", "tap/swipe/type on simulator", "describe UI", "take a screenshot", "record video", "batch steps", or "interact with an iOS app". Covers all commands including touch, gestures, text input, keyboard, buttons, accessibility, screenshots, video, and batch workflows.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ios-dev-toolkit:axeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. Identify simulator UDID target first (`axe list-simulators`).
axe list-simulators).--udid <UDID>. Commands like list-simulators and init do not.axe describe-ui --udid <UDID> to inspect the current screen. Use the output to discover available --id and --label values for selector taps, and to confirm coordinates for coordinate-based taps.tap --id / tap --label) over raw coordinates. Selectors are resilient to layout changes, work across device sizes, and support element waiting (--wait-timeout) in batch flows.Available commands: init, tap, swipe, gesture, touch, type, button, key, key-sequence, key-combo, batch, describe-ui, screenshot, record-video, stream-video, list-simulators. Run axe --help or axe <command> --help for full options.
Common examples:
axe tap --id <identifier> --udid <UDID>
axe tap --label <text> --udid <UDID>
axe tap -x <X> -y <Y> --udid <UDID>
axe type 'text' --udid <UDID>
axe describe-ui --udid <UDID>
axe screenshot --udid <UDID> --output screenshot.png
HID commands (tap, swipe, type, key, etc.) are fire-and-forget — AXe confirms the event was dispatched to the simulator but cannot verify the app actually processed it. A tap may land before a view is interactive, or during a transition. This means:
describe-ui or screenshot.--wait-timeout in batch to wait for elements to appear, and sleep steps or --pre-delay / --post-delay to allow animations to settle.--pre-delay / --post-delay on tap, swipe, and gesture commands for fixed delays around actions.--duration to control how long a swipe, gesture, button press, or key press lasts.--stdin or --file over inline quotes.Prefer axe batch for multi-step flows. Batch executes every step in a single process invocation, which means:
--wait-timeout).Fall back to discrete commands when:
describe-ui JSON to choose coordinates dynamically).Handling animations and transitions in batch:
--wait-timeout <seconds> so selector taps (--id / --label) poll the accessibility tree until the element appears or the timeout expires. This is the primary mechanism for multi-screen flows.--poll-interval <seconds> to control polling frequency during waiting (default 0.25s).--ax-cache perStep when not using --wait-timeout but the UI still changes between steps — this ensures each selector tap gets a fresh accessibility snapshot rather than a stale cached one.sleep <seconds> steps when coordinate-based taps need the UI to be stable (selectors with --wait-timeout are preferred over sleep where possible).--verbose only when troubleshooting.tap --label reports multiple matches and no AXUniqueId values are exposed, fall back to tap -x/-y for that step.Key rules:
--step, --file, or --stdin.--continue-on-error for best-effort execution.--udid inside step lines; keep it at batch level.Batch and individual commands are execution-focused, not assertion-focused. Always suggest verification when outcomes matter:
axe describe-ui --udid <UDID>
# or
axe screenshot --udid <UDID> --output post-state.png
Before finalising guidance, verify:
--udid.--stdin/--file for complex text).npx claudepluginhub elvinouyang/claude-skill-collection --plugin ios-dev-toolkitAutomates iOS UI interactions on simulators using IDB's accessibility tree queries before screenshots via execute_idb_command tool. For tapping elements, finding buttons, and testing user flows.
Drives iOS simulators programmatically via the baguette CLI — taps, swipes, multi-finger gestures, hardware buttons, keyboard text, and frame capture without Xcode. Use for scripted UI flows, smoke tests, or verifying on-screen state after code changes.
Debugs iOS apps on booted simulators using XcodeBuildMCP: builds and runs projects, inspects and interacts with UI via taps/types/gestures, captures screenshots and logs.