serve-sim
GitHub用于在终端流式控制 iOS 模拟器,实现无需 Xcode 的构建、安装、启动及交互(点击/输入/手势),提供浏览器预览与辅助功能检查。
Trigger Scenarios
Install
npx skills add openchamber/openchamber --skill serve-sim -g -y
SKILL.md
Frontmatter
{
"name": "serve-sim",
"description": "Use when working with the OpenChamber iOS Simulator app without opening Xcode - boot\/install\/launch the Capacitor iOS app, start a browser stream, tap\/type\/gesture\/rotate, inspect accessibility, or hand a simulator URL to the user."
}
serve-sim
Use serve-sim to stream and control a booted Apple Simulator from the terminal. It captures the simulator framebuffer, serves a browser preview, and exposes CLI controls for taps, typing, gestures, hardware buttons, rotation, memory warnings, permissions, camera injection, and accessibility inspection.
Scripted Workflow
Run the discrete scripts from the repository root so each step has an observable completion boundary:
-
Build the simulator app:
bun run mobile:build:ios:simulator -
Boot if needed, install, and launch:
bun run mobile:sim:run -
Start the detached browser stream:
bun run mobile:sim:serveSurface the returned JSON
url; it is the only authoritative stream address. -
Stop helpers when finished unless the user asks to keep them running:
bun run mobile:sim:kill
Completion means the app launched, the returned stream URL was surfaced, requested interactions were verified, and helpers were stopped or intentionally left running.
Manual Controls
- Tap normalized coordinates:
bunx serve-sim tap 0.5 0.5 - Type focused text:
bunx serve-sim type "hello" - Hardware home:
bunx serve-sim button home - Rotate:
bunx serve-sim rotate portrait - List streams:
bunx serve-sim --list -q - Accessibility tree:
curl http://localhost:3100/ax
Run direct CLI commands from packages/mobile (the binary lives in that package; plain serve-sim inside with-mobile-env.mjs from elsewhere fails with command not found).
Coordinates are normalized 0..1, not pixels. Prefer tap for simple taps; do not emulate taps using separate gesture begin/end commands because that can register as long press.
Preconditions
- macOS host.
- Xcode installed; use
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developerifxcode-selectpoints at CommandLineTools. - Node 18+.
- At least one simulator can be booted with
xcrun simctl.
Use the scripts above instead of opening Xcode for build/install/launch. Consume JSON output rather than parsing human output. If accessibility lookup cannot identify a target, report the missing target instead of guessing coordinates.
Version History
-
2db90f7
Current 2026-08-20 04:55
优化了 Agent 技能指导说明;此前版本新增了单命令移动模拟器开发循环及更新文档。
- 74b1bd8 2026-07-25 10:37


