ios-simulator-browser — скилл для Codex: что делает и как установить
Транслирует iOS Simulator во встроенный браузер Codex и обновляет предпросмотр SwiftUI из пакетов Swift на лету. Пригодится для интерактивной проверки экранов без Xcode Canvas.
npx skills add openai/plugins --skill ios-simulator-browser -a codexЧто делает ios-simulator-browser
Скилл связывает симулятор iOS со встроенным браузером Codex через утилиту serve-sim. Идентификатор симулятора определяется через команду xcrun simctl list devices available. Картинка транслируется прямо в редактор. Перед стартом процесс убирает старые сессии, а при закрытии терминала срабатывает системная ловушка для остановки фонового помощника.
Для интерфейса запускается скрипт swiftui-preview-browser.mjs. Он создаёт временный проект за пределами пользовательского каталога и компилирует превью для выбранного таргета Package.swift. Изменения подхватываются на лету через замену динамической библиотеки без перезапуска программы. Инструмент поддерживает структуры PreviewProvider и макрос #Preview. Ваши файлы .xcodeproj и настройки сборки скрипт не модифицирует.
Ставьте этот скилл, если пишете интерфейс в изолированных пакетах Swift. Это ускоряет отладку верстки. Но для монолитных проектов Xcode без структуры пакетов он не годится.
Какие задачи решает
- транслировать экран симулятора iOS во встроенный браузер Codex
- просматривать компоненты SwiftUI без запуска Xcode Canvas
- обновлять превью интерфейса на лету через горячую перезагрузку dylib
- сохранять снимки экрана браузера для подтверждения верстки
Примеры запросов агенту
- Запусти трансляцию симулятора iOS в браузере Codex через serve-sim.
- Покажи превью компонента из Package.swift с горячей перезагрузкой.
- Открой превью StatusRowView_Previews в симуляторе и сделай снимок экрана для проверки.
Как установить ios-simulator-browser
1Через Skills CLI (Vercel)
npx skills add openai/plugins --skill ios-simulator-browser -a codex2Вручную: положить файлы
.agents/skills/ios-simulator-browser/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add openai/plugins --skill ios-simulator-browser -a claude-code2Вручную: положить файлы
~/.claude/skills/ios-simulator-browser/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/ios-simulator-browser/
Вручную: положить файлы
.cursor/skills/ios-simulator-browser/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install openai/plugins ios-simulator-browser2Вручную: положить файлы
.github/skills/ios-simulator-browser/SKILL.mdКомандой платформы
gemini skills install https://github.com/openai/plugins --path plugins/build-ios-apps/skills/ios-simulator-browserВручную: положить файлы
.devin/skills/ios-simulator-browser/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора201
Весь набор →Похожие
Вопросы о ios-simulator-browser
Как установить ios-simulator-browser в Codex?
Выполните команду npx skills add openai/plugins --skill ios-simulator-browser в терминале проекта. Скилл сохранится по пути .agents/skills/ios-simulator-browser/SKILL.md.
Что делает ios-simulator-browser?
Скилл транслирует экран запущенного симулятора iOS во встроенный браузер Codex и обеспечивает горячую перезагрузку экранов SwiftUI. Он компилирует временный проект вне репозитория и подменяет код без перезапуска симулятора.
Меняет ли скилл исходный проект Xcode?
Нет, инструмент не редактирует файлы .xcodeproj, схемы или Package.swift. Скрипт разворачивает изолированный хост-проект в отдельном каталоге.
Исходный текст
SKILL.md · MIT
---
name: ios-simulator-browser
description: Mirror an iOS Simulator into the Codex in-app browser and render SwiftUI previews from importable Swift packages in that simulator with hot reload. Use when a user wants to watch or interact with an iOS app in the browser, see a SwiftUI preview outside Xcode Canvas, iterate live on a preview, or capture browser-visible simulator proof.
---
# iOS Simulator Browser
## Browser Workflow
1. Obtain an explicit Simulator UDID from the existing iOS build/run workflow or from `xcrun simctl list devices available`.
2. Start `serve-sim` in a long-running terminal pinned to that simulator. Clean up any tracked stale helper for this simulator before starting, and install a trap so the helper is cleaned up when this terminal exits:
```bash
SIM="<simulator-udid>"
cleanup_serve_sim() {
npx --yes serve-sim@latest --kill "$SIM" >/dev/null 2>&1 || true
}
trap cleanup_serve_sim EXIT INT TERM HUP
cleanup_serve_sim
npx --yes serve-sim@latest "$SIM"
```
3. Open the exact local preview URL printed by `serve-sim` in the Codex in-app browser.
4. Verify that a real frame is rendering before reporting success. A loaded page alone is not proof that the simulator stream is healthy.
- Keep the terminal alive while the browser mirror is in use. When finished, stop the terminal and wait for it to exit so the trap runs.
- If the terminal disappeared or did not exit cleanly, run `npx --yes serve-sim@latest --kill "$SIM"` before starting another mirror for that simulator.
- Never run an unscoped `serve-sim --kill`; another thread may own a different simulator mirror.
## SwiftUI Preview Workflow
Use the bundled launcher when the requested previews live in an importable Swift package. Point it at the package manifest and select the target whose previews should be displayed. It generates a disposable host project outside the user's source tree, installs and launches that host in Simulator, and watches the package for edits.
```bash
node <skill-root>/scripts/swiftui-preview-browser.mjs \
/absolute/path/to/Package.swift \
--package-target "<target>" \
--device "<simulator-udid>"
```
- Watch mode is enabled by default. On a Swift package source edit, the launcher rebuilds a generated dylib and hot-swaps it into the running host without relaunching the app.
- The generated host shows every preview variant discovered in the selected Swift Package target with in-simulator page controls. To show a subset instead, pass `--preview-filter <regex[, ...]>`; it matches display names and code identifiers such as `StatusRowView_Previews`.
- Once the launcher prints the selected Simulator UDID, start `serve-sim` for that same UDID and open its printed URL in the in-app browser.
## Support Boundary
- Support Swift Package-backed `PreviewProvider` and `#Preview` declarations through the generated host.
- Do not edit the user's `.xcodeproj`, `.xcworkspace`, `Package.swift`, schemes, or build settings to force preview support.
## Proof
For browser or preview QA, capture a browser screenshot showing the simulator frame. For hot reload QA, also report the launcher's `hot reloaded package preview ... in pid ...` output and show the changed frame after editing.
© OpenAI · MIT · openai/plugins