EvanBacon/serve-sim
GitHub: EvanBacon/serve-sim
serve-sim 将 Apple 模拟器通过浏览器视频流和 WebSocket 暴露出来,使开发者可以在本地或远程与模拟器进行交互,并支持与 AI Agent 工具集成。
Stars: 1721 | Forks: 79
# serve-sim
Apple Simulators 的 `npx serve`。
托管你的模拟器,以便与 Codex、Cursor 或 Claude Desktop 等 Agent 工具配合使用 —— 支持本地使用、通过局域网使用,或托管在远程 Mac 上并穿透到任何地方。
```
npx serve-sim
# → 预览地址为 http://localhost:3200
```
https://github.com/user-attachments/assets/fbf890f4-c8c7-4684-82be-d677b8a188f8
`serve-sim` 会启动一个小型的 Swift 辅助程序,该程序通过 `simctl io` 捕获模拟器的 framebuffer,将其作为 MJPEG stream + WebSocket 控制通道公开,并在上层提供 React 预览 UI。它适用于任何已启动的 iOS Simulator —— 无需 Xcode 插件,也无需在你的应用中进行检测。
## 功能
- 浏览器中完整的 60 FPS 视频流。
- 从底部滑动以返回主屏幕。
- 按住 option 键可执行双指缩放等手势操作。
- 模拟器日志会转发到浏览器,供 browser-use MCP 工具读取。
- 拖放视频和图像以将它们添加到模拟器设备中。
- 键盘命令和快捷键会转发到模拟器,包括使用 CMD+SHIFT+H 返回主屏幕。
- 支持 Apple Watch、iPad 和 iOS。
## 为什么?
托管的模拟器可能很难测试,`serve-sim` 让你能够在本地先测试托管的基础设施,从而加快迭代速度。当你准备好远程托管模拟器时,只需穿透提供的 URL,用户就可以像在本地设备上运行一样与模拟器进行交互。
我开发 Expo 框架,但这个工具与 React Native 完全无关,可用于你需要的任何 iOS 交互。
## 安装
需要配备 Xcode command line tools (`xcrun simctl`) 的 macOS 以及 Node.js 18+。运行 CLI **不**需要 `bun`。摄像头注入使用的是为 macOS 14+ 构建的主机端辅助程序。
## CLI
```
serve-sim [device...] Start preview server (default: localhost:3200)
serve-sim --no-preview [device...] Stream in foreground without a preview server
serve-sim gesture '
' [-d udid] Send a touch gesture
serve-sim button [name] [-d udid] Send a button press (default: home)
serve-sim type [-d udid] Type text via the simulator keyboard
(US keyboard only; also --stdin / --file )
serve-sim rotate [-d udid]
portrait | portrait_upside_down |
landscape_left | landscape_right
serve-sim ca-debug 标签:iOS模拟器, MITM代理, React, SOC Prime, Swift, Syscalls, 开发工具, 移动开发, 自动化攻击, 远程桌面