Agent 自己把活干完了




折腾了三天终于跑通了:现在 Codex /Claude code/Grok biuld/Cursor等agent 不用越狱就能直接控制我锁着的 iPhone,开 APP、点按钮、输文字、读屏幕全能干,手机刷推,刷朋友圈、发朋友圈都可以,真的牛逼,更狠的是我合盖睡觉的时候,Agent 自己在云端手机里跑任务,醒了邮箱里已经躺好了整理完的结果。

想让 AI 替你碰手机、跑重复活的,这一篇照着做就行,一篇文章把两套方案全写透、讲透:

1️⃣本地 Phone Harness 怎么装、权限坑怎么避、所有命令直接抄;
2️⃣云端异步任务怎么设、怎么锁死权限防 AI 乱点,包括我每天跑的岗位早报 Prompt 也全放出来了。



今早 8 点半我睁开眼,邮箱里已经躺着 12 个新出的 AI 岗位:公司、是否远程、推荐理由、申请链接排得整整齐齐。

我昨晚合电脑前只设了个定时任务,没定闹钟爬起来刷 LinkedIn,也没雇人帮我盯,甚至电脑一整夜都是合着的。

是 AI 自己控制手机,趁我睡觉的时候翻完了所有新岗位整理好发我的 —— 不用越狱,也不用装奇怪的插件,想让 AI 替你刷招聘、整理信息、跑重复任务的,直接照着做就行。

我昨晚合盖前只做了一件事:设了个每天早上八点的 Routine。


发这封早报的不是 Phone Harness,Phone Harness 发不出来——它只能在我 Mac 醒着、手机锁着、人坐在旁边的时候干活。而这封邮件发出来的时候,我还在睡觉。

Phone Harness 干的是另一半的活,它工作时的真实画面是:

Agent 在终端里敲命令,Mac 上那个手机大小的窗口自己在点,真机锁着躺在桌子另一头。你要是中途拿起来解锁,会话立刻断,窗口变成 "iPhone in Use"。
它把 iPhone 镜像窗口当成唯一的传输层:截图看屏幕,用 Apple Vision 做 OCR 拿到「文字 + 坐标」,再用 HID 级的 CGEvent 去点、拖、输入,点完再截一张确认。没有控件树,截图就是真相。

装它不用越狱,也不用 Xcode,甚至不用 WebDriverAgent。

我把安装、权限和 --doctor 在 Codex 里跑了一遍,安装花不了多少实践,最花时间的权限后面单独讲。

这篇分两部分,前半段用 Phone Harness 把 Agent 跑到能看见、能点、能写回手机;后半段就是开头那条早报是怎么来的,也说清 Airtap 不适合干什么。前一层是 Driver,后一层是 Runtime,缺的东西完全不一样。

命令、权限雷区、质检 Prompt 和 Routine 文案都在正文里,可以直接抄作业。只想看早报怎么设的,直接跳第六节。

换 Cursor 或 Claude Code 流程一样,只有一处要跟着改:权限勾在实际跑 Agent 的那个 App 上。


一、先过环境:门槛都在苹果那一侧



推荐:先过环境,下面任何一条不满足,后面全部无效,而且多半不是项目的问题。



Mac 有 Apple Silicon 或 T2 芯片(2018 年后大部分 Mac 都行,更老的纯 Intel 不支持 iPhone Mirroring)
macOS Sequoia 15+ / iOS 18+
两台设备同一个 Apple Account,开着双重认证
蓝牙和 Wi-Fi 都开,iPhone 在 Mac 十米内
Python 3.12+
首次配对要先解锁、在手机上确认;配对完成后,会话期间保持锁定
sw_vers
python3 --version配对当天先解锁完成确认,之后把手机放到自己随手拿不到的地方。

不然你下意识拿起来看条消息,镜像断了,你还得反复折腾权限。


二、装:克隆、依赖、PATH,再注册成 skill



官方推荐装在 ~/.phone-harness,和 ~/.nvm 一样当固定家目录,Agent 才找得到。
系统 Python 受 PEP 668 限制的话(用 Homebrew 的很常见),走 venv 更干净:
下面这一段要在同一个终端里连续跑,中间不要新开窗口——source 只对当前这个壳有效:
打开终端,复制以下命令行,粘贴,回车

git clone https://github.com/ShawnPana/phone-harness.git ~/.phone-harness
cd ~/.phone-harness
python3 -m venv .venv
source .venv/bin/activate
pip install pyobjc-framework-Cocoa pyobjc-framework-Quartz \
pyobjc-framework-Vision pyobjc-framework-ApplicationServices
pip install -e . --no-deps
AppKit 在较新 pyobjc 里随 Cocoa 提供;ApplicationServices 是 --doctor 需要的。

装上了还不够,source .venv/bin/activate 只对当前这个壳有效,Cursor 或 Codex 新开的终端经常不在 venv 里,于是报 phone-harness: command not found。你会以为没装上,其实是装上了但那个会话找不到。再跑这一段,把命令链到 PATH:
mkdir -p ~/.local/bin
ln -sf ~/.phone-harness/.venv/bin/phone-harness ~/.local/bin/phone-harness
装完先看说明和入口:
cat install.md
phone-harness --help
# 或在仓库里:./phone-harness --help

grep "^def " src/phone_harness/helpers.py
分类