Ios simulator
Reusable AI context and installable skills for coding agents, broadly installable via skills.sh.
npx -y skills add gokhanamal/ai-context --skill ios-simulatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Drive an iOS Simulator from plain-language instructions by discovering the project, launching the app, inspecting the visible UI, and interacting with elements through xcodebuildmcp. Use when the user wants an agent to open Simulator, navigate screens, tap buttons, type into fields, scroll, or capture screenshots and logs. ALSO auto-invoke this skill when you need to take a screenshot of a built iOS app, verify a UI component visually, or test a UI change you just implemented — any time seeing the running app in Simulator would confirm your work.
SKILL.md
5.9 KB, as published. Nobody here has run it
iOS Simulator
Use this skill for the requested simulator task:
$ARGUMENTS
This is a manual workflow skill. Treat every simulator action as deliberate, verify progress after each step, and pause before risky side effects.
Quick Start
- Run
xcodebuildmcp --helpfirst. - If the CLI is missing, stop and provide setup help instead of improvising.
- Discover the Xcode project or workspace only when the path is not already clear.
- Resolve the scheme only when it is not obvious.
- List, boot, or open the simulator only as needed.
- Prefer
xcodebuildmcp simulator build-and-runwhen the app needs to be launched. - Inspect the current screen with
snapshot-uibefore the first interaction and after every navigation-changing action. - In this repo, prefer
python3 skills/ios-simulator/scripts/ui_helper.py tap ...for repeated tap flows so the helper can resolve centers and retry fallbacks automatically. - Prefer taps by accessibility
idorlabel. Use coordinates only after a fresh UI snapshot confirms the target is visible. - Focus a field before using
type-text. - Capture screenshots or logs when the user asks for proof or when debugging is needed.
Workflow
1. Preflight
- Parse the task for four things:
- what app or repo to run
- which simulator, if any
- which screen flow to follow
- whether proof is required through screenshots or logs
- Run
xcodebuildmcp --help. - If it fails, stop and give short install guidance such as:
brew tap getsentry/xcodebuildmcpbrew install xcodebuildmcpnpm install -g xcodebuildmcp@latest
2. Discover The App
- If the repo does not clearly expose a single
.xcworkspaceor.xcodeproj, useproject-discovery discover-projects. - Prefer a workspace over a project when both exist for the same app.
- If the scheme is unknown, use
project-discovery list-schemes. - Ask the user only when there are multiple plausible app targets or schemes and the correct choice is not obvious.
3. Prepare The Simulator
- Use
simulator listto find devices when the task names a preferred device or when you need a simulator id. - Use
simulator bootonly for manual flows that need an already-booted device. - Use
simulator openwhen the Simulator app should be visible to the user. - Do not boot a simulator just because you can.
simulator build-and-runalready handles booting when needed.
4. Launch The App
- Prefer
simulator build-and-runfor the common path. - If the app is already built and only a relaunch is needed, use
simulator launch-app. - If the bundle id is unknown, resolve it with:
simulator get-app-pathproject-discovery get-app-bundle-id
5. Navigate And Interact
- Call
simulator snapshot-uibefore the first tap, type, swipe, or scroll. - If
skills/ios-simulator/scripts/ui_helper.pyis available, use it as the default fast path for taps on visible elements. - Match the requested UI target using visible accessibility ids or labels first.
- After any action that could change layout or navigation, run
snapshot-uiagain before the next interaction. - For navigation-changing or toggle actions, prefer helper invocations with
--expect-changeso failed taps retry automatically. - For text entry:
- focus the field with a tap
- verify focus if the UI output changes
- use
ui-automation type-text
- Prefer
ui-automation gesturefor common scrolling. - Use
ui-automation swipeonly when a preset gesture is not precise enough. - If an element is missing or not hittable:
- refresh the UI snapshot
- confirm the target is still expected on the current screen
- use coordinate fallback only when the element is visible and uniquely identified
6. Capture Proof And Recover
- Use
simulator screenshotorui-automation screenshotwhen the user asks for proof or when a failure needs visual confirmation. - Use simulator log capture when a flow crashes, stalls, or needs console evidence.
- When the flow fails, summarize:
- what step was attempted
- what the latest UI snapshot showed
- what recovery you tried
- what still blocks progress
Safety Rules
- Ask for confirmation before destructive or external actions, including delete, purchase, submit, sign-out, account changes, or anything that can alter real data or trigger network side effects.
- Do not erase simulators, reset location, clear app data, or change status bar state unless the user explicitly asks.
- Do not guess between multiple similarly named UI elements without confirming which one is intended.
- Do not use coordinate taps as the first choice when an accessibility id or label is available.
- Prefer explicit command flags over hidden profiles or session defaults unless the user specifically asks to rely on them.
Examples
/ios-simulator Open the simulator, run the current app, go to Settings, and tap Profile/ios-simulator Launch the app on iPhone 16, finish onboarding, type [email protected], and take a screenshot/ios-simulator Open Simulator, reproduce the crash after tapping Continue, and capture logs
Reference
For exact command patterns, helper usage, and recovery recipes, see references/command-recipes.md.