Build + run on iOS Simulator

SkillDev tools

This 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.

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 build against the simulator's specific UDID.
  • Reads BUILT_PRODUCTS_DIR / WRAPPER_NAME / PRODUCT_BUNDLE_IDENTIFIER from -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-dir via $(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 --eval invocation. 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