为什么需要
出海开发者做 iOS 端测试或自动化,常规方案是 XCUITest、Appium 或 BrowserStack 之类的云测试平台。但这些方案要么只测固定脚本、要么贵得离谱。Phone Harness 走另一条路——把 iPhone 直接暴露给 LLM,让 AI 看到屏幕像素、理解界面元素、自己决定点哪里。
最大卖点是「薄」——300 行 Python 把 LLM 接到 iPhone 的辅助功能 API 上,所有逻辑透明可改。比 Appium 的黑盒调用更适合调试验证,比 BrowserStack 的录制回放更智能。这是个实验性工具,适合做 PoC、自动化研究、AI agent 跨设备协作验证,不适合生产环境跑大批量测试。
怎么用
git clone https://github.com/ShawnPana/phone-harness
git cd phone-harness
pip install -r requirements.txt
macOS 上把 iPhone 用 USB 连到电脑,授予「辅助功能」权限。配置 LLM API Key(OpenAI 或 Anthropic 都行),跑主程序:
from phone_harness import Agent
agent = Agent(llm="claude-fable-5")
agent.run("打开 Safari,访问 example.com,搜索 'AI agent'")
Agent 会读取屏幕截图、解析 UI 元素、规划点击序列、把任务做完。每一步决策都被 harness 记录到日志,方便调试 Agent 行为。
核心特性
- 极简设计 — Python harness 代码量小,所有逻辑透明可改可审计
- 多 LLM 支持 — OpenAI、Anthropic 兼容接口的模型都行
- 真实设备控制 — 走 iPhone 辅助功能 API,能操作任何 App 不限于浏览器
- 像素级观察 — LLM 拿到屏幕截图,自己决定怎么点
- 可调试 — 每步决策落日志,回放 Agent 行为方便
- MIT 协议 — 完全开源,可改可商用
使用案例
出海做 iOS App,独立开发者没预算买 BrowserStack($200+/月),需要测一下新版本在真机上的表现。让 Claude 操控 iPhone 跑一遍典型用户路径(注册 → 浏览 → 下单),边角案例自动探索。整个验证流程跑 1 小时,原来手动测一晚上的工作量。
另一个场景:AI 代理评测。用 Phone Harness 做评测 harness,让不同 LLM 跑同一组 iPhone 任务(订餐、查天气、设提醒),对比各家 agent 的执行准确率。
注意事项
- 实验性工具,stars 数较低(1.5K+),生产环境慎用
- 仅支持 macOS + 真实 iPhone(走系统辅助功能 API),不支持模拟器或 Android
- MIT 协议开源,可商用但作者不保证稳定性
- 海外网络环境需要稳定(调 LLM API 要稳定连接)
- 与 BrowserStack/Appium 对比:Phone Harness 走 LLM 决策路径,更智能但慢;Appium 走脚本路径,更快但脆