iOS Simulator
@conorluddyiOS Simulator skill by Conor Luddy: Python scripts for Xcode builds, accessibility-based simulator navigation and device management.
Local-only Python scripts that wrap xcodebuild, simctl and idb, with no network code found, but some can delete or erase simulators (gated by --yes).
Install iOS Simulator in Google Antigravity
Antigravity loads skills from .agents/skills/ in your project or ~/.gemini/config/skills/ for all projects (official docs). Full guide
Install the "iOS Simulator" skill for Google Antigravity. Follow the steps at https://www.antigravityskills.org/install/ios-simulator.md (source: https://github.com/conorluddy/ios-simulator-skill/tree/main/ios-simulator-skill/skills/ios-simulator-skill). Before running anything, show me what you will download and whether it includes scripts, and wait for my OK. Install it into this project (.agents/skills/) unless I say global. When done, check that Antigravity lists it as an installed skill.
The agent reads the install file, shows you what it will download and waits for your OK.
Option 2: install it yourself
- 1. Clone the repository
git clone --depth 1 https://github.com/conorluddy/ios-simulator-skill.git /tmp/ios-simulator-skill-src
Download the official repository to a temporary folder.
- 2. Copy into your workspace
mkdir -p .agents/skills && cp -R /tmp/ios-simulator-skill-src/ios-simulator-skill/skills/ios-simulator-skill .agents/skills/ios-simulator-skill
Run this from your project root. Antigravity reads workspace skills from <project>/.agents/skills/<folder>/. The README's own manual-install table lists .agents/skills/ for another agent; it is the same folder layout, with SKILL.md at the top of the skill folder.
- 3. Or install globally
mkdir -p ~/.gemini/config/skills && cp -R /tmp/ios-simulator-skill-src/ios-simulator-skill/skills/ios-simulator-skill ~/.gemini/config/skills/ios-simulator-skill
Use this instead of the previous step to make the skill available in every project.
- 4. Install the prerequisites
brew install facebook/fb/idb
From the README: installs idb-cli and idb-companion. You also need Xcode 26+ selected with xcode-select and Python 3.12+. Then run bash .agents/skills/ios-simulator-skill/scripts/sim_health_check.sh to check everything at once.
- 5. Check that Antigravity sees it
Ask "What skills do you have?" (Antigravity 2.0 app has no /skills command). Antigravity CLI: run /skills; in a session that was already open, run /skills reload first. The skill should be listed by name.
The README does not mention Antigravity (it documents Claude Code and Codex), so this is a manual copy. The skill folder is nested three levels deep in the repo; copy ios-simulator-skill/skills/ios-simulator-skill, not the repo root, or SKILL.md ends up too deep and will not load. We did not run it.
Using Claude Code, Cursor or Codex? See other assistants below.
What is iOS Simulator?
How to use iOS Simulator?
Key features of iOS Simulator
- ✓We counted at e38b3ad (repo HEAD, v1.7.0, 2026-10-19): the scripts/ folder has 29 top-level Python files plus sim_health_check.sh (30 scripts, matching the README), and 43 Python files in all with the common/ and xcode/ helper packages. The skill folder is 46 files and about 708 KB; SKILL.md is 469 lines (28,784 bytes).
- ✓We counted: 27 of the Python files import subprocess to call xcodebuild, xcrun simctl or idb. A grep for requests, urllib, http, socket, os.system, eval( and exec( found no network client or shell-string execution; shell=True appears only in a comment in appearance.py saying it is never used.
- ✓We counted: README says "Every script supports --help and --json" and SKILL.md says "most support --json"; only 19 of the 29 Python scripts mention --json. Expect plain-text output from the rest.
- ✓We counted: the README's configuration section names 32 IOS_SIM_* environment variables (we grepped 35 distinct names in the scripts), for example IOS_SIM_BOOT_TIMEOUT=600 for slow CI runners.
- ✓We counted: it keeps local state under ~/.ios-simulator-skill/ (cache, sessions, xcresults) and a temporary screenshot at /tmp/ios_simulator_screenshot.png; hang_watcher.py can start a detached background worker (start_new_session=True) that records hangs, and sessions expire after 24 hours by default.
- ✓README says screenshots cost 1,600-6,300 tokens while the accessibility tree costs about 10 tokens by default, so the agent should map the screen first and screenshot only to verify; README also says that on Xcode 27 an idb-companion older than 1.5.1 silently drops taps (idb reports success, nothing happens).
- ✓README says Xcode 27 has no Simulator.app (it is DeviceHub.app), that the Homebrew idb build needs an Apple silicon Mac, and that Intel Macs are not supported.
When to use iOS Simulator
- 1Letting an AI coding agent build and test an iOS app in the simulator
- 2Automating UI flows like login by finding elements through accessibility labels
- 3Running accessibility audits on an app screen
- 4Managing simulator devices from the command line
Installation & Setup Guide
Agent Rules / Prompt SetupFollow these steps (taken from the project's own docs) to configure iOS Simulator in your development environment.
/plugin marketplace add conorluddy/ios-simulator-skill
Run in Claude Code, then `/plugin install ios-simulator-skill@conorluddy` (README).
curl -L https://github.com/conorluddy/ios-simulator-skill/releases/latest/download/ios-simulator-skill.zip -o skill.zip && unzip skill.zip -d ~/.claude/skills/ios-simulator-skill
Restart Claude Code afterwards and check with `ls ~/.claude/skills/ios-simulator-skill/SKILL.md` (README).
git clone https://github.com/conorluddy/ios-simulator-skill.git ~/src/ios-simulator-skill && cp -R ~/src/ios-simulator-skill/ios-simulator-skill/skills/ios-simulator-skill ~/.claude/skills/ios-simulator-skill
Tracks main. For a project-local install use .claude/skills/ios-simulator-skill as the destination (README).
brew install facebook/fb/idb
Required for tapping, swiping and typing (README). The project does not document Cursor.
Usage Example & Verification
1) SKILL.md quick start: python3 scripts/app_launcher.py --launch com.example.app, then python3 scripts/screen_mapper.py to list what is on screen. -> Launches the app in the booted simulator and prints the tappable elements. 2) SKILL.md quick start: python3 scripts/navigator.py --find-text "Login" --tap, then python3 scripts/navigator.py --find-type TextField --enter-text "user@example.com". -> Finds the element by its accessibility label, taps it, then types into the first text field. 3) Our example: "Build the app for the iPhone simulator, launch it, and tell me whether the login screen has any accessibility problems." -> The agent runs build_and_test.py, launches the app, maps the screen and runs accessibility_audit.py, then reports findings from the scripts' output (macOS, Xcode and idb must be installed first).
Security Review
Static reviewLocal-only Python scripts that wrap xcodebuild, simctl and idb, with no network code found, but some can delete or erase simulators (gated by --yes).
Full review: scope, findings, risks
The skill folder ios-simulator-skill/skills/ios-simulator-skill contains SKILL.md, an agents/openai.yaml interface file and a scripts/ directory of Python and shell files. They run local tools (xcodebuild, xcrun simctl, idb) via subprocess; a grep of scripts/ for requests, urllib, http imports, socket, os.system, eval( and exec( found nothing, and scripts/appearance.py documents that commands are never run with shell=True. scripts/simctl_delete.py and scripts/simctl_erase.py permanently remove or wipe simulators and refuse to run without --yes (there is no interactive prompt). scripts/privacy_manager.py grants or revokes app permissions, and push_notification.py and location.py change simulator state. scripts/container.py reads and can export an app's data container (UserDefaults, Core Data paths); its docstring says Keychain is out of scope. Scripts write caches, hang sessions and xcresult copies under ~/.ios-simulator-skill/ and a temporary screenshot to /tmp. hang_watcher.py starts a detached background worker with start_new_session=True for its session mode. The only environment access is the IOS_SIM_* settings plus SIMCTL_CHILD_* variables passed to the launched app. No API keys are required. Installing idb pulls packages from Meta's facebook/fb Homebrew tap. This is a static review; we did not run any script.
Operational Notes & Known Limitations
Known Limitations
- •macOS only (README: macOS 15 Sequoia or newer); the Homebrew idb build needs an Apple silicon Mac and Intel Macs are not supported.
- •Needs the full Xcode app, version 26 or newer (Command Line Tools alone are not enough), and Python 3.12 or newer.
- •Interactive scripts (tap, swipe, type) need idb CLI and companion 1.5.1 or newer (1.6.3 or newer recommended) from the facebook/fb Homebrew tap; visual diffs need Pillow.
- •On Xcode 27, older idb-companion versions silently drop taps (README).
- •Not every script has --json output (19 of 29 Python scripts mention it in our grep).
Frequently Asked Questions
Is the iOS Simulator skill safe?
In our static review of commit e38b3ad the scripts call local Apple and Meta tools (xcodebuild, xcrun simctl, idb) through subprocess, and a grep found no network client code, eval/exec or shell=True. Some scripts change state: simctl_delete.py and simctl_erase.py remove or wipe simulators (both refuse to run without --yes), privacy_manager.py changes app permissions, and container.py can read and export an app's data container.
How do I install iOS Simulator in Antigravity?
The README does not mention Antigravity. Clone conorluddy/ios-simulator-skill and copy ios-simulator-skill/skills/ios-simulator-skill into .agents/skills/ios-simulator-skill in your project (or ~/.gemini/config/skills/ios-simulator-skill globally). Install Xcode 26+, Python 3.12+ and idb (brew install facebook/fb/idb), then ask "What skills do you have?" (Antigravity CLI: /skills).
Does it work on Windows or Linux?
No. It needs macOS 15 or newer with Xcode because it drives the iOS Simulator.
Is there an MCP version?
The README points to XC-MCP (github.com/conorluddy/xc-mcp) for an MCP server, and to xclaude-plugin for Xcode build tooling only.
What license is it under?
MIT (LICENSE.md, Copyright 2025 Conor Luddy).
Supported Platforms
Keep exploring this topic
Browse the full Antigravity skills directory for more source-linked skills with install steps and static safety reviews.
Related Skills
Playwright CLI
@microsoft
Microsoft's playwright-cli skill: an AI agent drives a real browser with short shell commands to test pages, mock requests and write Playwright tests.
Agent Browser
@vercel-labs
Vercel Labs' agent-browser skill: a native Rust CLI that lets AI agents drive Chrome via CDP with accessibility snapshots and @eN element refs.
Web Design Guidelines
@vercel-labs
Vercel's review skill: fetches Vercel's Web Interface Guidelines at run time, checks the files you name and lists violations as file:line findings.
Popular Skills
View All →Agent Manager
@sickn33
Manage multiple local CLI agents via tmux sessions.
Systematic Debugging
@sickn33
Debug systematically, not randomly. Find and fix bugs methodically.
Browser Automation (Playwright)
@sickn33
Expert browser automation for cleaning scraping and reliable testing.