← all repositories
EvanBacon/serve-sim

Your iOS Simulator, now with a URL bar

It turns a booted iOS Simulator into a 60 FPS browser stream with two-way control, letting AI agents and remote teammates interact with it without touching your Mac.

2.6k stars TypeScript Coding Assistants
serve-sim
Velocity · 7d
+11
★ / day
Trend
cooling
star history

What it does

serve-sim spawns a Swift helper that grabs the framebuffer of any booted iOS Simulator through simctl io, then pipes it out as an MJPEG stream paired with a WebSocket control channel. A React preview UI sits on top, giving you a local web endpoint where you can watch, tap, swipe, and type on the simulator—or tunnel it elsewhere for remote access. It works with iOS, iPad, and Apple Watch simulators without any Xcode plugin or instrumentation inside your app.

The interesting bit

The camera-injection feature is surprisingly surgical: a host-side helper writes BGRA frames into a POSIX shared-memory region, while an injected dylib swizzles AVFoundation inside the simulator process so the app reads synthetic feeds instead of the stub camera. You can hot-swap sources between a placeholder animation, a looping video file, or a live webcam without relaunching the app.

Key highlights

  • Streams 60 FPS video to the browser with gesture, keyboard, and hardware-button forwarding.
  • Ships an Agent Skill that teaches Claude, Cursor, Codex, and Gemini CLI how to drive the simulator via CLI commands.
  • Provides Connect-style middleware to embed the preview UI into existing dev servers like Metro, Vite, or Express.
  • Supports camera injection with hot-swappable sources: file, webcam, or programmatic placeholder.
  • Works with iOS, iPad, and Apple Watch simulators with no Xcode plugin or app instrumentation required.

Caveats

  • Requires macOS with Xcode command line tools; the camera helper needs macOS 14+.
  • Text input is limited to the US keyboard layout.

Verdict

Worth a look if you’re building agent-driven mobile workflows or need to share a simulator state with a remote team. If you don’t own a Mac or work outside the Apple ecosystem, there’s nothing to see here.

Frequently asked

What is EvanBacon/serve-sim?
It turns a booted iOS Simulator into a 60 FPS browser stream with two-way control, letting AI agents and remote teammates interact with it without touching your Mac.
Is serve-sim open source?
Yes — EvanBacon/serve-sim is open source, released under the Apache-2.0 license.
What language is serve-sim written in?
EvanBacon/serve-sim is primarily written in TypeScript.
How popular is serve-sim?
EvanBacon/serve-sim has 2.6k stars on GitHub and is currently cooling off.
Where can I find serve-sim?
EvanBacon/serve-sim is on GitHub at https://github.com/EvanBacon/serve-sim.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.