Repository navigation
Releases
v0.2.0
Live screen viewer, optional WebView debugging, and a successor project.
We recommend iphone-control (https://github.com/Derrors/iphone-control) for new setups. It succeeds
this project as one Rust binary for Linux and macOS, supports iPhone and iPad, and keeps the MCP tools compatible.
New
iphonectl viewer: a desktop window with the phone's screen live from WebDriverAgent's MJPEG stream,
controlled with mouse and keyboard (tap, long press, swipe, scroll, typing, Home, close app). It runs
next to the MCP server and shares its WebDriverAgent session. Needs Python 3.11+ with Tk and Pillow on the host.- Optional WebView debugging: Safari tabs and inspectable WebViews over the Chrome DevTools Protocol
on 127.0.0.1. Off by default; setCDP_PORT=9222in.envto turn it on. iphonectl doctorchecks the live stream and the number of inspectable pages.
Fixes
- The MCP server joins the active WebDriverAgent session instead of replacing it, and after a WDA restart
clients no longer keep ending each other's sessions. - The supervisor manages one port forward per port, so the WDA and MJPEG forwards restart independently.
Upgrading
- New
.envoptions:MJPEG_PORT(default 9100,0turns it off) andCDP_PORT(default 0, off).
The container uses host networking: if another service on the host already uses port 9100, setMJPEG_PORT=0. - Chinese docs now cover the viewer and WebView debugging.
Testing: unit tests, lint and the image build pass. The viewer was exercised against a simulated
WebDriverAgent; the contributor tested the original version on an iPhone 15 (iOS 27.2). The fixes made
during review have not been tested on a real phone yet — reports are welcome.
Thanks to TheSalaty for the viewer and WebView debugging (#1).
Container image
docker pull ghcr.io/derrors/iphone-control-toolkit:0.2.0
Digest: sha256:fc7e81530f9b2a2e244aec73299114148c5dfba5c4f133e1c6108f3beebb7704 (linux/amd64). Verify provenance with
gh attestation verify oci://ghcr.io/derrors/iphone-control-toolkit:0.2.0 -R Derrors/iphone-control-toolkit.
Third-party source code
The image contains GPL and LGPL components (pymobiledevice3, usbmuxd, libimobiledevice and others).
Their complete corresponding source is attached to this release — see SOURCES.md.
What's Changed
- Live screen viewer (iphonectl viewer) and WebView debugging over CDP by @TheSalaty in #1
New Contributors
- @TheSalaty made their first contribution in #1
Full Changelog: v0.1.0...v0.2.0
v0.1.0
First release.
iphone-control-toolkit lets an AI agent operate a real iPhone plugged into a Linux machine, through MCP.
- 13 MCP tools: screenshots with region zoom, element tree, tap by name or coordinates, swipe,
text input (including Chinese), hardware buttons, app management, open URL - WebDriverAgent as the primary control path, CoreDevice HID (iOS 27+) as automatic fallback
- Supervisor that recovers from replugging, phone reboots, tunnel drops and WDA crashes, and
re-signs WDA with a free Apple ID before the 7-day profile expires - Telegram / Bark alerts; optional auto-unlock with per-digit verification
iphonectl setupguided install,iphonectl doctorlayer-by-layer diagnostics
Tested on iPhone 15 Pro Max with iOS 27.0.1 and an x86_64 Debian host.
Container image
docker pull ghcr.io/derrors/iphone-control-toolkit:0.1.0
Digest: sha256:334a2af65e3ddd6cca8f4f3945a6855c20bc2b12f4af2693f9f9a56319fe462d (linux/amd64). Verify provenance with
gh attestation verify oci://ghcr.io/derrors/iphone-control-toolkit:0.1.0 -R Derrors/iphone-control-toolkit.
Third-party source code
The image contains GPL and LGPL components (pymobiledevice3, usbmuxd, libimobiledevice and others).
Their complete corresponding source is attached to this release — see SOURCES.md.
Full Changelog: https://github.com/Derrors/iphone-control-toolkit/commits/v0.1.0