如果你在用 Claude Code、Cursor 或 OpenClaw 这类 AI 编程助手开发移动端应用,你一定遇到过这个痛点:AI 可以帮你写代码,但它看不到运行效果,也点不了按钮。你只能自己手动跑模拟器截图,然后把结果描述给 AI,效率大打折扣。
最近 GitHub 上一个叫 sim-use 的项目火了——不到一周斩获 400+ stars。它只用一条 CLI 命令,就让 AI Agent 能像人一样观察和操控 iOS 模拟器和 Android 设备屏幕。
sim-use 是什么?
sim-use 是一个跨平台命令行工具,由 lycorp-jp 团队开发,基于 Apache 2.0 协议开源。它通过 Apple Accessibility API 和 Android AccessibilityService 来获取屏幕元素树,再通过模拟器 HID 管线来注入点击、滑动、输入等操作。
一句话概括:给 AI Agent 装上眼睛和手,让它能看懂 App 画面,并像真人一样操作。
核心亮点
- Token 高效:屏幕描述比原始 Accessibility JSON 树精简约 16 倍,LLM 只需几百个 token 就能理解整个页面
- AI 原生设计:不是为人类测试者设计的工具,而是为 AI Loop 量身打造——别名缓存点击(
@N)、结构化 JSON 输出、内置 agent skill - 速度快:每个 UDID 自动起后台 daemon,首次调用后每次 observe-act 循环仅需约 300ms
- 真跨平台:同一套命令(
ui、tap、swipe、type、paste)同时驱动 iOS 模拟器和 Android 模拟器/真机 - 无遗漏:完整遍历 Accessibility 树,包括 WebView、系统浮层、嵌入内容——不会有元素被静默跳过
技术架构
sim-use 用 Swift 编写,要求 macOS 14+。底层分为两条链路:
- iOS 端:链接 Meta idb 的 XCFrameworks,通过 Apple Accessibility API 获取元素树,通过模拟器 HID 管线注入触控事件
- Android 端:通过 adb 安装桥接 APK,该 APK 暴露 AccessibilityService 树和 HTTP 输入注入接口,经
adb forward隧道通信
设备 ID 的形状决定走哪条链路:UUID 格式走 iOS,emulator-5554 或 serial 号走 Android。
安装与快速上手
安装
推荐通过 Homebrew:
brew tap lycorp-jp/tap
brew install lycorp-jp/tap/sim-use
也可以从源码编译(需要 Xcode):
git clone https://github.com/lycorp-jp/sim-use.git
cd sim-use
./scripts/build.sh dev
make build
.build/debug/sim-use --help
安装 Agent Skill(让 AI 学会用它)
# 自动检测已安装的 AI 客户端
sim-use init
# 指定客户端
sim-use init --client claude
sim-use init --dest ~/.claude/skills
# 仅查看 skill 内容,不安装
sim-use init --print
基础用法
先获取当前设备 ID:
sim-use devices
# 输出:B34FF305-5EA8-412B-943F-1D0371CA17FF
然后执行 Observe → Act 循环:
# 1. 观察屏幕——获取结构化元素列表
sim-use ui
# 输出类似:
# App: Settings 402x874
# [Top y<120]
# @1 StaticText "Settings"
# [Content y=120..754]
# @5 SearchField "Search"
# @9 Button "General"
# ...
# 2. 操作——用别名点击
sim-use tap @9 # 点击 "General"
# 3. 验证——再看一眼屏幕
sim-use ui
完整命令一览
| 命令 | 功能 | 示例 |
|---|---|---|
ui | 获取屏幕元素树 | sim-use ui --json |
tap | 点击元素 | sim-use tap @5 / tap --label "General" |
swipe | 滑动 | sim-use swipe --start-x 100 --start-y 500 --end-x 100 --end-y 200 |
type | 文本输入 | sim-use type 'Hello World!' |
paste | 粘贴(IME 安全的 Unicode) | sim-use paste 'ABC 日本語 🎉' |
button | 硬件按键 | sim-use button home / button siri |
screenshot | 截图 | sim-use screenshot --output screen.png |
record-video | 录屏 | sim-use record-video --fps 15 --output demo.mp4 |
app-state | 查看/重置 App 状态 | sim-use app-state --bundle-id com.example.app |
keyboard-state | 检测软键盘是否弹出 | sim-use keyboard-state --json |
gesture | 手势预设 | sim-use gesture scroll-up / gesture swipe-from-left-edge |
进阶特性
多种元素选择方式
| 选择器 | 示例 | 适用场景 |
|---|---|---|
@N 别名 | tap @9 | 速度最快,缓存自上次 ui |
#<id> | tap #settingsButton | 最稳定,不受布局变化影响 |
--label | tap --label "General" | 脚本化流程,配合 --wait-timeout |
-x -y | tap -x 100 -y 200 | 兜底方案,无需 AX 数据 |
批量操作(iOS)
把多个步骤打包成一次调用,共用同一个 HID Session 和 AX 快照,显著降低多步骤流程的往返开销:
sim-use ios batch --device $UDID \
--step "tap --id SearchField" \
--step "type 'hello world'" \
--step "key 40"
# 带等待的批量操作
sim-use ios batch --device $UDID \
--wait-timeout 5 \
--step "tap --id LoginButton" \
--step "tap --id WelcomeMessage"
IME 安全的 Unicode 粘贴
sim-use paste 不走键盘 HID,而是通过模拟器剪贴板 + Cmd+V 注入文本,完美支持中文、日文、emoji 等 HID 键码表无法表达的字符。还提供了 --via-menu 选项通过 iOS 编辑菜单的「粘贴」按钮来注入,适合在软键盘模式下使用。
内置 Viewer
sim-use 自带了本地 Web 查看器,将 ui --json 渲染成 SVG 画布,可视化 Accessibility 树,帮助开发者定位盲点:
sim-use viewer
无需 Node 或 npm——页面内嵌在二进制中,开箱即用。
典型应用场景
- AI 辅助移动端开发:Claude Code / Cursor 写好 UI 代码后,自动启动模拟器截图验证,发现 bug 后自行修复
- 自动化测试:结合 LLM 编写自然语言测试用例,无需维护脆弱的 UI 元素定位器
- 移动端 RPA:让 AI Agent 替你完成批量注册、数据录入等重复性操作
- 无障碍测试:利用 Viewer 和 Accessibility 树,快速发现 App 的无障碍盲点
- CI/CD 集成:在 GitHub Actions 或 Jenkins 中运行模拟器 + sim-use,实现端到端自动化验证
小结
sim-use 解决了 AI Agent 与移动端之间的「最后一公里」问题。当你的 AI 助手不仅能写代码、还能直接在模拟器里看到效果并交互时,移动端开发的效率会有一个质的飞跃。
这个项目目前还非常年轻(6月26日创建),但设计思路清晰、文档详尽、跨平台支持到位,是 AI 驱动的移动开发工具链中值得关注的一环。
GitHub 地址:https://github.com/lycorp-jp/sim-use
许可证:Apache 2.0
语言:Swift(macOS 14+)
















cqlbgzs@163.com 1年前0
d好879445037@qq.com 2年前0
购买了 无法下载Alexcc 3年前0
强大Alexcc 3年前0
看不了教程Alexcc 3年前0
雷刺下载Alexcc 3年前0
下载Alexcc 3年前0
下载dsa456159 3年前0
下载