Phone Harness:不越狱、不装 App,让你的 AI Agent 直接操控真机 - 公读文章,Phone Harness, AI Agent, 手机自动化, Claude Code, iPhone 镜像 - 简介:Phone Harness 是一个开源工具,让 Claude Code 或 Codex 等 AI Agent 直接控制你的真实手机。iPhone 走 Mac 镜像窗口,Android 走 adb,无需越狱、无需 Xcode、手机端零安装。AI 能看屏幕、点按钮、打字,并读取结果。

您当前正在浏览的是本站SEO版网页

请点击确认

马上提升浏览体验

Phone Harness:不越狱、不装 App,让你的 AI Agent 直接操控真机

GITHUB 移动端 阅读:0
10/9/2026 3:51:50 PM

简介:Phone Harness 是一个开源工具,让 Claude Code 或 Codex 等 AI Agent 直接控制你的真实手机。iPhone 走 Mac 镜像窗口,Android 走 adb,无需越狱、无需 Xcode、手机端零安装。AI 能看屏幕、点按钮、打字,并读取结果。

关键字:Phone Harness, AI Agent, 手机自动化, Claude Code, iPhone 镜像

说明 网址
GitHub 仓库 https://github.com/ShawnPana/phone-harness
PyPI 包 https://pypi.org/project/phone-harness/
核心逻辑

Phone Harness 借用的是桌面系统已有的官方通道。iPhone 走 macOS Sequoia 的 iPhone Mirroring 窗口,Android 走 adb。它不做“手机端 agent”,而是在 Mac 上把手机变成一个“能看到、能点击”的外设。


手机自动化的旧路为何走不通

让 AI 操控手机的想法并不新鲜。但长期以来,移动端自动化只有三条路,每条都有硬伤。

越狱。破坏安全沙盒,代价是设备失去保修、系统更新受阻,且仅适用于极少数愿意折腾的用户。

WebDriverAgent。需要在 Xcode 中配置签名证书,安装测试应用,维护一条完整的工具链。一旦遇到依赖手机号短信验证、真实指纹支付、或仅在 App Store 上架的闭源商业应用,传统方案便彻底瘫痪。

模拟器。没有真实 SIM 卡、没有真实硬件,跑不出真实场景。

Phone Harness 选择了一条不同的路:不碰手机内部。iPhone 端它只借用一个系统窗口,Android 端它只使用 adb 这条工业标准的调试通道。


iPhone:在镜像窗口中“隔空”操控

macOS Sequoia 引入的 iPhone Mirroring 把手机屏幕渲染成 Mac 上的一个普通窗口,同时把 Mac 的鼠标和键盘输入转发为手机上的触控。

Phone Harness 把这个窗口当作整个传输通道:

眼睛:截取镜像窗口的图像,调用 Apple Vision 框架做 OCR。每一行可见文字都会带上一个可点击的中心坐标。作者称其为“穷人的 DOM”。

手:通过 CGEvents 在 HID 层面投递合成事件——点击、长按、拖拽、滑动、滚动、文字输入,以及应用自身的快捷键(Cmd+1 回主屏、Cmd+2 应用切换器、Cmd+3 Spotlight)。

验证:再截一次图。没有 DOM 可以断言,截图就是唯一的真相。

核心代码约 500 行

整个 iPhone 链路的 Python 核心代码大约只有 500 行,分为 mirror(窗口与输入)、ocr(文字识别)、helpers(预载函数)、admin(健康检查)、run(CLI)几个模块。它不建立一个常驻守护进程,每次调用重新查询窗口位置和屏幕内容,是一次完整的自包含执行。


Android:adb 是一条更直接的路

在 Android 上,Phone Harness 的路径更简洁,因为不需要窗口。

adb exec-out screencap -p 抓取当前帧。手机自身的无障碍层级树(Accessibility Tree)直接返回原生控件的语义文本和无障碍标签,精确且无 OCR 误读。adb shell input tap 和 input swipe 完成触控。

支持 USB 直连和 Wi-Fi 无线连接。Android 端在 macOS、Linux、Windows 上均可使用,是 Mac 之外的默认平台。

两端的 helper 函数是同一套。phone-harness config set platform ios|android 切换默认设备。


把手机变成 Agent Skill

Phone Harness 最聪明的设计在于它的分发方式:让 Agent 自己安装自己。

你只需要把一段 setup prompt 粘贴到 Claude Code 或 Codex 中:

Set up phone-harness for me. Clone https://github.com/ShawnPana/phone-harness
into ~/.phone-harness, 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. Then read `onboarding.md` and walk
me through it.

Agent 会读取 install.md,克隆仓库,安装 CLI,然后通过 phone-harness skill 把自己的技能定义写入 ~/.claude/skills/phone-harness/SKILL.md。之后,Agent 会自动“知道”自己有操控手机的能力。

SKILL.md 是给 Agent 看的日常指南,helpers.py 是完整的函数清单。用法是 heredoc 风格的 Python 代码块:

phone-harness <<'PY'
open_app("Notes")
tap_text("New Note")
type_text("hello from the harness")
print([o["text"] for o in ocr()][:10])
PY

Helpers 已经预导入。所有坐标是全局屏幕坐标,ocr() 返回的每个字符串都自带可点击的中心点。


实测:一句话打一辆 Waymo

README 中最具说服力的演示是一段视频。

任务:“Buy me a Waymo to Delah Coffee from my current location.”

Agent 在终端中收到指令,随后:唤醒手机 → 打开 Waymo 应用 → 搜索目的地 → 选择车型 → 确认下单。全程自动操作真机完成。

这个演示的关键不在于“AI 能点按钮”,而在于它操作的是真实的应用、真实的账户、真实的支付流程。这是模拟器和 Web 自动化无法触达的场景。


作者明确划下的边界

操作真实手机意味着真实的风险。Phone Harness 在 SKILL.md 中把“不该用”放在了“怎么用”前面:

如果任务能在 Mac 或网页上完成,就去那里做,别碰手机。只有当任务真正需要手机时才用它:iOS 独占的应用、绑定手机号或 2FA 的流程、测试某样东西在手机上的样子。

向外发送或难以撤销的动作——发消息、发帖、购买、删除、改设置——必须暂停并询问用户。不要停留在用户的个人内容区域(Messages、Photos、Mail)超过任务需要的时间。

连接手机永远是用户自己的事。如果手机未连接,ensure_mirroring() 会抛出明确错误并停止。Agent 不得代替用户按下连接按钮,也不得轮询等待连接。重试一次,等用户确认完成。


承认的局限与工程上的取舍

Phone Harness 没有假装自己什么都能做。

解锁 iPhone 会暂停镜像。PIN 锁定的 Android 需要用户介入。

OCR 看得到文字,看不到图标。无标签的控件需要截图加上有视觉能力的模型来识别。

没有多点触控(不能捏合缩放),没有摄像头或 Face ID 流程。DRM 视频渲染为黑屏。

滚动与滑动的方向命名是刻意“反直觉”的:scroll("down") 表示“让我看到更下面的内容”,swipe("up") 表示“手指向上滑”。英语本身就用同一个短语描述同一个结果,但用不同的词描述手指动作。


一个值得注意的信号

Phone Harness 于 2026 年 8 月 7 日创建,两天内冲上 GitHub Trending 第三名,发布帖浏览量近 69 万次。截至 8 月底,Star 数超过 2,000。

作者 Shawn Pana 在 9 月的一则 PR 中将个人简介更新为“Phone Harness (YC F26)”,暗示这个项目已进入 Y Combinator 2026 冬季批次。

同时,README 中嵌入了大量指向 Phone Harness Cloud(一个按分钟计费的托管 Android 手机租赁服务)的 UTM 链接。开源工具 + 云服务 upsell 的模式清晰可见。

技术上的克制与商业上的推进,在这个项目中同时存在。


总结

Phone Harness 的本质是一个薄的控制层。它不做复杂的手机控制系统,而是借用桌面系统已有的通道——iPhone Mirroring 窗口或 adb——把手机变成一个 Agent 能看、能点、能打字的外设。

它的价值在于降低了门槛:不需要越狱,不需要 Xcode,不需要 WebDriverAgent,手机端零安装。对于一个想快速验证“Agent 操控真机”这个想法的人,它提供了一个几乎即时的入口。

同时,它的边界画得足够清楚:连接是用户的事,向外动作要询问,能在 Mac 上做的就别碰手机。对于一个会“动手”的工具来说,这种克制比功能本身更重要。

🔥 当期热点:Phone Harness 于 2026 年 8 月初开源,两天内 GitHub Star 破 1.5k,发布帖浏览量近 69 万次。9 月,作者将项目标注为 YC F26。 📊 冷知识:iPhone 端整个核心代码约 500 行,按作者的说法,它“没有在 Agent 和手机之间放任何东西”。