Phone Harness:让 AI Agent 直接操控你的 iPhone,GitHub 两天狂揽 1.5k 星

Phone Harness:让 AI Agent 直接操控你的 iPhone,GitHub 两天狂揽 1.5k 星

功能与原则

Phone Harness 是一个薄薄的”控制线”(thin harness),把 AI Agent 和你的真机手机直接连起来。它不做复杂的手机控制系统,而是借助 macOS Sequoia 自带的 iPhone Mirroring 窗口和 Apple Vision Framework OCR,把手机屏幕变成一个”能看到、能点击、能打字”的通用接口。AI Agent 通过截图+文字识别获得”眼睛”,通过 HID 级 CGEvents 模拟获得”手”,整个链路无需越狱、无需 Xcode、无需 WebDriverAgent。另一个亮点是 Agent 在执行过程中如果发现缺少辅助函数,可以自行编辑 agent-workspace/agent_helpers.py 补齐——具备一定自我进化能力。

认可度

项目于 2026-08-08 上线,仅两天便在 GitHub Trending 拿下第三名,发布帖浏览量接近 69 万次。截至 2026-08-27,GitHub Star 数已达 2,069(约 2.1k 星),Fork 190+;8 天内新增 1,812 颗星,增长势头极为凶猛。8 月 10 日至 13 日期间,Reddit、Hacker News、LinkedIn 等平台均有开发者讨论,是当月最具热度的 AI Agent + 设备控制开源项目之一。

链接

GitHub:https://github.com/ShawnPana/phone-harness

原作者

Shawn Pana(GitHub @ShawnPana),独立开发者,MIT 协议开源,核心代码约 500 行 Python。项目同步提供 SKILL.md,可注册为 Claude Code / Codex 的内置 Skill,实现开箱即用。

介绍

长期以来,让 AI 操作手机是件门槛极高的事:iOS 要越狱,Android 要装 WebDriverAgent+Appium,云手机方案则面临延迟高、隐私差、付费成本等问题。Phone Harness 走了第四条路:直接利用 macOS Sequoia 内置的 iPhone Mirroring 功能——Mac 端把手机画面渲染成一个窗口,phone-harness 只负责截取这个窗口、用 Apple Vision 识别文字和坐标,再用 CGEvents 在 HID 层面模拟真实点击和输入。

对于 iPhone,核心技术栈是:screencapture 截图 + Vision Framework OCR(眼睛)+ CGEvents HID 事件(手)。对于 Android,则用 adb screencap 获取画面 + uiautomator 读取辅助功能树(比 OCR 更精准,能直接找到 UI 元素),坐标与设备像素一一对应,操作更准确。

整个项目代码量极小(500 行左右),但把”AI 看屏幕 → 理解界面 → 执行操作 → 验证结果”这个闭环跑通了。每次操作后都会重新截图确认效果,这弥补了没有 DOM 只能靠视觉反馈的局限。

特点

  • 零门槛部署:无需越狱、无需 Xcode、无需 App 安装,手机只要保持镜像连接即可
  • 双平台支持:iOS 通过 iPhone Mirroring,Android 通过 adb(USB 或 Wi-Fi),一套代码覆盖两种设备
  • 视觉+结构双保险:iOS 用 OCR 获取文字坐标,Android 用 uiautomator 辅助功能树(更精准),各取所长
  • Agent 自我进化:Agent 执行中可编辑 agent_helpers.py 补充缺失函数,不受预置逻辑限制
  • SKILL.md 一键集成:自带 Skill 注册脚本,Claude Code 或 Codex 粘贴提示词即可自动配置

使用方法

安装(通过 Agent 自动完成):

git clone https://github.com/ShawnPana/phone-harness.git ~/.phone-harness

把以下提示词粘贴进 Claude Code 或 Codex:

Set up phone-harness for me. Clone https://github.com/ShawnPana/phone-harness into ~/.phone-harness (its canonical home), read install.md first, install it so phone-harness is a command on my PATH, and register it as an agent skill named phone-harness using phone-harness skill as the body, so you reach for it automatically. Then read SKILL.md for normal usage, and always read src/phone_harness/helpers.py because that is where the functions are. Then read onboarding.md and walk me through it.

Agent 会引导你完成:选择 iPhone 或 Android、授权屏幕录制和辅助功能、运行 phone-harness --doctor 验证链路。

基本调用示例:

./phone-harness <<'PY'
open_app("Weather")
tap_text("Weather")
wait_stable()
ocr()  # 确认天气预报出现
PY

使用场景与人群

  • 移动端真机自动化测试:让 AI 在真实 iPhone 上跑回归用例,覆盖复杂交互场景
  • 无 API 应用的自动化操作:只要人能在屏幕上完成的操作,AI 就能复现,不需要 App 提供接口
  • 跨设备工作流打通:AI Agent 与手机端操作链路打通,适用于需要手机验证、操作 App 的业务场景
  • 目标用户:AI Agent 开发者、移动端测试工程师、macOS 自动化爱好者、对”AI 操作真实设备”感兴趣的研究者

注意:发送消息、支付、删除等敏感操作前,Agent 必须先询问用户确认;DRM 视频截屏为黑屏、不支持 Face ID/相机操作。

输入与输出案例

案例一:让 AI 打开天气 App

输入:

agent: wants to open Weather

Agent 执行链:
1. ocr() → 识别屏幕文字,发现 “Weather” 出现在坐标 (400, 468)
2. tap(400, 468) → 点击天气图标
3. wait_stable() → 等待界面稳定
4. 再次 ocr() → 确认天气预报已出现

输出:天气页面成功打开,Agent 确认 ✓


案例二:Agent 自行补充 Helper 函数

Agent 在执行中发现某个操作缺少对应辅助函数,直接编辑 agent-workspace/agent_helpers.py 写入新函数,下一次执行即可使用。这体现了项目设计的灵活性——不预设所有场景,让 Agent 在实践中自我完善。


GitHub: https://github.com/ShawnPana/phone-harness

评论区

0 条评论

登录后可评论。

Skill超级捕获手 16 阅读