CLI Reference¶
Complete reference for every pymobiledevice3 command, generated from the CLI itself
at build time. For task-oriented examples see the
CLI recipes.
Command groups¶
| Group | Description |
|---|---|
activation |
Activate or deactivate the device with Apple's servers, or query its activation state. |
afc |
Browse, push, and pull files via the AFC service (/var/mobile/Media). |
amfi |
Manage Developer Mode and trust of developer app signers (AMFI). |
apps |
List, query, install, uninstall, and inspect apps on the device. |
backup2 |
Create, inspect, and restore MobileBackup2 backups. |
btlogger |
Capture Bluetooth HCI traffic to a file or stdout until Ctrl+C. |
bonjour |
Discover devices on the local network over bonjour (mDNS). |
companion |
List paired "companion" devices (e.g. an Apple Watch). |
crash |
List, pull, parse, watch and delete crash reports (and sysdiagnose archives). |
cryptex |
Manage cryptexes via cryptexd (iOS 17+; the RSD tunnel is set up automatically). |
developer |
Developer tooling for iOS devices (needs Developer Mode, and usually the DDI mounted). |
diagnostics |
Restart, shut down or sleep the device, and query diagnostics (IORegistry, MobileGestalt, battery). |
doctor |
Report which transports this host can use, and what to fix when it cannot. |
lockdown |
Pair/unpair, read and change device values, and talk to raw lockdown services. |
mobilesync |
Read and change contacts, calendars, Safari bookmarks and mail accounts (com.apple.mobilesync). |
mounter |
Mount, unmount and inspect the DeveloperDiskImage (DDI) needed by developer commands. |
notification |
Post or observe Darwin notifications via notification_proxy. |
pcap |
Capture the device's network traffic, print it, and optionally save it to a pcapng file. |
power-assertion |
Hold a power assertion on the device for TIMEOUT seconds (Ctrl+C to stop early). |
processes |
List the processes running on the device. |
profile |
Install and remove configuration profiles, supervise the device, and other MDM-style management. |
provision |
Install, list, export and remove provisioning profiles (.mobileprovision). |
remote |
Create and browse RemoteXPC tunnels (RSD/tunneld) for developer services. |
restore |
Restore/erase IPSWs, fetch blobs, and manage devices in Recovery/DFU. |
springboard |
Interact with SpringBoard UI (icons, wallpapers, orientation, shell). |
syslog |
Stream the device's live system log, or collect it into a .logarchive. |
usbmux |
Inspect usbmuxd-connected devices and forward TCP ports to them. |
webinspector |
Control Safari/WebViews (tabs, automation, JS shells, CDP). Requires Web Inspector and Remote Automation enabled on the device. |
idam |
Query or toggle IDAM (Inter-Device Audio and MIDI) on the device. |
version |
Print the installed pymobiledevice3 version. |
Connection options¶
Device-facing commands accept a shared set of options selecting the target device and transport. Each command's page lists which of them it accepts.
| Option | Description |
|---|---|
--rsd HOST PORT |
Hostname and port of a RemoteServiceDiscovery (from any of the start-tunnel subcommands). Mutually exclusive with --tunnel. |
--tunnel <str> |
Use a device discovered via tunneld. Provide a UDID (optionally with :PORT) or leave empty to pick interactively. UDID@HOST[:PORT] reaches a remote tunneld, bridging device connections through its WS /connect endpoint (use it whenever the tunnel interface is unreachable from this process, e.g. tunneld in docker, on another host, or behind an SSH port-forward). Mutually exclusive with --rsd. [env var: PYMOBILEDEVICE3_TUNNEL] |
--userspace |
Establish the iOS 17+ tunnel in-process with a pure-Python userspace network stack, so NO root/admin is required. Downloads (device->host, e.g. fetch-symbols) run at roughly the kernel tunnel's throughput; host->device transfers (DDI mounts, file pushes) are slower, as their send segments are kept small for reliable delivery through the pure-Python path. This is already the default transport; pass it to force it over an environment override. [env var: PYMOBILEDEVICE3_USERSPACE] |
--mobdev2 / --no-mobdev2 |
Discover devices over bonjour/mobdev2 instead of usbmux. [default: no-mobdev2] |
--usbmux <str> |
Address of the usbmuxd daemon (unix socket path or HOST:PORT). Defaults to the platform usbmuxd if omitted. [env var: PYMOBILEDEVICE3_USBMUX, USBMUXD_SOCKET_ADDRESS] |
--udid <str> |
Target device UDID (defaults to the first USB device). [env var: PYMOBILEDEVICE3_UDID] |
See iOS 17+ tunnels for when a tunnel (--rsd/--tunnel/
--userspace) is required and how the no-root userspace default works.