开发与工程 ios-simulatorxcodecapacitormobile-testingbrowser-streamaccessibility-inspectionbun

serve-sim — 终端里的 iOS 模拟器遥控器

无需打开 Xcode,就能在终端中启动、安装、串流并操控 Apple 模拟器里的 Capacitor iOS 应用。

FollowSkills 评估 · FSRS-2.0
谨慎使用
52/ 100 五分制 2.6 / 5
1 2 3 4 5 6
1信任安全15 / 25 · 3.0/5

技能仅控制本机模拟器,流地址绑定 localhost,无凭据读写或外发数据的迹象;要求停止辅助进程、报告缺失目标而非猜测坐标,透明度尚可。扣分:对 framebuffer 流的访问控制、camera injection、权限修改等敏感操作的确认与隔离机制未在文件中说明,回滚路径不完整。

2可靠稳定9 / 20 · 2.3/5

SKILL.md 与 package. 中引用的 mobile:build:ios:simulator、sim:run、sim:serve、sim:kill 脚本一一对应,自洽;明确了 DEVELOPER_DIR、Node 版本、包路径限制(二进制仅在 packages/mobile 可用)与失败反馈要求。扣分:未见覆盖该技能关键路径的测试或对异常输入的可诊断失败样例,静态审阅无法验证可运行性。

3适用触发9 / 15 · 3.0/5

触发条件在 description 中写得很具体(不打开 Xcode 操作 iOS 模拟器、tap/type/gesture、无障碍检查),前置条件明确限定 macOS + Xcode + Node 18+,边界清晰。扣分:未声明不适配范围(如 Android 模拟器、CI 环境),无中文支持说明,bun 与 Apple 工具链依赖对环境的可用性未评估。

4规范维护9 / 15 · 3.0/5

文档结构良好:分步脚本流程、手动控制、归一化坐标说明、前置条件齐全,许可证为 MIT,仓库有版本号、changelog 脚本与安全政策。扣分:技能本身无独立版本、变更记录或已知限制清单,维护责任仅能间接推断自仓库,发布方未经注册表验证。

5有效结果6 / 15 · 2.0/5

声称的核心价值(终端内构建、启动、流式控制模拟器)与仓库脚本体系一致,相较手动打开 Xcode 有真实边际价值,并要求消费 JSON 输出提高直接可用性。扣分:静态审阅无法验证输出是否可直接使用,多步骤构建流程成本较高,无代表性输出证据。

6证据核验4 / 10 · 2.0/5

主要声明可追溯到仓库内脚本与文档,属于可审计的一手材料;仓库整体有测试与 CI 基础设施,但未见覆盖 serve-sim 关键路径的提交测试或第三方执行证据。扣分:无独立复现,证据类型单一,覆盖面薄。

证据充分度: 评估于 2026年9月9日 审查版本 f8b929edf989
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 本评估为静态源码审阅,未执行任何脚本,运行行为未经独立验证。
  • 技能面向 macOS 专用流程,依赖 Xcode 与 bun,其他环境不可用;发布方未经注册表验证,身份未知。
  • browser 流与 camera injection 等功能的安全边界(鉴权、隔离、回滚)在文件中未充分说明,使用前请自行确认本机暴露面。
  • 技能无独立版本与变更记录,更新时需对照仓库脚本核对命令是否仍然有效。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

serve-sim 是 openchamber/openchamber 仓库(一个 OpenCode AI 代理的桌面/Web 界面项目,MIT 许可,含 18 个技能)中的一个 Agent Skill,位于 .agents/skills/serve-sim/。它面向移动开发者,把通常需要 Xcode 图形界面完成的模拟器工作流搬进终端:构建模拟器应用、启动/安装/运行、开启浏览器实时串流,并可通过 CLI 执行点击、输入、手势、旋转、硬件按键、权限和可访问性检查等操作。整个过程通过 Bun 脚本分步执行,每一步都有明确的完成边界,输出以 JSON 为准。

读取 SKILL.md 指令后,技能会:用 bun run mobile:build:ios:simulator 构建模拟器应用;用 bun run mobile:sim:run 启动、安装并运行应用;用 bun run mobile:sim:serve 启动分离的浏览器串流并返回 JSON 中的 url(唯一权威串流地址);用 bunx serve-sim 执行 tap/type/button home/rotate/--list 等手动控制,坐标使用 0..1 归一化;通过 curl http://localhost:3100/ax 获取可访问性树;结束时用 bun run mobile:sim:kill 停止辅助进程。

  1. 移动开发者正在开发 Capacitor iOS 应用,希望代理代替自己完成构建、安装、启动而不打开 Xcode。
  2. 测试工程师需要自动化 UI 冒烟测试,通过 CLI 模拟点击、输入和手势并验证结果。
  3. 远程协作场景下,开发者想在浏览器中实时查看模拟器画面并给同事演示。
  4. 可访问性审计人员想通过 http://localhost:3100/ax 检查应用的 accessibility 树。
  5. AI 代理驱动的端到端验收流程:代理启动应用、执行交互、验证完成、清理辅助进程。

这个 Skill 有哪些优点和局限?

优点
  • 无需打开 Xcode 即可完成构建、安装、启动的完整模拟器工作流。
  • 提供浏览器实时串流,便于远程查看和演示。
  • 细粒度 CLI 控制:点击、输入、手势、旋转、硬件按键、权限、摄像头注入、可访问性检查。
  • 脚本化分步执行,每步有明确完成边界,且以 JSON 输出为权威。
  • 归一化坐标(0..1)降低了对具体屏幕分辨率的依赖。
局限
  • 仅限 macOS 主机,且要求已安装 Xcode 和可启动的模拟器。
  • 依赖 Bun 和 openchamber 仓库的移动端构建环境(Capacitor 项目),不适用于任意 iOS 项目。
  • 可访问性查找失败时需报告缺失目标,技能本身不提供自动回退定位。
  • 直接 CLI 命令只能在 packages/mobile 目录运行,路径约束容易踩坑。
  • 源材料未提供测试套件或除该仓库外的使用证据。

如何安装这个 Skill?

该技能随 openchamber/openchamber 仓库分发,位于 .agents/skills/serve-sim/。README 未提供单独安装该技能的步骤;仓库整体提供 Desktop 安装包、VS Code 插件和 openchamber CLI(Node.js 22+)等安装方式。源材料未说明如何将该技能文件夹复制到特定 Agent Skills 客户端目录。

如何使用这个 Skill?

在 macOS 上确保已安装 Xcode 和 Node 18+(若 xcode-select 指向 CommandLineTools,可设 DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer)。在仓库根目录依次运行:bun run mobile:build:ios:simulator(构建);bun run mobile:sim:run(启动/安装/运行);bun run mobile:sim:serve(启动串流,向用户展示返回的 JSON url);需要时用 bunx serve-sim tap 0.5 0.5、type "hello"、button home、rotate portrait 等控制;curl http://localhost:3100/ax 查看可访问性树;结束后 bun run mobile:sim:kill 停止辅助进程。注意:直接 CLI 命令需在 packages/mobile 目录下运行,否则会报 command not found;不要用分离的 gesture begin/end 模拟点击,可能被识别为长按。

同仓库的其他 Skills

均来自 openchamber/openchamber

设计与前端

OpenChamber 主题系统技能

在修改 OpenChamber UI 时,强制使用语义化主题令牌、共享按钮/图标契约与键盘导航规范,避免硬编码颜色和重复实现。

开发与工程

OpenChamber 变更纪律

在修改 OpenChamber 代码库时,强制执行“最小完整变更 + 最窄级别验证”的工程纪律,防止局部修复演变成投机性重写。

开发与工程

OpenChamber 性能工程技能

在优化单条操作之前先消除结构性浪费:为交互、渲染、轮询、缓存与大规模数据路径提供以测量为准的性能优化方法论。

开发与工程

Locale UI Patterns —— OpenChamber 界面文案国际化规范

为 OpenChamber 项目编写或修改任何用户可见文案时,确保每个语言的字典都拿到真正的翻译,而不是英文占位符。

设计与前端

OpenChamber 拖拽排序技能(drag-to-reorder)

一份沉淀自真实项目的 @dnd-kit 拖拽排序实践指南,专门解决变宽条目、换行布局和移动端触摸交互中最容易踩的坑。

开发与工程

OpenChamber 中继传输技能

为 OpenChamber 的端到端加密中继隧道正确编写 WebSocket、SSE 与流式端点,避免只在桌面直连下能通过的隐性中继缺陷。

开发与工程

OpenChamber UI/API 分层规范

为 OpenChamber 共享界面代码划定数据访问边界:官方走 SDK、自有能力走 RuntimeAPIs,避免硬编码 URL、令牌与传输假设。

开发与工程

Clack CLI 模式规范

为 OpenChamber 终端命令定义统一的交互提示、--quiet 与 -- 输出契约,确保任何运行模式下策略校验先行、行为确定一致。

开发与工程

OpenChamber 桌面外壳技能

在修改 OpenChamber 的 Electron 主进程、preload、IPC 或打包逻辑时,为 AI 代理提供正确的架构边界与安全规则。

设计与前端

OpenChamber 设置界面模式指南

在修改 OpenChamber 设置页面、对话框和搜索行为时,强制代理使用共享原语与本地化、搜索注册约定,避免各页面各自造轮子。

开发与工程

OpenChamber 同步状态不变量守则

在改动会话同步、事件归约器、轮询与缓存逻辑时,一套强制执行的状态所有权与失败语义规范,防止数据误删与状态错乱。

相关 Skills