serve-sim CLI
Команда npx serve-sim выводит симулятор iOS в браузер и позволяет агенту нажимать, свайпать, вводить текст и подменять камеру
- 2 905 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Захватывает экран симулятора и открывает его как веб-поток; при доступе из сети или через туннель его видят и другие
- Отправляет симулятору касания, текст и кнопки, а команды разрешений меняют права приложения на камеру, фото и уведомления
- Подмена камеры внедряет библиотеку в процесс приложения через DYLD_INSERT_LIBRARIES, `repair-input` перезапускает SpringBoard
Установка
- Работает в
Ручная установка
npx serve-simУстановка не нужна: команда запускает предпросмотр на порту 3200. Нужны macOS, инструменты командной строки Xcode и Node.js 20 или новее.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Захватывает экран симулятора и открывает его как веб-поток; при доступе из сети или через туннель его видят и другие
- Отправляет симулятору касания, текст и кнопки, а команды разрешений меняют права приложения на камеру, фото и уведомления
- Подмена камеры внедряет библиотеку в процесс приложения через DYLD_INSERT_LIBRARIES, `repair-input` перезапускает SpringBoard
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
serve-sim запускает маленький помощник на Swift, который снимает кадры симулятора через `simctl io` и отдает их потоком в браузер, а поверх показывает интерфейс предпросмотра на React. Через тот же канал идут жесты, кнопки, поворот и ввод текста, поэтому симулятором можно управлять с другой машины или туннелем. Для агента в репозитории лежит скилл: он описывает форму JSON для жестов, подсказывает порядок действий и перечисляет подводные камни. Отдельные команды включают подмену камеры для выбранного приложения файлом, видео или веб-камерой, переключатели отладки CoreAnimation, имитацию предупреждения о памяти и выдачу разрешений приложению. Поддерживаются iPhone, iPad и Apple Watch, а для iPhone Duo есть команда `fold`.
Для кого. Для мобильных разработчиков на macOS, которые хотят дать Claude Code, Codex или Cursor управление симулятором iOS и смотреть на него из браузера.
Подходит, если
- Агент собрал приложение, и вы просите его нажать кнопки, свайпнуть и пройти сценарий в запущенном симуляторе
- Нужно показать симулятор коллеге или заказчику по ссылке: поднимите `npx serve-sim` и пробросьте адрес через туннель
- Приложению нужен кадр с камеры для теста: `serve-sim camera <bundle-id> --file фото.png` подставит картинку или видео без реального устройства
- Проверяете производительность интерфейса: команда `ca-debug` включает отладочные слои вроде offscreen или blended
- Разрабатываете на Expo или другом dev-сервере и хотите встроить предпросмотр симулятора прямо в него через `serve-sim/middleware`
Не подходит, если
- У вас Android-эмулятор: для него используется `adb`, serve-sim работает только с симуляторами Apple
- Нужно собрать приложение или поставить его в симулятор: для этого есть `xcodebuild` и `xcrun simctl install`
- Компьютер на Intel: бинарный помощник собран только под Apple Silicon
- Нужен отладчик React Native с состоянием Redux и сетью: serve-sim показывает экран, а не внутренности приложения
Пример запроса к агенту
Запусти serve-sim, нажми кнопку «Войти» в симуляторе и сделай скриншот экрана после входаОграничения
Работает только на macOS с инструментами командной строки Xcode и Node.js 20 или новее. Бинарный помощник собран под Apple Silicon, на Intel не запустится. Для подмены камеры нужен macOS 14 или новее. В Xcode 27 ввод требует, чтобы Device Hub был запущен и окно симулятора находилось на переднем плане, а терминалу, возможно, придется выдать доступ в «Универсальном доступе». Команда `repair-input` перезапускает SpringBoard и закрывает запущенные приложения. Поддержка iPhone Duo опирается на закрытые бета-интерфейсы и модель из Xcode, которую после обновлений SDK надо проверять заново.
Как отключить. Остановите потоки командой `serve-sim --kill` и закройте вкладку предпросмотра. Скилл удалите из каталога скиллов агента, а запись плагина — командой `/plugin` в Claude Code. Состояние помощника хранится в `$TMPDIR/serve-sim/`, а подмена камеры снимается командой `serve-sim camera --stop-webcam` и перезапуском приложения.
Частые вопросы
Как запустить serve-sim?
Выполните `npx serve-sim`: он найдет загруженный симулятор и откроет предпросмотр на http://localhost:3200. Конкретное устройство можно указать по имени, например `serve-sim "iPhone 16 Pro"`. Фоновый режим включает флаг `--detach`, список потоков показывает `--list`.
Как поставить скилл serve-sim в Claude Code?
Выполните `bunx add-skill EvanBacon/serve-sim` или в Claude Code `/plugin marketplace add EvanBacon/serve-sim`. Скилл научит агента командам для жестов, кнопок, поворота, камеры и разрешений. В README он назван совместимым с Grok, Claude Code, Cursor, Codex CLI и Gemini CLI.
Можно ли смотреть симулятор с другого компьютера?
Да, симулятор раздается по локальной сети или через туннель к удаленному Mac, и зрители работают с ним как с локальным. Автор сначала советует проверить размещение у себя, и лишь потом выставлять адрес наружу.
Как подменить камеру в приложении?
Выполните `serve-sim camera com.acme.MyApp` с идентификатором приложения. По умолчанию идет анимированная заглушка, ключ `--file` подставляет изображение или видео, а `--webcam` берет живую камеру Mac. Источник меняется на лету командой `camera switch`. Требуется macOS 14 или новее.
Что делать, если ввод в симулятор не работает?
В Xcode 27 Device Hub мог отключить старые службы касаний и клавиатуры. Выполните `serve-sim repair-input -d <udid>`, затем перезапустите serve-sim и откройте приложение заново. Учтите: команда перезапускает SpringBoard и закрывает запущенные приложения.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыПлагин DeepSeek Harness: iOS Simulator и iPhone по USB прямо в диалоге, 22 инструмента управления
Скилл со скриптами для сборки iOS-приложений и управления симулятором через дерево доступности, с экономным выводом для агента
MCP-сервер для iOS Simulator: тапы, свайпы, ввод текста, дерево доступности, скриншоты, видео и управление приложениями
Скилл учит агента управлять iOS-симуляторами, Android-эмуляторами и телефонами по USB через консольную утилиту simvyn
Дает агенту управление iOS-симуляторами, Android-эмуляторами, ТВ и Electron-приложениями: тапы, потоки, профилирование и отладка React Native
MCP-сервер, который принимает команды на обычном языке и управляет iOS-симулятором через idb: приложения, нажатия, логи
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| serve-sim (эта запись) | нет | 2 905 | ||
| iOS Simulator Skill | нет | 1 302 | скилл со скриптами для сборки и управления симулятором через дерево доступности, serve-sim выводит живой поток в браузер | |
| iOS Simulator MCP Server | нет | не нужна | 2 201 | MCP-сервер с тапами, свайпами и скриншотами, serve-sim работает как CLI и дает потоковое видео |
| DSH iOS Simulator | нет | 351 | плагин DeepSeek Harness |
Коротко о README
README представляет serve-sim как аналог `npx serve` для симуляторов Apple и сразу показывает команду запуска. Перечислены возможности: поток в браузере, жесты, перенаправление логов, перетаскивание файлов в симулятор и поддержка Watch, iPad и iOS. Затем идут требования, особенности Xcode 27, раздел про iPhone Duo со складыванием и справочник по командам. Отдельные разделы объясняют подмену камеры, подключение через `.claude/launch.json` для Claude Code Desktop, интеграцию с Expo и встроенное в dev-сервер промежуточное ПО с проксированием для удаленных зрителей. В конце схема работы и лицензия Apache-2.0.
Бейдж для README
Исходный SKILL.md
--- name: serve-sim description: Control and stream a running iOS, iPad, or Apple Watch Simulator with npx serve-sim. Use for simulator preview, taps, gestures, hardware buttons, rotation, camera injection, permissions, accessibility, and CoreAnimation debug. license: Apache-2.0 --- # serve-sim Drive an Apple Simulator (iOS, iPad, Apple Watch) from an agent using the [serve-sim](https://github.com/EvanBacon/serve-sim) CLI. serve-sim spawns a Swift helper that captures the simulator framebuffer via `simctl io`, exposes it as an MJPEG stream plus a binary WebSocket input channel, and serves a React preview UI on top. This skill teaches an agent the exact CLI surface, the gesture JSON shape, the gotchas, and the recommended workflows. ## When to use - The user wants an agent to **tap, swipe, drag, pinch, or send hardware buttons** to a running Apple Simulator. - The user wants to **stream a simulator** to a browser (local, LAN, or tunneled) for review or remote control. - The user wants to **inject a synthetic camera feed** (file, webcam, or animated placeholder) into a specific app on the simulator. - The user wants to **toggle CoreAnimation debug overlays** (off-screen rendering, blended layers, slow animations) for performance work. - The user wants to **simulate a memory warning** or **rotate the device** programmatically. - The user wants to **read the simulator's accessibility tree** to find UI elements without pixel hunting. - The user wants to **grant, revoke, or reset an app's privacy permissions** — camera, photos, location, contacts, or **push notifications**. ## When NOT to use - Android emulators → use `adb shell` tooling. - Building or installing an iOS app → use `xcodebuild` or `xcrun simctl install`. - React Native in-app runtime debugging (Redux state, network inspection, component tree) → use rn-debugger tooling. - Real iOS hardware devices → use `xcrun devicectl` or Xcode. ## Prerequisites Before any other action, verify the host satisfies these. If something is missing, tell the user exactly what to install — do not proceed. | Requirement | Check command | Why | |---|---|---| | macOS host | `uname -s` returns `Darwin` | serve-sim only runs on macOS | | Xcode CLI tools | `xcrun --version` exits 0 | `simctl` is the underlying simulator driver | | Node.js ≥18 | `node --version` ≥18 | serve-sim is an npm package run via `npx` | | macOS 14+ (optional) | `sw_vers -productVersion` ≥14 | Required ONLY for `camera` subcommand | A bundled helper script is available: `scripts/check-prereqs.sh`. Run it; if it exits non-zero, surface the message to the user. A booted simulator is required for most subcommands. Check with `xcrun simctl list devices booted`. If none are booted, tell the user to open Xcode → Simulator or to run `xcrun simctl boot <UDID>`. ## Mental model ```text ┌──────────────┐ simctl io ┌─────────────────┐ MJPEG / WS ┌─────────┐