pymobiledevice3
Pure python3 implementation for working with iDevices (iPhone, etc...)
What it is and what it does
pymobiledevice3 is a Python implementation of Apple's iOS device communication protocols, allowing you to interact with iPhones and iPads programmatically or via command line. It handles the low-level protocol details (RemoteXPC, DTX, lockdownd) so you can focus on tasks like discovering devices, forwarding ports, reading system logs, managing apps, accessing files, and automating WebInspector workflows. The package ships both a CLI tool and a Python API, runs on Windows, Linux, and macOS, and supports modern iOS versions including iOS 17+ with tunnel-based developer tooling.
The library's main use is in automation, testing, and debugging workflows where you need programmatic control over iOS devices. It depends on a large set of utilities (construct for binary parsing, cryptography for secure communication, pyusb for USB access, fastapi for optional server modes, and others) to handle the complexity of Apple's proprietary protocols. Installation is straightforward on all platforms, though USB communication requires the system libusb library.
Use it for:
- Automate app installation, launch, and testing on physical iOS devices in CI/CD pipelines.
- Stream device syslog or oslog in real time for debugging and monitoring during development.
- Extract crash reports and device diagnostics programmatically for analysis.
- Perform firmware updates, recovery mode operations, or device backup/restore workflows.
- Inspect and automate web content on iOS devices using WebInspector protocol.
- Access device file systems via AFC protocol for file transfer and inspection.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A pure Python library and command-line tool for interacting with iOS devices over USB or network, enabling device discovery, file access, app management, syslog streaming, and developer tooling.
Yes, if you need to automate or debug iOS devices. The package is actively maintained, has no known vulnerabilities, supports current Python versions, and offers both CLI and API interfaces. The GPL-3.0-or-later license requires that derivative works be open-source; proprietary integrations need legal review. The 47 runtime dependencies are substantial but necessary for protocol support; verify your use case doesn't require only a subset before committing to the full installation.
Install
pymobiledevice3 on PyPI
pip
pip install pymobiledevice3uv
uv add pymobiledevice3poetry
poetry add pymobiledevice3Installing pymobiledevice3
Before you install
Low friction: pure Python wheel with no compiled dependencies. Active maintenance with a release 1 day old and 2631 repository stars. Supports Python 3.9 through 3.14, though the 47 runtime dependencies (construct, cryptography, fastapi, pyusb, and others) create a moderately large installation footprint.
License in practice
GPL-3.0-or-later copyleft license: any derivative work or distribution must also be licensed under GPL 3.0 or later. Suitable for open-source projects; proprietary software integrations require careful licensing review.
Quickstart
pip install pymobiledevice3
from pymobiledevice3.usbmux import USBMux
usbmux = USBMux()
devices = usbmux.devices()
for device in devices:
print(device)
Requires a connected iOS device via USB or network, and libusb system library for USB communication (platform-specific installation needed).
Verify before relying
- Whether all 47 runtime dependencies are strictly necessary for basic CLI usage or if a minimal install profile is available.
- Specific iOS version compatibility matrix beyond the mention of iOS 17+ tunnel support.
- Performance characteristics when streaming large syslog volumes or managing many concurrent operations.
Package facts
| License | GPL-3.0-or-later (copyleft) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 47 — construct, construct-typing, asn1, coloredlogs, IPython, bpylist2, pygments, hexdump, daemonize, gpxpy, pykdebugparser, pyusb, tqdm, requests, xonsh, parameter_decorators, packaging, typing_extensions, pygnuutils, cryptography, pycrashreport, fastapi, uvicorn, wsproto, Pillow, questionary, ipsw_parser, ifaddr, hyperframe, srptools |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 612,797/month — #5,754 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pymobiledevice3-10.7.4-py3-none-any.whl
Keywords: ios, protocol, lockdownd, instruments, automation, cli, afc
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
pyiosbackupParses and decrypts iOS device backups,…
copyleft · top 15,000 on PyPI
fb-idbA command-line and Python client for automating…
permissive · top 15,000 on PyPI
pykdebugparserParses Darwin kdebug trace events from iOS and…
permissive · top 15,000 on PyPI
pyimg4PyIMG4 parses Apple's Image4 format through a…
permissive · top 15,000 on PyPI
ipsw-parserParses and extracts data from iOS IPSW firmware…
copyleft · top 15,000 on PyPI
pyobjc-framework-IOBluetoothProvides Python bindings to macOS's IOBluetooth…
permissive · top 15,000 on PyPI
pyobjc-framework-DeviceDiscoveryExtensionProvides Python bindings for Apple's…
permissive · top 15,000 on PyPI
pylibftdiPythonic interface to FTDI USB devices via…
permissive · top 15,000 on PyPI
binho-host-adapterControls Binho Multi-Protocol USB Host Adapters…
permissive · top 15,000 on PyPI
la-panicParses iPhone crash reports (IPS files) to…
copyleft · top 15,000 on PyPI