$git clone https://github.com/conorluddy/ios-simulator-skillProduction-ready skill for building, testing, and automating iOS apps. 27 scripts optimized for both human developers and AI agents.
| 1 | [](https://deepwiki.com/conorluddy/ios-simulator-skill) |
| 2 | |
| 3 | # iOS Simulator Skill for Claude Code |
| 4 | |
| 5 | Production-ready skill for building, testing, and automating iOS apps. 27 scripts optimized for both human developers and AI agents. |
| 6 | |
| 7 | (If you'd prefer an MCP, [XC-MCP](https://github.com/conorluddy/xc-mcp)) |
| 8 | |
| 9 | ## Xcode Build + Simulator Automation |
| 10 | |
| 11 | This skill covers both sides of iOS development: |
| 12 | |
| 13 | - **Xcode builds** via `xcodebuild` — compile, test, and parse results with progressive error disclosure |
| 14 | - **Simulator interaction** via `xcrun simctl` and `idb` — semantic UI navigation, accessibility testing, device lifecycle |
| 15 | |
| 16 | If you only need Xcode build tooling without the simulator scripts, see the plugin version: [xclaude-plugin](https://github.com/conorluddy/xclaude-plugin) |
| 17 | |
| 18 | ## Installation |
| 19 | |
| 20 | ### Via Plugin Marketplace (Recommended) |
| 21 | |
| 22 | In Claude Code: |
| 23 | |
| 24 | ``` |
| 25 | /plugin marketplace add conorluddy/ios-simulator-skill |
| 26 | /plugin install ios-simulator-skill@conorluddy |
| 27 | ``` |
| 28 | |
| 29 | ### Via Git Clone |
| 30 | |
| 31 | ```bash |
| 32 | # Personal installation |
| 33 | git clone https://github.com/conorluddy/ios-simulator-skill.git ~/.claude/skills/ios-simulator-skill |
| 34 | |
| 35 | # Project installation |
| 36 | git clone https://github.com/conorluddy/ios-simulator-skill.git .claude/skills/ios-simulator-skill |
| 37 | ``` |
| 38 | |
| 39 | Restart Claude Code. The skill loads automatically. |
| 40 | |
| 41 | ### Prerequisites |
| 42 | |
| 43 | - macOS 12+ |
| 44 | - Xcode Command Line Tools (`xcode-select --install`) |
| 45 | - Python 3 |
| 46 | - IDB (optional, for interactive features: `brew tap facebook/fb && brew install idb-companion`) |
| 47 | - Pillow (optional, for visual diffs: `pip3 install pillow`) |
| 48 | |
| 49 | ## Features |
| 50 | |
| 51 | ### Xcode Build with Progressive Disclosure |
| 52 | |
| 53 | The `build_and_test.py` script wraps `xcodebuild` with token-efficient output. A build returns a single summary line with an xcresult ID: |
| 54 | |
| 55 | ``` |
| 56 | Build: SUCCESS (0 errors, 3 warnings) [xcresult-20251018-143052] |
| 57 | ``` |
| 58 | |
| 59 | Then drill into details on demand: |
| 60 | |
| 61 | ```bash |
| 62 | python scripts/build_and_test.py --get-errors xcresult-20251018-143052 |
| 63 | python scripts/build_and_test.py --get-warnings xcresult-20251018-143052 |
| 64 | python scripts/build_and_test.py --get-log xcresult-20251018-143052 |
| 65 | ``` |
| 66 | |
| 67 | This keeps agent conversations focused — no walls of build output unless you ask for them. |
| 68 | |
| 69 | ### Simulator Navigation via Accessibility |
| 70 | |
| 71 | Instead of fragile pixel-coordinate tapping, all navigation uses iOS accessibility APIs to find elements by meaning: |
| 72 | |
| 73 | ```bash |
| 74 | # Fragile — breaks if UI changes |
| 75 | idb ui tap 320 400 |
| 76 | |
| 77 | # Robust — finds by meaning |
| 78 | python scripts/navigator.py --find-text "Login" --tap |
| 79 | ``` |
| 80 | |
| 81 | The accessibility tree gives structured data (element types, labels, frames, tap targets) at ~10 tokens default output vs 1,600-6,300 tokens for a screenshot. See [AI-Accessible Apps](https://www.conor.fyi/writing/ai-access) for more on why accessibility-first navigation matters for AI agents. |
| 82 | |
| 83 | ### Screenshot Token Optimization |
| 84 | |
| 85 | When screenshots are needed (visual verification, bug reports, diffs), the skill automatically resizes and compresses them to minimize token cost. Default output across all 27 scripts is 3-5 lines — 96% reduction vs raw tool output. |
| 86 | |
| 87 | | Task | Raw Tools | This Skill | Savings | |
| 88 | |------|-----------|-----------|---------| |
| 89 | | Screen analysis | 200+ lines | 5 lines | 97.5% | |
| 90 | | Find & tap button | 100+ lines | 1 line | 99% | |
| 91 | | Login flow | 400+ lines | 15 lines | 96% | |
| 92 | |
| 93 | ### All 27 Scripts |
| 94 | |
| 95 | Every script supports `--help` and `--json`. See **SKILL.md** for the complete reference. |
| 96 | |
| 97 | #### Build & Development |
| 98 | |
| 99 | | Script | What it does | Key flags | |
| 100 | |--------|-------------|-----------| |
| 101 | | `build_and_test.py` | Build Xcode projects, run tests, parse xcresult bundles | `--project`, `--scheme`, `--test`, `--get-errors`, `--get-warnings` | |
| 102 | | `log_monitor.py` | Real-time log monitoring with severity filtering | `--app`, `--severity`, `--follow`, `--duration` | |
| 103 | |
| 104 | #### Device State |
| 105 | |
| 106 | | Script | What it does | Key flags | |
| 107 | |--------|-------------|-----------| |
| 108 | | `appearance.py` | Switch dark mode, dynamic type, locale, region | `--theme`, `--tex |