serve-sim CLI

Команда npx serve-sim выводит симулятор iOS в браузер и позволяет агенту нажимать, свайпать, вводить текст и подменять камеру

  • 2 905 ★ репозитория
  • Последний коммит
  • Apache-2.0
CLI

Расширенный доступ

Почему такой уровень

  • Захватывает экран симулятора и открывает его как веб-поток; при доступе из сети или через туннель его видят и другие
  • Отправляет симулятору касания, текст и кнопки, а команды разрешений меняют права приложения на камеру, фото и уведомления
  • Подмена камеры внедряет библиотеку в процесс приложения через DYLD_INSERT_LIBRARIES, `repair-input` перезапускает SpringBoard
Все причины и проверки

evanbacon/serve-sim

Установка

Ручная установка

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 и закрывает запущенные приложения.

Обсуждение

Вопросов и отзывов пока нет.

Плагин DeepSeek Harness: iOS Simulator и iPhone по USB прямо в диалоге, 22 инструмента управления

ПлагинШирокий доступ351Звезды репозитория

Скилл со скриптами для сборки iOS-приложений и управления симулятором через дерево доступности, с экономным выводом для агента

СкиллРасширенный доступ1,3 тыс.Звезды репозитория

MCP-сервер для iOS Simulator: тапы, свайпы, ввод текста, дерево доступности, скриншоты, видео и управление приложениями

MCP-серверРасширенный доступ2,2 тыс.Звезды репозитория

Дает агенту управление iOS-симуляторами, Android-эмуляторами, ТВ и Electron-приложениями: тапы, потоки, профилирование и отладка React Native

CLIШирокий доступ3,1 тыс.Звезды репозитория

MCP-сервер, который принимает команды на обычном языке и управляет iOS-симулятором через idb: приложения, нажатия, логи

MCP-серверРасширенный доступ342Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
serve-sim (эта запись)нет2 905
iOS Simulator Skillнет1 302скилл со скриптами для сборки и управления симулятором через дерево доступности, serve-sim выводит живой поток в браузер
iOS Simulator MCP Serverнетне нужна2 201MCP-сервер с тапами, свайпами и скриншотами, 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  ┌─────────┐

Сообщить о проблеме

Foxx AIserve-sim
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.