Skip to content
Projects

doronz88/pymobiledevice3

View on GitHub

doronz88/pymobiledevice3 has 3,007 GitHub stars and 432 forks. GitHot measured +47 in 7 days. Last checked 2026-11-09 16:59 UTC. Last push 2026-11-02.

How these counts are measured

Pure python3 implementation for working with iDevices (iPhone, etc...).

Measured star growth

in 24h
Update delayed
in 7 days
+47
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

PyMobileDevice3

Python application Pypi version Downloads Discord Ask DeepWiki

pymobiledevice3 is a pure Python 3 implementation for interacting with iOS devices (iPhone, iPad, ...). It ships both a command-line tool and a Python API, and runs on Windows, Linux, and macOS. Coming from Android? Think of it as adb for iOS.

Highlights:

  • Screen mirroring and control in any browser or VNC client, with touch, buttons, keyboard, audio and clipboard (iOS 27+)
  • Per-process packet capture straight into Wireshark
  • strace-style syscall tracing of every process, live
  • A JavaScript shell and a CDP bridge for Safari and WebViews (Chrome DevTools, VS Code, Playwright)
  • Developer services without Xcode (screenshots, location simulation, sysmon, DDI mounting); on iOS 17+ over a no-root tunnel each command builds for you, on Windows and Linux too
  • Syslog/oslog, apps & profiles, device files, crash reports, backups, firmware update/restore and recovery/DFU

Install

Install with uv, which fetches a suitable Python for you and puts pymobiledevice3 on your PATH:

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# then, in a new terminal
uv tool install --managed-python pymobiledevice3

Upgrade later with uv tool upgrade pymobiledevice3, or try it without installing via uvx --managed-python pymobiledevice3 usbmux list. Already manage Python yourself? pipx install pymobiledevice3 works too, and for scripting against the Python API pip install pymobiledevice3 inside your project's virtualenv.

PyPI is the only official distribution channel. Third-party packages (for example the AUR's python-pymobiledevice3) are not maintained by this project and may be outdated.

On Windows and Linux, first install the platform prerequisites (iTunes or usbmuxd). Then connect the device by USB, unlock it, and verify connectivity:

pymobiledevice3 usbmux list   # lists connected devices
pymobiledevice3 apps list     # first device command: tap "Trust" on the device if asked
pymobiledevice3 syslog live   # streams the device log; Ctrl+C to stop

Documentation

📖 Full documentation: https://doronz88.github.io/pymobiledevice3/

The docs are built from docs/ with MkDocs (mkdocs.yml).

Claude Code plugin

The repository ships its device-operator agent skill as a Claude Code plugin, teaching the agent to operate a connected iPhone or iPad through pymobiledevice3:

/plugin marketplace add doronz88/pymobiledevice3
/plugin install pymobiledevice3-device-operator@pymobiledevice3

Community

Questions, ideas, or want to help? Join the community on Discord.

Sponsors

A huge thank you to our sponsors for supporting this project! 💖

TestMu AI (formerly LambdaTest)

TestingBot TestingBot

SmartDust SmartDust

AnNEDoMini AnNEDoMini

Want to support the project as well? Sponsor it via GitHub Sponsors or Ko-fi.

Contributing

See CONTRIBUTING and Code of Conduct. Agent-specific contributor guidance is in AGENTS.

License and Credits

This work is licensed under GPL 3.0. Planning to ship it in a closed-source app? Read this FAQ first. The project is credited to several major contributors:

Explore related projects