# IOS Simulator Preview

Show a live iOS Simulator in the dashboard's Browser side panel while building or...

- Repository: https://github.com/kirodotdev/KiroCrew (4711 stars)
- Category: Testing
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add kirodotdev/KiroCrew --skill ios-simulator-preview -g -a claude-code -y`
Codex: `npx skills add kirodotdev/KiroCrew --skill ios-simulator-preview -g -a codex -y`
Cursor: `npx skills add kirodotdev/KiroCrew --skill ios-simulator-preview -g -a cursor -y`
Gemini CLI: `npx skills add kirodotdev/KiroCrew --skill ios-simulator-preview -g -a gemini-cli -y`

## Description

Show a live iOS Simulator in the dashboard's Browser side panel while building or testing an iOS app. Use when the user asks to preview an iOS/SwiftUI app, run an app in the simulator, "show me the app", test in the iOS simulator, or watch you drive an iOS app. macOS + Xcode only.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# iOS Simulator Preview (Browser-tab mirror)

Mirror a running iOS Simulator into KiroCrew's Browser side panel so the user
watches the app, and you driving it, live next to the chat.

Architecture, end to end, all local: **simulator → `serve-sim` (loopback HTTP)
→ the `kirocrew:preview` marker → Browser panel iframe.** Nothing leaves the
machine. This mirrors OpenAI Codex's `ios-simulator-browser` approach (same
`serve-sim` mirror) with one substitution: Codex opens the URL in its in-app
browser via a browser tool, while KiroCrew's panel is driven by the hidden
preview marker (see the `web-preview` skill).

## Requirements

- **macOS only.** Apple's simulator runs nowhere else. On Linux/Windows say so
  and stop, do not attempt a fallback.
- Xcode with an iOS platform installed, and the license accepted. `xcrun simctl
  list devices` must work.
- Node/`npx`. The launcher pins `--registry=https://registry.npmjs.org` because
  a local npm config may default to an authenticated internal registry (which
  401s on a public package). The `serve-sim` version is **pinned** in the
  launcher (`SERVE_SIM_VERSION`) rather than floated, so a start never
  auto-executes an unreviewed release; bumping it is a deliberate change.
- First `start` takes a couple of minutes (npx download + device boot); the
  launcher gives up after 240s with a JSON error naming the log. Later
  starts are fast.

## Resolve the launcher path once

```bash
SKILL_DIR="${KIROCREW_HOME:-$HOME/.kiro/crew}/skills/ios-simulator-preview"
SKILL_DIR="${SKILL_DIR/#\~/$HOME}"   # a literal ~ in KIROCREW_HOME is not expanded inside quotes
```

Call the script by path; do not `cd` into the skill folder.

The rest: https://github.com/kirodotdev/KiroCrew/blob/HEAD/src/kiro_crew/builtin_skills/ios-simulator-preview/SKILL.md
