iOS Simulator Skill
29 production-ready scripts that let Claude Code build, drive, and test iOS apps in the Simulator using the accessibility tree instead of pixels.
What it does
Turns Claude Code into a hands-on iOS QA and build assistant via 29 Python/shell scripts:
- Build & logs:
build_and_test.py(xcodebuild runs, xcresult error parsing, progressive disclosure),log_monitor.py(severity filtering, dedup, follow mode) - Semantic UI control:
screen_mapper.pylists on-screen elements,navigator.pyfinds by text/type/accessibility ID and taps or types, plusgesture.pyandkeyboard.pyfor swipes, pinches, hardware buttons - Testing & analysis: WCAG accessibility audits, screenshot visual diffs, auto-generated test reports, full app-state snapshots,
.xcstringslocalization gap checks, and HangBuster for capturing/clustering main-thread hang events - Device state: dark mode, Dynamic Type, locale/RTL, GPS and GPX playback, permission grant/revoke, push notifications, status bar presets, clipboard
- Simulator lifecycle: list, suggest, boot, shutdown, create, delete, erase — all with batch flags and JSON output
A core design choice: the accessibility tree costs ~10–50 tokens versus 1,600–6,300 for a screenshot, so navigation stays cheap and resilient to UI changes.
Who it's for
- iOS/Swift developers tired of repetitive manual build-and-tap cycles
- Teams wanting agent-driven regression checks and accessibility audits
- CI engineers who need to spin simulators up and down programmatically
※ Requires macOS 12+, Xcode Command Line Tools, and Python 3 (IDB recommended for interaction).
Example uses
- Smoke-test a login flow:
sim_health_check.sh→app_launcher.py --launch com.example.app→screen_mapper.py→navigator.py --find-text "Login" --tap→accessibility_audit.pyfor a WCAG report. - One-command bug report: reproduce the issue, then
app_state_capture.py --app-bundle-id com.example.appbundles screenshot, UI hierarchy, logs, and device info into a Markdown summary. - Hang regression tracking:
hang_watcher.py --start, interact with the app,--stopfor a ~100-token summary, then--diff BASELINE CURRENTto see whether performance regressed between builds.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/conorluddy/ios-simulator-skill/HEAD/ios-simulator-skill/skills/ios-simulator-skill/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the ios-simulator-skill/skills/ios-simulator-skill folder from the GitHub repo conorluddy/ios-simulator-skill into my ~/.claude/skills/ios-simulator-skill/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/conorluddy/ios-simulator-skill.git && mkdir -p ~/.claude/skills && cp -r ios-simulator-skill/skills/ios-simulator-skill ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Check prerequisites: macOS 12+, Xcode with Command Line Tools, and Python 3. Verify with
xcrun simctl list devices. - Clone the repo: run
git clone https://github.com/conorluddy/ios-simulator-skill.gitin your terminal. - Create the skills folder:
mkdir -p ~/.claude/skills - Copy the skill in:
cp -r ios-simulator-skill/skills/ios-simulator-skill ~/.claude/skills/ - (Optional) Install extras:
pip3 install Pillowfor visual diffing, andbrew tap facebook/fb && brew install idb-companionfor interactive taps/gestures. - Verify: run
bash ~/.claude/skills/ios-simulator-skill/scripts/sim_health_check.shand confirm every check passes. - Restart Claude Code, then ask something like "boot an iPhone 16 simulator and launch my app" — the skill will be invoked automatically. Be cautious with
simctl_delete.py --all, which permanently removes simulators.