skillfed

pymobiledevice3

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

pymobiledevice3 v10.7.4 612.8K downloads/30d#5,754 on PyPI2,631
Copyleft license GPL-3.0-or-later Active released

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 pymobiledevice3

uv

uv add pymobiledevice3

poetry

poetry add pymobiledevice3

Installing 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

Development Status :: 5 - Production/StableProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9

Tags

ios device control pythoniphone automation cliios file access afcdevice debugging toolsios app managementmobile device protocolios syslog streaming
ios-automationdevice-debuggingprotocol-implementation

More Software Development packages