Derrors/iphone-control
Derrors/iphone-control has 36 GitHub stars and 4 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-10 01:27 UTC. Last push 2026-11-08.
Control a real USB-connected iPhone from Linux (no Mac, no paid developer account) and expose it to AI agents as MCP tools
可以做什么
- See and touch the screen: screenshots with region zoom, tap, swipe, long-press, text input (including Chinese), hardware buttons
- Work with UI elements: read the element tree, tap by text (on a part not covered by floating bars or the keyboard), launch and close apps, open URLs, wait for text to appear
- Fewer round trips: any action can return the resulting screen once it has settled, flagging pages still loading and blocking alerts; iphone_batch runs up to 20 steps in one call
- Automatic fallback: when WebDriverAgent is down, screenshots, taps, swipes and keys switch to Apple's CoreDevice HID service (iOS 27+)
实测星标增长
- 24小时
- +1
- 7天
- 更新延迟
- 15天
- 更新延迟
- 1个月
- 更新延迟
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README.zh-CN.md
原文让 AI agent 操作一台接在 Linux 或 Mac 上的真实 iPhone 或 iPad:一个 Rust 二进制,不需要 Xcode,不需要付费开发者账号,不越狱。
🚀 快速开始 · 📖 文档 · 📦 版本发布 · 🐛 问题反馈 · 🌐 English
让 Claude Code「打开时钟,切到秒表并启动」。左边是 Claude Code 的工具调用(只截了前半段),右边是完成后的手机。
简介
AI agent 已经能操作浏览器和电脑桌面,但真实的 iPhone 难得多:苹果的自动化工具需要 Mac 和 Xcode,开源替代品又是零散的几块,每一块都要单独安装、签名、看护。
iphone-control 在 Linux 或 macOS 上用一个 Rust 二进制把这些事都做了,基于 idevice、Impactor 和 WebDriverAgent。一个常驻守护进程独占手机(隧道、HID 会话、WebDriverAgent 会话常驻复用),把它交给 Claude Code 或任何 MCP 客户端。它是 iphone-control-toolkit 的继任者,MCP 工具保持兼容。
功能特性
- 看屏幕、点屏幕:截图(可放大某块区域)、点击、滑动、长按、输入文字(支持中文)、硬件按键
- 按界面元素操作:读元素树、按文字点击(自动避开悬浮栏、键盘挡住的部分)、启动和结束 App、打开链接、等某段文字出现
- 省往返:任何操作都可以等界面稳定后顺带返回操作后的样子,并提示页面是否还在加载、有没有弹窗挡着;
iphone_batch一次执行最多 20 步 - 自动后备:WebDriverAgent 不可用时,截图、点击、滑动、按键改走苹果的 CoreDevice HID 服务(iOS 27 起)
- 无人值守:拔插、手机重启、WebDriverAgent 崩溃后自动恢复;用免费 Apple ID 签名,7 天描述文件过期前自动重签
- 告警通知:重签失败、Apple ID 会话失效、手机离线、重启后需要输密码时,经 Telegram 或 Bark 推送
- 可选的自动解锁:每输一位都核对,密码错了只试一次就停用
- 诊断:
doctor从 USB 到 WebDriverAgent 逐层检查,每项失败都告诉你怎么修
快速开始
需要一部 iOS 17 以上的 iPhone 或 iPad 和能传数据的线、一个免费 Apple ID(建议专门注册一个),以及一台装了 Docker 的 Linux 主机或一台 Apple Silicon 的 Mac。
Linux(Docker)
git clone https://github.com/Derrors/iphone-control.git && cd iphone-control
cp .env.example .env # 可选:代理、通知;国内网络一般要配代理
docker compose up -d --build # 首次构建需要几分钟
docker exec -it iphone-control iphone-control setup # 安装向导,可重复运行
claude mcp add iphone -s user -- docker exec -i iphone-control iphone-control mcp
macOS(Mac 上的 Docker 不能直通 USB,直接运行二进制)
V=v0.1.4 # 最新版本号
curl -fsSL https://github.com/Derrors/iphone-control/releases/download/$V/iphone-control-$V-macos-arm64.tar.gz | tar xz
mkdir -p ~/.local/bin && install -m 755 iphone-control-$V-macos-arm64/iphone-control ~/.local/bin/
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zprofile && source ~/.zprofile
iphone-control daemon # 这个终端保持开着
iphone-control setup # 在另一个终端运行
iphone-control mcp-config # 打印 `claude mcp add` 命令,复制运行
setup 会引导完成配对、开发者模式、登录 Apple ID、安装 WebDriverAgent,按提示在手机上操作即可。然后打开一个新的 Claude Code 会话,试着说:「打开时钟,切到秒表并启动」。
更多:分步指南 · 预构建镜像 · 二进制 / 源码 · macOS 指南 · 其他 MCP 客户端
MCP 工具
| 工具 | 作用 |
|---|---|
iphone_status |
连接状态、是否锁屏、前台 App、屏幕尺寸 |
iphone_screenshot |
截图(单位为点);给出 x/y/width/height 时放大这块区域 |
iphone_list_elements |
带文字的元素和中心点坐标;可按文字或类型筛选 |
iphone_tap / iphone_tap_element |
按坐标或按元素文字点击 |
iphone_swipe / iphone_long_press |
滑动(列表停稳后返回)、长按 |
iphone_type_text |
在当前输入框输入文字;输完读回核对,丢字会补上 |
iphone_press_button |
home、volume_up、volume_down、lock |
iphone_list_apps / iphone_launch_app / iphone_terminate_app |
按名字或 Bundle ID 管理 App |
iphone_open_url |
打开链接或 URL Scheme |
iphone_wait_for |
等某段文字出现,代替反复截图 |
iphone_batch |
一次执行最多 20 步,出错就停 |
iphone_list_devices |
列出 USB 上接着的 iPhone/iPad,标出正在控制哪台 |
iphone_select_device |
改为控制另一台,或改回自动选 |
操作类工具可以带 then: "elements" | "screenshot",顺带返回操作后的界面。截图的像素就是点击坐标,agent 看到哪里就能点哪里。游戏、地图、视频自己绘制界面,没有元素树,只能看截图按坐标操作。完整参数见 docs/tools.md(英文)。
常用命令
用 docker exec -it iphone-control iphone-control <命令> 运行;从源码运行和在 macOS 上直接调用。
| 命令 | 作用 |
|---|---|
daemon |
常驻守护进程:容器的入口;从源码运行和 macOS 上要自己启动 |
mcp |
MCP 服务,由 AI 客户端拉起 |
status |
守护进程状态、描述文件还剩多久、最近日志 |
doctor |
逐层诊断,每项失败都给出修复办法 |
setup |
安装向导,随时可以重新运行 |
login |
Apple ID 会话失效时重新登录 |
sign |
立即签名并安装 WebDriverAgent |
resign [--force] |
快过期才重签 WebDriverAgent(或立即重签) |
passcode set|clear |
开启或关闭一台设备的自动解锁(密码按设备分开存) |
unlock-reset |
自动解锁被停用后恢复 |
devices / select <UDID|设备名|auto> |
列出接着的设备 / 切换控制哪一台 |
notify-test [事件] |
发送测试通知 |
mcp-config |
打印注册 MCP 的命令 |
wda-bridge [--port] |
把 WebDriverAgent 桥接到 127.0.0.1 给别的工具用,用完就停 |
全部命令和参数见命令行。
升级:git pull && docker compose up -d --build(用预构建镜像时改为 docker compose pull && docker compose up -d --no-build);二进制和 macOS 见从源码 / 二进制、macOS。升级前先看更新日志里的升级注意事项。配置写在 .env,见配置说明。所有状态都在 data/:配对记录、Apple ID 会话和签名私钥,开启自动解锁时还有锁屏密码。要备份,不要提交或分享。
文档
| 入门 | 什么是 iphone-control · 限制 · 快速开始 · 接入 AI 客户端 · 工具一览 |
| 使用 | 配置 · 命令行 · 多台设备 · 通知 · 自动解锁 |
| 安装 | Docker · 从源码 / 二进制 · macOS · 数据与备份 |
| 问题 | 常见问题 · 排错(英文) · Issues |
| 安全 | SECURITY.md:存了什么、谁能访问、怎么报告漏洞 |
| 开发 | 贡献指南 · 架构 · 关键取舍 · 更新日志 |
| 许可证 | THIRD_PARTY.md:vendor 组件、版本和许可证 |
[!WARNING] 这个工具能完全控制你的手机,agent 可能点到付款、删除、发送这类按钮,请在 MCP 客户端里保持工具调用确认。本项目与 Apple 无关;只在你自己的设备和账号上使用。开启自动解锁前请先读 SECURITY.md。
参与贡献
欢迎通过 Issues 反馈问题、提交 Pull Request,详见贡献指南。
License
MIT,第三方组件见 THIRD_PARTY.md。
探索相关项目
affaan-m/ECC
智能体执行与控制框架的性能优化系统。面向 Claude Code、Codex、Opencode、Cursor 等,涵盖技能、本能、记忆、安全与研究优先的开发。
300,735 星标NousResearch/hermes-agent
与你一同成长的智能体
262,416 星标multica-ai/andrej-karpathy-skills
一个用于改进 Claude Code 行为的 CLAUDE.md 文件,源自 Andrej Karpathy 对 LLM 编程陷阱的观察。
231,833 星标firecrawl/firecrawl
借助来自网络及其他来源的数据,强化你的 AI 智能体。正在构建面向超级智能的资料库。🔥
200,444 星标