ios-simulator-browser

Mirror an iOS Simulator into a browser and render SwiftUI previews with hot reload.

25|1|Updated Feb 10, 2026
One-click install
npx skills add https://github.com/wisdom-in-a-nutshell/agents --skill ios-simulator-browser-wisdom-in-a-nutshell
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ios-simulator-browser
Source: https://github.com/wisdom-in-a-nutshell/agents/tree/main/plugins-source/external/build-ios-apps/skills/ios-simulator-browser
Command: npx skills add https://github.com/wisdom-in-a-nutshell/agents --skill ios-simulator-browser-wisdom-in-a-nutshell

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires serve-sim, and includes scripts (resource) components.

What problem does it solve? Viewing and iterating on an iOS app or SwiftUI preview normally requires Xcode Canvas or manual simulator interaction. This Skill streams an iOS Simulator into the Codex in-app browser and renders SwiftUI previews from Swift packages with hot reload, so you can watch and iterate on UI changes without leaving the browser. ## Core Features & Use Cases - Simulator Browser Mirroring: Streams a live iOS Simulator frame into the in-app browser using serve-sim pinned to an explicit simulator UDID, with safe cleanup of stale helper processes. - SwiftUI Preview Hosting: Generates a disposable host app outside your source tree that discovers and displays every PreviewProvider and #Preview variant in a selected Swift Package target, with optional regex filtering. - Hot Reload: Watches the package for edits, rebuilds a generated dylib, and injects it into the running host without relaunching the app. - Use Case: You are editing a SwiftUI view in a Swift package and want to see each change live in the browser. Launch the preview host, mirror the simulator, and watch the frame update on every save. ## Quick Start Use the ios-simulator-browser skill to render the previews from my Swift package target in the in-app browser with hot reload enabled.

Frequently Asked Questions about ios-simulator-browser

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I mirror an iOS Simulator in a browser?▼

Start serve-sim pinned to an explicit simulator UDID with npx serve-sim@latest <udid>, then open the printed local URL in the in-app browser. Verify a real frame renders before considering the stream healthy, and keep the terminal alive while mirroring.

How do I render SwiftUI previews outside Xcode Canvas?▼

Run the swiftui-preview-browser script with the path to Package.swift, a --package-target, and a --device UDID. It generates a disposable host app, installs it in the simulator, and displays every preview variant discovered in that target.

Does SwiftUI preview hot reload work without relaunching the app?▼

Yes. On a source edit, the launcher rebuilds a generated dylib and injects it into the running host via a reload manifest, keeping the same PID. The launcher logs a hot reloaded message confirming the process was not relaunched.

Can I preview Swift packages with dynamic library products?▼

No. Targets exported only by dynamic library products are unsupported because hot reload only replaces the generated preview plugin dylib, leaving an already-loaded dynamic framework stale. Use a target exported by a static or automatic library product.

Why is my simulator browser stream showing a blank page?▼

A loaded page alone does not prove the stream is healthy; verify a real simulator frame renders. If the helper terminal exited uncleanly, run serve-sim --kill scoped to that simulator UDID before starting a new mirror.