iOS Simulator Skill
/install ios-simulator
iOS Simulator Automation
This skill provides a Node-only CLI wrapper around:
xcrun simctlfor simulator/device/app managementidbfor 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).
idbis optional, but required for UI tree / semantic tapping. (Install steps below.)
Quick start
# 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 commands on the macOS node using ClawdBot’s node execution (e.g. exec with host: node / node tools). Ensure the skill folder exists on that node, or copy it there.
Output conventions (token-efficient)
- Default output: single-line JSON (small summary object).
- Add
--prettyto pretty-print JSON. - Add
--textfor a short human-readable summary (when provided by the command). - Commands that can be huge (
ui tree,list --full) are opt-in.
State / default UDID
select writes a state file (default: ./.ios-sim-state.json) that stores the chosen UDID.
All commands accept --udid \x3CUUID> and otherwise fall back to the state file.
Override location with:
IOS_SIM_STATE_FILE=/path/to/state.json
Dependency notes
Xcode / simctl availability
If xcrun cannot find simctl, ensure Xcode CLI tools are selected (via Xcode settings or xcode-select) and run the first-launch setup:
xcodebuild -runFirstLaunch
idb (for accessibility automation)
Install idb_companion and the idb CLI:
brew tap facebook/fb
brew install idb-companion
python3 -m pip install --upgrade fb-idb
Safety tiers
| Tier | Commands | Notes |
|---|---|---|
| SAFE | list, health, boot, shutdown, screenshot, ui * |
No data loss |
| CAUTION | privacy *, push, clipboard *, openurl |
Alters simulator/app state |
| DANGEROUS | erase, delete |
Requires --yes |
Command index
All commands live under:
node {baseDir}/scripts/ios-sim.mjs \x3Ccommand> [subcommand] [flags]
Core simulator lifecycle
list [--full]select --name \x3Csubstr> [--runtime \x3Csubstr>] [--boot]boot [--udid \x3Cuuid>] [--wait]shutdown [--udid \x3Cuuid>|--all]erase --yes [--udid \x3Cuuid>|--all]delete --yes [--udid \x3Cuuid>]create --name \x3Cname> --device-type \x3Csubstr> --runtime \x3Csubstr>
App management
app install --app \x3Cpath/to/App.app> [--udid ...]app uninstall --bundle-id \x3Cid> [--udid ...]app launch --bundle-id \x3Cid> [--udid ...] [-- \x3Cargs...>]app terminate --bundle-id \x3Cid> [--udid ...]app container --bundle-id \x3Cid> [--type data|app] [--udid ...]
Screenshots & video
screenshot --out \x3Cfile.png> [--udid ...]record-video --out \x3Cfile.mp4> [--udid ...](runs until Ctrl+C)
Clipboard / URL
clipboard get [--udid ...]clipboard set --text \x3Ctext> [--udid ...]openurl --url \x3Curl> [--udid ...]
Simulator permissions & push notifications
privacy grant --bundle-id \x3Cid> --service \x3Csvc[,svc...]> [--udid ...]privacy revoke --bundle-id \x3Cid> --service \x3Csvc[,svc...]> [--udid ...]privacy reset --bundle-id \x3Cid> --service \x3Csvc[,svc...]> [--udid ...]push --bundle-id \x3Cid> --payload \x3Cjson-string> [--udid ...]
Logs
logs show [--last 5m] [--predicate \x3Cexpr>] [--udid ...]
Accessibility-driven UI automation (requires idb)
ui summary [--limit 12]ui tree(full UI JSON array)ui find --query \x3Ctext> [--limit 20]ui tap --query \x3Ctext>(find + tap best match)ui tap --x \x3Cnum> --y \x3Cnum>(raw coordinate tap)ui type --text \x3Ctext>ui button --name HOME|LOCK|SIRI|SIDE_BUTTON|APPLE_PAY
Troubleshooting
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install ios-simulator - 安装完成后,直接呼叫该 Skill 的名称或使用
/ios-simulator触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
iOS Simulator Skill 是什么?
21 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing, and simulator lifecycle management. Optimized for AI agents with minimal token output. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 3759 次。
如何安装 iOS Simulator Skill?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install ios-simulator」即可一键安装,无需额外配置。
iOS Simulator Skill 是免费的吗?
是的,iOS Simulator Skill 完全免费(开源免费),可自由下载、安装和使用。
iOS Simulator Skill 支持哪些平台?
iOS Simulator Skill 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 iOS Simulator Skill?
由 Tristan Manchester(@tristanmanchester)开发并维护,当前版本 v0.1.2。