Build + run on iOS Simulator
SkillDev toolsThis skill should be used when the user invokes "/xcode-run-simulator" to build the current Xcode project, install the app on an iOS Simulator, and launch it.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Build + run on iOS Simulator skill
What this skill tells your AI
The instructions your AI receives, as published by xenodium/emacs-skills in skills/xcode-run-simulator/SKILL.md and read by ahel’s review.
Build the Xcode workspace or project under the current working directory and launch it on an iOS Simulator. If a simulator is already booted, that one is used. Otherwise the latest available iPhone simulator is booted automatically and Simulator.app is brought to the foreground.
How to run
The shared agent-skill-xcode.el lives in the sibling xcode-shared directory at skills/xcode-shared/agent-skill-xcode.el in the emacs-skills plugin. All four /xcode-* skills load it from there.
emacsclient --eval "(progn (load \"/path/to/skills/xcode-shared/agent-skill-xcode.el\" nil t) (agent-skill-xcode-run-simulator :project-dir \"$(pwd)\"))"
The function:
- Locates the workspace/project and picks a scheme (same heuristic as
/xcode-build-simulator). - Picks a simulator: first booted iOS simulator if any; else the latest available iPhone (boots it and opens Simulator.app).
- Runs
xcodebuild buildagainst the simulator's specific UDID. - Reads
BUILT_PRODUCTS_DIR/WRAPPER_NAME/PRODUCT_BUNDLE_IDENTIFIERfrom-showBuildSettings -json. - Installs (
xcrun simctl install) and launches (xcrun simctl launch). - Returns a multi-line status string with the bundle id, simulator UDID, .app path, install result, and launch result. On build failure, returns the same error format as
/xcode-build-simulator.
Rules
- Pass the agent's current working directory as
:project-dirvia$(pwd). - The shared elisp lives under
xcode-shared/agent-skill-xcode.el— load it from there. - Run via the Bash tool with a single
emacsclient --evalinvocation. Builds can take minutes; consider extending the Bash timeout if known to be slow. - Report the returned status string verbatim. It already contains everything the user needs.
- Do not try to choose a different simulator if one is already booted — the whole point is reuse.
- If the build fails, point at the truncated tail in the output; do not re-run the build.
Signals
- GitHub stars
- 135
- Forks
- 17
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
xcode-run-simulator- Source
- github.com/xenodium/emacs-skills