Dev & Engineering ios-simulatorxcodecapacitormobile-testingbrowser-streamaccessibility-inspectionbun

serve-sim — iOS Simulator Remote Control from the Terminal

Boot, install, stream, and control a Capacitor iOS app in the Apple Simulator from your terminal — no Xcode needed.

FollowSkills review · FSRS-2.0
Use with care
52/ 100 5-point scale 2.6 / 5
1 2 3 4 5 6
1Trust15 / 25 · 3.0/5

Skill controls only the local simulator, stream bound to localhost, no sign of credential access or data exfiltration; instructs stopping helpers and reporting missing targets rather than guessing coordinates — reasonable transparency. Deducted: no documented confirmation, isolation, or rollback for sensitive operations such as framebuffer streaming, camera injection, and permission modification.

2Reliability9 / 20 · 2.3/5

SKILL.md is self-consistent with mobile:build:ios:simulator, sim:run, sim:serve, and sim:kill in package.; documents DEVELOPER_DIR, Node version, package-path constraints, and failure-feedback expectations. Deducted: no committed tests covering the skill's key paths, no diagnosable failure examples for abnormal input; static review cannot verify runnability.

3Adaptability9 / 15 · 3.0/5

Trigger conditions in the description are specific (driving the iOS simulator without Xcode, tap/type/gesture, accessibility inspection), and preconditions clearly bound macOS + Xcode + Node 18+. Deducted: non-fit ranges (e.g., Android emulator, CI) undeclared, no Chinese-language support, and availability of the bun/Apple toolchain in target environments unevaluated.

4Convention9 / 15 · 3.0/5

Well-structured docs: scripted workflow, manual controls, normalized-coordinate notes, complete preconditions; MIT license, repo versioning, changelog scripts, and security policy. Deducted: no per-skill version, changelog, or known-limitations list; maintenance responsibility only indirectly inferable; publisher unverified by registry.

5Effectiveness6 / 15 · 2.0/5

Claimed core value (build/launch/stream/control the simulator from terminal) matches the repo's script system, offers real marginal value over opening Xcode, and JSON output consumption improves direct usability. Deducted: static review cannot verify output usability, the multi-step build flow is costly, and no representative output evidence exists.

6Verifiability4 / 10 · 2.0/5

Key claims trace to in-repo scripts and docs, which is auditable primary material; the repo has test/CI infrastructure overall, but no committed tests or third-party execution evidence cover serve-sim's key paths. Deducted: no independent reproduction, single evidence type, thin coverage.

Evidence confidence:Low Reviewed Sep 09, 2026 Reviewed revision f8b929edf989
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
Before you use it
  • This is a static source review; no scripts were executed and runtime behavior is independently unverified.
  • The skill targets a macOS-only flow requiring Xcode and bun and is unusable elsewhere; the publisher is unverified and identity unknown.
  • Security boundaries for the browser stream and camera injection (auth, isolation, rollback) are not fully documented — confirm local exposure before use.
  • The skill has no independent version or changelog; when updating, re-verify commands against repository scripts.
Review evidence [1][2][3][4][5][6][7][8][9]
See the full review method →

What does this skill do, and when should you use it?

serve-sim is one of 18 Agent Skills bundled in the openchamber/openchamber repository (a desktop/web interface for the OpenCode AI agent, MIT-licensed), located at .agents/skills/serve-sim/. It targets mobile developers who want simulator workflows that normally require the Xcode GUI to run entirely from the terminal: building the simulator app, booting/installing/launching it, starting a live browser stream, and running CLI controls for taps, typing, gestures, rotation, hardware buttons, permissions, and accessibility inspection. Work runs through discrete Bun scripts with observable completion boundaries, and JSON output is authoritative.

Following the SKILL.md instructions, the skill: builds the simulator app with bun run mobile:build:ios:simulator; boots, installs, and launches it with bun run mobile:sim:run; starts a detached browser stream with bun run mobile:sim:serve and surfaces the JSON url (the only authoritative stream address); runs manual controls via bunx serve-sim (tap/type/button home/rotate/--list) using normalized 0..1 coordinates; fetches the accessibility tree via curl http://localhost:3100/ax; and stops helpers with bun run mobile:sim:kill when finished.

  1. A mobile developer building a Capacitor iOS app who wants the agent to handle build/install/launch without opening Xcode.
  2. A QA engineer automating UI smoke tests by scripting taps, typing, and gestures via CLI and verifying results.
  3. A developer on a remote collaboration session who wants a live simulator view in the browser to demo to teammates.
  4. An accessibility auditor checking an app's accessibility tree at http://localhost:3100/ax.
  5. An agent-driven end-to-end acceptance flow: launch the app, perform interactions, verify completion, then clean up helpers.

What are this skill's strengths and limitations?

Pros
  • Full build/install/launch simulator workflow without ever opening Xcode.
  • Live browser streaming makes remote viewing and demos easy.
  • Fine-grained CLI controls: taps, typing, gestures, rotation, hardware buttons, permissions, camera injection, accessibility inspection.
  • Scripted, step-by-step execution with observable completion boundaries and authoritative JSON output.
  • Normalized coordinates (0..1) reduce dependence on exact screen resolution.
Limitations
  • macOS host only, with Xcode and a bootable simulator required.
  • Depends on Bun and the openchamber repo's mobile build environment (a Capacitor project); not for arbitrary iOS projects.
  • If accessibility lookup cannot identify a target, the correct behavior is to report the missing target — there is no automatic fallback.
  • Direct CLI commands only work from packages/mobile, a path constraint that is easy to trip over.
  • No test suite or usage evidence outside this repository is provided in the source.

How do you install this skill?

The skill ships inside the openchamber/openchamber repository at .agents/skills/serve-sim/. The README does not document a standalone install for this one skill; the collection's overall install options are Desktop releases, the VS Code extension, and the openchamber CLI (Node.js 22+). How to copy this specific skill folder into an Agent Skills client directory is not documented in the source.

How do you use this skill?

On macOS, ensure Xcode and Node 18+ are installed (set DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer if xcode-select points at CommandLineTools). From the repository root run, in order: bun run mobile:build:ios:simulator (build); bun run mobile:sim:run (boot/install/launch); bun run mobile:sim:serve (start stream; surface the returned JSON url); then controls like bunx serve-sim tap 0.5 0.5, type "hello", button home, rotate portrait as needed; curl http://localhost:3100/ax for the accessibility tree; finish with bun run mobile:sim:kill. Caveats: direct CLI commands must run from packages/mobile (elsewhere they fail with command not found), and do not emulate taps with separate gesture begin/end commands — that can register as long press.

More skills from this repository

All from openchamber/openchamber

Design & Frontend

OpenChamber Theme System Skill

Enforces semantic theme tokens, shared button/icon contracts, and keyboard-navigation rules when modifying OpenChamber UI — no hardcoded colors or reinvented components.

Dev & Engineering

OpenChamber Change Discipline

Enforces "smallest complete change, narrowest sufficient validation" discipline when modifying the OpenChamber codebase, preventing local fixes from ballooning into speculative rewrites.

Dev & Engineering

OpenChamber Performance Engineering Skill

Eliminate structural waste before micro-optimizing: a measurement-driven methodology for interaction, render, polling, cache, and high-volume data paths.

Dev & Engineering

Locale UI Patterns — OpenChamber UI Localization Rules

Enforces that every user-facing OpenChamber string gets a real translation in every language dictionary immediately — no English placeholders, ever.

Design & Frontend

OpenChamber Drag-to-Reorder Skill

A battle-tested @dnd-kit playbook that fixes the hardest drag-to-reorder bugs: variable-width items, wrapping layouts, and touch/mobile gesture conflicts.

Dev & Engineering

OpenChamber Relay Transport Skill

Build WebSocket, SSE, and streaming endpoints that actually work over OpenChamber's end-to-end encrypted relay tunnel, where desktop-only testing silently hides failures.

Dev & Engineering

OpenChamber UI/API Decoupling Rules

Enforces clean data-access boundaries in OpenChamber's shared UI: official APIs via the SDK, app capabilities via RuntimeAPIs — no hardcoded URLs, tokens, or transport assumptions.

Dev & Engineering

Clack CLI Patterns

Defines consistent interactive prompt, --quiet, and -- output contracts for OpenChamber terminal commands, so policy validation always precedes presentation in every run mode.

Dev & Engineering

OpenChamber Desktop Shell Skill

Gives AI agents the correct architecture boundaries and security rules when changing OpenChamber's Electron main/preload code, IPC, or packaging.

Design & Frontend

OpenChamber Settings UI Patterns

A skill that makes AI agents build OpenChamber Settings pages from shared primitives, with localization and search-registry rules enforced instead of hand-rolled markup.

Dev & Engineering

OpenChamber Sync State Invariants

A rulebook that enforces state ownership and failure semantics when agents change session sync, event reducers, polling, and caches — preventing destructive data loss and state corruption.

Related skills