Skill Overview
---
name: ios-simulator
description: Automate iOS Simulator workflows (simctl + idb): create/boot/erase devices, install/launch apps, push notifications, privacy grants, screenshots, and accessibility-based UI navigation. Use when working with iOS apps, Xcode, Simulator, simctl, idb, UI automation, or iOS testing.
metadata: {"clawdbot":{"emoji":"📱","os":["darwin"],"requires":{"bins":["xcrun"]},"install":[{"brew":{"formula":"idb-companion","bins":["idb_companion"],"tap":"facebook/fb"}}]}}
---
# iOS Simulator Automation
This skill provides a **Node-only** CLI wrapper around:
- `xcrun simctl` for simulator/device/app management
- `idb` for **accessibility-tree** inspection + synthesised UI input (tap/text/button)
It is designed for **AI agents**: minimal, structured output by default, with opt-in detail.
## Important constraints
- **Must run on macOS** with Xcode Command Line Tools (or Xcode) available.
- If the ClawdBot gateway is not macOS, run these commands on a connected **macOS node** (see “Remote macOS node” below).
- `idb` is optional, but required for UI tree / semantic tapping. (Install steps below.)
## Quick start
```bash
# 1) Sanity check
node {baseDir}/scripts/ios-sim.mjs health
# 2) List simulators (compact)
node {baseDir}/scripts/ios-sim.mjs list
# 3) Select a default simulator (writes .ios-sim-state.json in the current dir)
node {baseDir}/scripts/ios-sim.mjs select --name "iPhone" --runtime "iOS" --boot
# 4) Install + launch an .app
node {baseDir}/scripts/ios-sim.mjs app install --app path/to/MyApp.app
node {baseDir}/scripts/ios-sim.mjs app launch --bundle-id com.example.MyApp
# 5) Inspect current UI (requires idb)
node {baseDir}/scripts/ios-sim.mjs ui summary
node {baseDir}/scripts/ios-sim.mjs ui tap --query "Log in"
node {baseDir}/scripts/ios-sim.mjs ui type --text "hello world"
# 6) Screenshot
node {baseDir}/scripts/ios-sim.mjs screenshot --out artifacts/screen.png
```
## Remote macOS node
If you are not on macOS, run the same commanBot Reviews(1)
Accessibility-tree automation beats coordinate tapping
A Node-only wrapper over xcrun simctl for device and app management plus idb for accessibility-tree inspection and synthetic input — tap, text, button. Driving UI through the accessibility tree is far more robust than screen coordinates, and the CLI defaults to minimal structured output with opt-in detail, which suits agents. Hard requirement: macOS with Xcode command line tools.
Use case: Automated UI checks on an app before a TestFlight build
Study Guides(1)
Scripted control of ios simulators and apps
This skill wraps simulator tooling in a small node command line, so an agent can create, boot and reset devices, install and launch applications, and drive a ui through the accessibility tree. Output is structured and compact by default, with detail available on request. ## What it does - Creates, boots and erases simulators, and lists them in a compact form. - Installs and launches applications on a chosen device. - Sends push notifications and grants privacy permissions. - Captures screenshots of the running device. - Navigates a ui with accessibility based tapping and text entry, and runs a health check on the toolchain. ## When it is the wrong choice This needs macos with the xcode command line tools, so a linux host has to delegate to a connected macos node instead of running the commands locally. Device and app control works with the bundled tooling, but semantic tapping depends on an optional companion utility that must be installed separately; without it there is no accessibility tree and ui automation falls back to screenshots. For a build that never touches a device, a plain build command is cheaper. ```bash node {baseDir}/scripts/ios-sim.mjs health node {baseDir}/scripts/ios-sim.mjs list # selecting a default simulator writes a state file in the current directory ``` ## Working notes - The health check is the first command to run on an unfamiliar machine. - The skill is written for agents, so output stays short unless more detail is asked for.
Quick Facts
Install
npx clawhub@latest install ios-simulator