> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobster.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# mobster phone

> Set your iPhone's clipboard, put files on it, or install a build.

Phone utilities that aren't tasks: put text on the phone's clipboard (or print what it holds), and install a signed .app or .ipa on a USB iPhone or a Mobster simulator.

## Usage

```text theme={"theme":"css-variables"}
mobster phone <command>
```

```text theme={"theme":"css-variables"}
examples:
  mobster phone clipboard set "https://example.com/invite/42"
  mobster phone clipboard get
  mobster phone file put menu.pdf --app com.apple.Pages
  mobster phone install build/YourApp.ipa --device "Work iPhone"
```

## Commands

| Command | What it does |
| - | - |
| [`mobster phone clipboard`](#mobster-phone-clipboard) | set or read the phone's clipboard (text, at most 64 KB) |
| [`mobster phone file`](#mobster-phone-file) | move files between this Mac and an app's folder on the iPhone (USB) |
| [`mobster phone photos`](#mobster-phone-photos) | add photos and videos to the iPhone's Photos, or copy the newest to this Mac |
| [`mobster phone open`](#mobster-phone-open) | open a URL or deep link on the phone |
| [`mobster phone button`](#mobster-phone-button) | press a hardware button, or lock the screen |
| [`mobster phone install`](#mobster-phone-install) | install a signed .app or .ipa on the device |
| [`mobster phone record`](#mobster-phone-record) | record a USB iPhone's screen to a movie on this Mac |
| [`mobster phone network`](#mobster-phone-network) | create network profiles, diagnose this Mac, or capture USB traffic |
| [`mobster phone password`](#mobster-phone-password) | enter a password privately into a focused secure app field |

## `mobster phone clipboard`

Set the phone's clipboard from the Mac, or print what it holds.

### Commands

| Command | What it does |
| - | - |
| [`mobster phone clipboard set`](#mobster-phone-clipboard-set) | put text on the phone's clipboard |
| [`mobster phone clipboard get`](#mobster-phone-clipboard-get) | print the phone's clipboard |

**`mobster phone clipboard set`**

Put text on the phone's clipboard: TEXT, a file's text with `--file`, or standard input with -. At most 64 KB.

| Name | Default | Description |
| - | - | - |
| `[TEXT]` | none | the text, or - for standard input |
| `--file FILE` | none | put this UTF-8 file's text on the clipboard |
| `--device NAME` | your iPhone | the device: an id, UDID or name from `mobster devices` |
| `--json` | off | print one JSON object |

**`mobster phone clipboard get`**

Print the phone's clipboard. WebDriverAgent's runner comes to the front for a moment to read it (iOS lets only the front app read the clipboard). Only the CLI reads it: no MCP tool does, because it may hold a password.

| Name | Default | Description |
| - | - | - |
| `--device NAME` | your iPhone | the device: an id, UDID or name from `mobster devices` |
| `--json` | off | print one JSON object |

## `mobster phone file`

Copy files between this Mac and the Documents folder of an iPhone app that shares files (the folder Files shows under On My iPhone). Over the cable only. Nothing else on the phone is reachable, the camera roll included.

```text theme={"theme":"css-variables"}
exit codes: 0 done, 1 it failed, 2 usage, 3 no iPhone on a cable or no iPhone tools
```

### Commands

| Command | What it does |
| - | - |
| [`mobster phone file put`](#mobster-phone-file-put) | copy a file from this Mac into an app's folder |
| [`mobster phone file get`](#mobster-phone-file-get) | copy a file from an app's folder to this Mac |
| [`mobster phone file ls`](#mobster-phone-file-ls) | list the apps that share files, or the files in one |

**`mobster phone file put`**

Copy a file (up to 100 MB) into an app's folder on the iPhone. A file with the same name is kept: the copy gets a new name (menu 2.pdf) unless you pass `--replace`.

| Name | Default | Description |
| - | - | - |
| `PATH` | required | the file on this Mac |
| `--app BUNDLE` | required | the app's bundle ID, such as com.apple.Pages (`mobster phone file ls` lists them) |
| `--name NAME` | its own | the name it gets on the iPhone |
| `--replace` | off | overwrite a file with the same name |
| `--container` | off | the app's own Documents folder, for a development build of yours that doesn't share files |
| `--device NAME` | your iPhone | the device: an id, UDID or name from `mobster devices` |
| `--json` | off | print one JSON object |

**`mobster phone file get`**

Copy a file from an app's folder on the iPhone to this Mac.

| Name | Default | Description |
| - | - | - |
| `NAME` | required | the file's name in the app's folder |
| `--app BUNDLE` | required | the app's bundle ID |
| `-o, --output PATH` | the current folder | where to save it: a folder, or a file name |
| `--container` | off | the app's own Documents folder, for a development build of yours |
| `--device NAME` | your iPhone | the device: an id, UDID or name from `mobster devices` |
| `--json` | off | print one JSON object |

**`mobster phone file ls`**

Without `--app`, list the iPhone's apps whose folders show in Files. With `--app`, list the files in that app's folder.

| Name | Default | Description |
| - | - | - |
| `--app BUNDLE` | none | the app's bundle ID |
| `--container` | off | the app's own Documents folder, for a development build of yours |
| `--device NAME` | your iPhone | the device: an id, UDID or name from `mobster devices` |
| `--json` | off | print one JSON object |

## `mobster phone photos`

Add a photo or video from this Mac to the iPhone's Photos library (Mobster's runner saves it; the first time, iOS asks on the iPhone), or copy the newest photos, screenshots and screen recordings from its camera roll to this Mac (over the cable).

```text theme={"theme":"css-variables"}
exit codes: 0 done, 1 it failed, 2 usage, 3 no iPhone on a cable or no iPhone tools
```

### Commands

| Command | What it does |
| - | - |
| [`mobster phone photos add`](#mobster-phone-photos-add) | add photos and videos to Photos |
| [`mobster phone photos pull`](#mobster-phone-photos-pull) | copy the newest photos and recordings to this Mac |

**`mobster phone photos add`**

Add JPEGs, HEICs, PNGs, GIFs, WebPs, MOVs or MP4s (up to 4 GB each, 50 at a time) to the iPhone's Photos library, into the album Mobster unless you name another. Each one is checked by SHA-256 on the iPhone, and the library's count is read before and after.

| Name | Default | Description |
| - | - | - |
| `PATH [PATH ...]` | required | the photos or videos on this Mac |
| `--album NAME` | Mobster | the album they go into, made if it isn't there; `--album` '' for none |
| `--via ROUTE` | auto | auto (default), cable, wifi, airdrop, mirroring or icloud |
| `--profile PROFILE` | none | send to this profile's iPhone (Settings › Profiles) |
| `--device NAME` | your iPhone | the device: an id, UDID or name from `mobster devices` |
| `--json` | off | print one JSON object |

**`mobster phone photos pull`**

Copy the newest photos, screenshots and screen recordings from the iPhone, newest first, each checked by SHA-256 or size. Over the cable by default; `--via` wifi reads them through Mobster's runner, `--via` tunnel through Apple's own tunnel (needs pymobiledevice3), `--via` icloud from this Mac's Photos library.

| Name | Default | Description |
| - | - | - |
| `-n, --count N` | 1 | how many, 1 to 20 |
| `--since WHEN` | none | only newer ones: 10m, 2h, 1d or an ISO time |
| `--jpeg` | off | convert HEIC photos to JPEG (over the cable) |
| `-o, --output DIR` | the current folder | the folder to save into |
| `--via ROUTE` | auto | auto (default), cable, wifi, tunnel or icloud |
| `--profile PROFILE` | none | copy from this profile's iPhone (Settings › Profiles) |
| `--device NAME` | your iPhone | the device: an id, UDID or name from `mobster devices` |
| `--json` | off | print one JSON object |

## `mobster phone open`

Open a URL or deep link on the phone, such as maps\://?q=coffee or App-prefs:WIFI. Links that act as they open (tel:, facetime:, running a shortcut) ask for `--yes`.

### Arguments and options

| Name | Default | Description |
| - | - | - |
| `URL` | required | the link |
| `--yes` | off | open a link that asks first: a call, a message, a shortcut run, or a new app's link |
| `--device NAME` | your iPhone | the device: an id, UDID or name from `mobster devices` |
| `--json` | off | print one JSON object |

## `mobster phone button`

Press Home, Volume Up or Volume Down, or lock the screen. Mobster can't unlock an iPhone: after lock, unlock it yourself.

### Arguments and options

| Name | Default | Description |
| - | - | - |
| `BUTTON` | required | home, volume\_up, volume\_down or lock |
| `--device NAME` | your iPhone | the device: an id, UDID or name from `mobster devices` |
| `--json` | off | print one JSON object |

## `mobster phone install`

Install a build on a USB iPhone (xcrun devicectl) or a Mobster simulator (xcrun simctl). The build must be signed for that iPhone, and the iPhone needs Developer Mode on.

### Arguments and options

| Name | Default | Description |
| - | - | - |
| `PATH` | required | the .app folder or .ipa file |
| `--device NAME` | your iPhone | the device: an id, UDID or name from `mobster devices` |
| `--json` | off | print one JSON object |

```text theme={"theme":"css-variables"}
exit codes: 0 installed, 1 the install failed, 2 usage, 3 no device or no Xcode
```

## `mobster phone record`

Record a paired iPhone's screen, and the audio it offers, over USB into a new .mov file, without a WebDriverAgent session. It uses the capture device QuickTime Player records from, so macOS asks once whether Mobster may use the camera and microphone. iOS shows its demonstration status bar while it records, and protected content may not be recorded. It never overwrites a file.

### Options

| Name | Default | Description |
| - | - | - |
| `--output FILE` | required | write a new .mov file |
| `--seconds N` | 10 | how long to record, 1 to 300 |
| `--device NAME` | your iPhone | the device: an id, UDID or name from `mobster devices` |
| `--json` | off | print one JSON object |

```text theme={"theme":"css-variables"}
exit codes: 0 saved, 1 it failed, 2 usage, 3 no iPhone on a cable or no native helper
```

## `mobster phone network`

Create removable iPhone network profiles, inspect this Mac's connectivity, or capture a USB iPhone's packets. Profiles need installation in Settings.

### Commands

| Command | What it does |
| - | - |
| [`mobster phone network proxy-profile`](#mobster-phone-network-proxy-profile) | write a Wi-Fi HTTP proxy or PAC profile |
| [`mobster phone network vpn-profile`](#mobster-phone-network-vpn-profile) | write an IKEv2 VPN profile with username authentication |
| [`mobster phone network relay-profile`](#mobster-phone-network-relay-profile) | write an Apple HTTP/2 network relay profile |
| [`mobster phone network diagnose`](#mobster-phone-network-diagnose) | inspect this Mac's route and optional TCP endpoint reachability |
| [`mobster phone network capture`](#mobster-phone-network-capture) | save a bounded USB iPhone packet trace |

**`mobster phone network proxy-profile`**

Write a Wi-Fi profile for one SSID. Apps may ignore HTTP proxies; this does not route cellular traffic or decrypt TLS.

| Name | Default | Description |
| - | - | - |
| `--ssid SSID` | required | the Wi-Fi network name |
| `--server SERVER` | none | the HTTP proxy hostname or IP address |
| `--pac URL` | none | the HTTP or HTTPS proxy auto-configuration URL |
| `--port PORT` | 8080 | the HTTP proxy port |
| `--username USERNAME` | none | the HTTP proxy username |
| `--password-file FILE` | none | read the proxy password from this UTF-8 file |
| `--wifi-password-file FILE` | none | read the Wi-Fi password from this UTF-8 file |
| `--encryption {Any,WPA2,WPA3,None}` | Any | the Wi-Fi encryption type |
| `--output FILE` | required | write a new private .mobileconfig file; existing files are kept |
| `--name NAME` | Mobster proxy | the profile's display name |
| `--identifier IDENTIFIER` | app.mobster.network.proxy | the stable profile identifier |
| `--json` | off | print one JSON object |

`--server` and `--pac` can't be used together; one is required.

**`mobster phone network vpn-profile`**

Write an IKEv2 EAP VPN profile for your provider. This does not create a VPN server. Install the profile and connect in Settings.

| Name | Default | Description |
| - | - | - |
| `--server SERVER` | required | the VPN server hostname or IP address |
| `--remote-id REMOTE_ID` | required | the server identifier from your VPN provider |
| `--local-id LOCAL_ID` | required | the client identifier from your VPN provider |
| `--username USERNAME` | required | the VPN account username |
| `--password-file FILE` | none | read the VPN password from this UTF-8 file |
| `--output FILE` | required | write a new private .mobileconfig file; existing files are kept |
| `--name NAME` | Mobster VPN | the profile's display name |
| `--identifier IDENTIFIER` | app.mobster.network.vpn | the stable profile identifier |
| `--json` | off | print one JSON object |

**`mobster phone network relay-profile`**

Write an Apple network relay profile for an existing compatible HTTP/2 relay service. This is not an ordinary HTTP proxy or a new relay server.

| Name | Default | Description |
| - | - | - |
| `--url URL` | required | the HTTPS relay endpoint |
| `--token-file FILE` | none | read the bearer token from this UTF-8 file |
| `--output FILE` | required | write a new private .mobileconfig file; existing files are kept |
| `--name NAME` | Mobster relay | the profile's display name |
| `--identifier IDENTIFIER` | app.mobster.network.relay | the stable profile identifier |
| `--json` | off | print one JSON object |

**`mobster phone network diagnose`**

Check this Mac's default route and optional TCP endpoint. With `--device`, also report USB attachment. This does not test the iPhone's internet egress, proxy authentication, or installed profiles.

| Name | Default | Description |
| - | - | - |
| `--device NAME` | none | also inspect USB attachment for this device |
| `--host HOST` | none | the hostname or IP address to test from this Mac |
| `--port PORT` | 8080 | the TCP endpoint port |
| `--json` | off | print one JSON object |

**`mobster phone network capture`**

Capture packets through Apple's Remote Virtual Interface. Requires a paired USB iPhone, Xcode tools and BPF permissions on this Mac. TLS remains encrypted; packet data may contain private information.

| Name | Default | Description |
| - | - | - |
| `--device NAME` | required | the paired USB iPhone's id, UDID or name |
| `--output FILE` | required | write a new private pcap file |
| `--seconds SECONDS` | 30 | stop after 1 to 300 seconds |
| `--packets PACKETS` | 10000 | stop after 1 to 100000 packets |
| `--snaplen SNAPLEN` | 128 | capture 64 to 65535 bytes per packet |
| `--json` | off | print one JSON object |

## `mobster phone password`

Enter one password from a hidden prompt or a private UTF-8 file. Requires a rebuilt Mobster runner and an empty, focused secure field. Does not submit, retry, or enter a phone passcode.

### Options

| Name | Default | Description |
| - | - | - |
| `--app BUNDLE` | required | the foreground app's bundle ID |
| `--field NAME` | required | the secure field's accessibility identifier or label |
| `--file FILE` | none | read the password from a private UTF-8 file |
| `--device NAME` | none | the device's id, UDID or name |
| `--json` | off | print one JSON object without the password |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.