iphone-use icon iphone-use
Open source · macOS + iPhone Mirroring · Rust

把 computer-use
搬到 iPhone 上 Computer-use, but for the iPhone.

让 AI 智能体(和你的浏览器)看见并操作一台真实的 iPhone。 浏览器里 WebRTC 实时遥控;agent 用一套 HTTP API 截屏、读 UI 元素树、点按、输入 —— 中文一次到位。全程跑在你自己的 Mac 上,不经过任何第三方云。

真机演示:agent 通过元素层把整段中文一次性打进备忘录
真机实拍 · agent 直接打入
整段中文,零乱码

60 秒装好

一条命令装守护进程;再给你的 agent 装上技能,它就会自己操作手机了。

# 1) Mac 上装守护进程(自动签名 + LaunchAgent,授权一次永久有效) $ curl -fsSL https://raw.githubusercontent.com/leeguooooo/iphone-use/main/install.sh | sh # 2) 教会任何支持 skills 的 agent(Claude Code 等)驾驶你的手机 $ npx skills add leeguooooo/iphone-use # 3) (可选)上 L2 元素层 —— 元素树 + 按标签点按 + 中文直通 $ ./scripts/setup-wda.sh

三层输入架构

同一套 agent API,守护进程自动选最优路径 —— 快的更快,兜底永远在。

L1 · 动词

Shortcuts / App Intents

通过一个受管的桥接快捷指令直达 iOS 原生 API:电量、健康数据、定位…… 结构化 JSON 回传,最快、确定性,无需视觉。

L2 · 元素

元素树(WebDriverAgent)

读 iOS 自己的辅助功能树,按元素标签点按、把 Unicode 直接送进输入框 —— 不抢 Mac 光标、无坐标漂移、中文直通。人拿着手机时 agent 依然能看能操作。

L3 · 像素

镜像 + CGEvent

基于 iPhone 镜像的屏幕流和系统级输入注入 —— 万能兜底,任何画面都能看、能点。也是人类的浏览器远程桌面(WebRTC,低延迟)。

中文输入:直通 vs 乱码

同一台手机、同一个拼音键盘,两条路径的真实结果(均为真机记录):

❌ 传统像素路径(keycode 被拼音输入法吞掉) 我爱上 typed 不要按 AI阿根廷鸥鸟啊 real iPh…
✅ iphone-use L2 元素层(Unicode 直送输入框) 你好世界!这条备忘录由 iphone-use 的 L2 层直接输入 —— 中文一次到位。

给 agent 的 API

三个动作就能开车:看(元素树或截图)→ 操作 → 验证。也有现成的 MCP 服务器(9 个工具)直接接 Claude。

# 看 —— UI 即文本,比截图便宜一个量级 $ curl -H "$AUTH" $HOST/agent/elements {"elements":[{"kind":"Button", "label":"新备忘录","rect":[369,885,38,38]}…]}
# 操作 —— 按标签点按 / 中文直输 $ curl -X POST $HOST/agent/input \ -d '{"type":"tap","label":"新备忘录"}' $ curl -X POST $HOST/agent/input \ -d '{"type":"text","text":"你好世界"}'

为什么不是又一个截图轮询工具

🔒 完全自托管

守护进程跑在你的 Mac 上,画面不出家门。密码 + bearer 鉴权,登录限速。

⚡ WebRTC 硬编码

VideoToolbox H.264 + WebRTC,浏览器里看手机接近原生延迟;跨网络走 Cloudflare TURN。

🤖 MCP + Skill

Claude Desktop / Claude Code 一行配置接入;npx skills add 让 agent 学会「视觉一次 → 脚本永久」。

🧠 UI 即文本

/agent/elements 把屏幕变成元素列表 —— 推理成本骤降,标签直接拿来点按。

🛠 真机验证的工程细节

滚动必须是滚轮事件、镜像只收 keycode、焦点竞争、TCC 签名……每个坑都写进了文档

📦 一次授权,永久有效

稳定本地签名身份 —— 升级重装不再重新授权屏幕录制/辅助功能。