Skip to content
Development
Skill

/expo-ios-simulator

Run and drive an Expo / React Native app on the iOS Simulator. Pick an execution mode (Expo Go, dev client, Storybook-mobile, web-on-mobile), build and install a dev client, and clear the recurring Expo/RN prompts that block automation: the push-token alert that stacks until the

From plugin
simiancraft-skills
823 skills4 agents

Claude Code

$ npx -y skills add simiancraft/simiancraft-skills --skill expo-ios-simulator --agent claude-code

SKILL.md

expo-ios-simulator.SKILL.md
name: expo-ios-simulator
description: >-
  Run and drive an Expo / React Native app on the iOS Simulator. Pick an execution
  mode (Expo Go, dev client, Storybook-mobile, web-on-mobile), build and install a
  dev client, and clear the recurring Expo/RN prompts that block automation: the
  push-token alert that stacks until the overlay darkens the screen, the
  "Open in app?" deep-link dialog, the dev menu, and the element-inspector trap.
  Sits ON TOP of ios-simulator; failures route to ios-simulator-triage.
  Project-agnostic; discovers bundle id and scheme from the app config. Use for
  "run my Expo app on the simulator", "load a dev client", or "drive Storybook on iOS".
status: complete
sources:
  - https://docs.expo.dev/develop/development-builds/introduction/ (Expo Go vs development builds; the fixed native set)
  - "the reference files below carry the per-command provenance (Expo docs, Apple, AXe --help)"

Expo on the iOS Simulator (layer on top of ios-simulator)

Everything here is Expo / React-Native **runtime** behavior, not the simulator itself (that is **ios-simulator**, which boots devices, captures screenshots, and grants permissions). This skill gets an Expo app *running* on a booted simulator and clears the Expo-specific overlays that stall automation. For "make the app driveable" see **mobile-accessibility**.

Before anything

A booted simulator and AXe installed; that is **ios-simulator** `prerequisites.md`. This skill discovers everything app-specific (bundle id, scheme) from the app config; it never hardcodes a project's nouns.

The loop

1. **Pick an execution mode** (`references/execution-modes.md`): Expo Go, a development build (dev client), Storybook-mobile, or web-on-mobile. The choice is forced by whether the app has custom native code. 2. **Get the app on the device.** Pure-JS app: Expo Go installs and launches it for you (`references/expo-go.md`). Anything with native modules or a config plugin: build and install a dev client (`references/development-builds.md`), then serve Metro and connect by deep link. 3. **Clear the recurring prompts** (`references/known-prompts.md`): the "Open in app?" deep-link dialog, the push-token alert that re-fires and stacks on each reload, and the dev menu; avoid the element-inspector trap. Clear each by accessibility, never coordinates. 4. **Drive it.** The driving primitive is **ios-simulator** `references/driving.md` (`axe tap --id` / `--label`); what makes the app addressable is **mobile-accessibility**.

Rules

  • Discover bundle id and scheme from the app config; never hardcode them.
  • **Never drive a bundling app.** Two readiness gates sit between "launched" and "driveable":

Metro serving (`curl /status`) and the first bundle finishing (the tree grows labels); both recipes are in `references/development-builds.md`. Taps dispatched before them report success and do nothing.

  • Clear every Expo dialog and overlay by accessibility (`axe tap --label`), not coordinates.
  • Every factual claim here and in the references cites a primary source (Expo, Apple, AXe's

own help); a prior-art skill is never a source.

Out of scope

  • The simulator itself, its chrome, capture, and permissions: **ios-simulator**.
  • What makes an app addressable (accessibility props): **mobile-accessibility**.
  • The dev menu's items and React Native DevTools (shared with Android): **expo-developer-tools**.
  • Build, runtime, and automation failures: **ios-simulator-triage**.

References

  • `references/execution-modes.md`: the four ways to run an Expo app and when to use each.
  • `references/expo-go.md`: the Expo Go path and its fixed-native-set limit.
  • `references/development-builds.md`: building and connecting a dev client.
  • `references/known-prompts.md`: the recurring dialogs, the dev menu, and the inspector trap.
Read more
@simiancraft
Ships withsimiancraft-skills

Claude Code skills for the full arc of a change: farm to table, with receipts. Curated Claude Code skills and agents from simiancraft. Most skill collections are grab bags. This one has a spine: it carries a change through its whole life.

823 skills4 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
8
Star history of simiancraft/simiancraft-skills on GitHub, a chart by star-history.com

Other skills on simiancraft-skills.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about expo-ios-simulator.

Which coding agents can use expo-ios-simulator?
expo-ios-simulator installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.