serve-sim
GitHub用于在终端中流式传输和控制已启动的 Apple iOS 模拟器,提供构建、安装、启动应用及通过浏览器预览进行点击、输入、手势等操作的能力。
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


