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

# Simulators & Devices

> Manage iOS simulators and physical Apple devices from FlowDeck

FlowDeck manages simulators and devices from a dedicated window — no Xcode or `simctl` needed.

## Open Simulators & Runtimes

Go to **Tools → Simulators & Runtimes** (or press **⌘⇧S**). This opens a separate window where you can browse, create, and manage simulators.

## Simulators

### Browse simulators

The Simulators & Runtimes window lists all installed simulators grouped by platform (iOS, watchOS, tvOS, visionOS).

### Boot and shutdown

Click the power button next to any simulator to boot or shut it down. A running simulator shows a green indicator.

### Create a simulator

1. Click **+** at the bottom of the Simulators list
2. Choose a device type (e.g. iPhone 16 Pro)
3. Choose an OS runtime
4. Give it a name and click **Create**

### Rename a simulator

Give an existing simulator a new display name without creating another device.

1. Open **Tools → Simulators & Runtimes** (**⌘⇧S**).
2. Click the pencil icon in that simulator's action pill (between Clone and Copy ID).
3. Type the new name in the sheet. The field starts with the current name; **Rename Simulator** stays disabled until the name is non-empty and different.
4. Click **Rename Simulator**.

The simulator keeps its UDID. Destination pickers, scripts, and saved config that target that UDID continue to work. Only the name shown in the list and in `flowdeck simulator list` changes.

From the command line, the same action is:

```bash theme={null}
flowdeck simulator rename "iPhone 16" "My CI Device"
```

### Delete a simulator

Right-click any simulator and choose **Delete**. You can also delete all unavailable simulators at once via the context menu on the list header.

### Simulator runtimes

The Simulators & Runtimes window shows which runtimes are installed. Download additional runtimes directly from this window, or via **Xcode → Platforms**.

## Devices

Physical Apple devices appear in the Simulators & Runtimes window when connected via USB or paired wirelessly.

### Connect a device

1. Connect the device via USB
2. Trust the Mac if prompted on the device
3. The device appears within a few seconds

### Wireless pairing

Pair once over USB, then enable wireless pairing in Xcode's Device Manager. After pairing, the device appears in FlowDeck over Wi-Fi.

## Running on simulators and devices

Select any simulator or device from the destination picker in the toolbar. The next **Run** targets that destination.

### Phone ↔ Watch companion preview

When you run an iOS app that embeds a Watch companion (`Host.app/Watch/*.app`), the inline simulator panel’s device-name title becomes a toggle. The phone launches as usual; the watch is **not** started until you tap the title to switch to watch. FlowDeck pairs/boots/installs/launches the watch as needed, then shows the watch stream with the same controls and pop-out as the phone. Tap the title again to return to the phone — the watch simulator stays running. Projects without an embedded Watch app keep a plain (non-toggle) device name.

## The simulator panel

FlowDeck runs the simulator **inside the app**, beside your conversation, rather than in a
separate Simulator window you have to hunt for. Press **⇧⌘0** to show or hide it, or use
**Open in New Window** to pop it out onto its own screen.

The panel is live: click, type, scroll, and pinch go straight to the guest, and **⌘V** pastes the
Mac clipboard into it.

### Panel controls

| Control                                     | What it does                                                |
| ------------------------------------------- | ----------------------------------------------------------- |
| **Home** (**⇧⌘H**)                          | Sends the Home button                                       |
| **Rotate Left / Right** (**⇧⌘←** / **⇧⌘→**) | Rotates the device                                          |
| **Save Screenshot** (**⇧⌘S**)               | Saves a screenshot, with Open in Finder on the confirmation |
| **Record Screen**                           | Records until you stop it, then saves the movie             |
| **Show / Hide Keyboard**                    | Toggles the guest's on-screen keyboard                      |
| **Switch to Dark / Light Appearance**       | Flips the guest's appearance                                |
| **Open in New Window**                      | Pops the simulator out                                      |
| **Shut Down Simulator**                     | Shuts the guest down                                        |

### Simulated location

**Simulated Location** sets the guest's reported position. Pick a preset, **Add Custom
Location…** to save your own, **Manage Custom Locations…** to edit the list, or **Clear
Location** to stop overriding it.

### Simulator settings

The **Simulator Settings** menu reaches the guest's own system settings without opening Settings
inside it:

* **Language** — any supported language, applied with **Change & Reboot**.
* **Accessibility** — Reduce Motion, Reduce Transparency, Show Borders, VoiceOver, and a Color
  Filter (Grayscale, Protanopia, Deuteranopia, Tritanopia).
* **Liquid Glass** — look and feel, with an opacity slider.
* **Audio** — output device, input device, and volume.
* **Reset Content & Settings…** — wipes the guest back to a clean state.

<Warning>
  **Accessibility, Liquid Glass, and Audio need Xcode 27.** Those settings are driven through the
  toolchain's own device layer, and the commands that reach them do not exist before Xcode 27 —
  on Xcode 26 and older those menus are simply inert.

  **Language and Simulated Location work on any supported Xcode**, including Xcode 26.
</Warning>

## Using the agent

```text theme={null}
Boot an iPhone 16 Pro simulator and run the app on it.
```

```text theme={null}
List all available iOS simulators and tell me which ones are currently running.
```

```text theme={null}
Create a fresh iPhone 15 simulator running iOS 17 and run my tests on it.
```

```text theme={null}
Take a screenshot of the running simulator.
```

## Advanced simulator controls

### Status bar overrides

For clean screenshots (App Store, press kit), override the status bar to show a fixed time, full signal, and full battery. Available from the Simulators & Runtimes window when a simulator is selected.

### Push notifications

Send a simulated push notification to test your notification handling — no APNs required. Right-click a running simulator and choose **Send Push Notification**, then paste a JSON payload.

### Location simulation

Override the device's reported location for testing location-aware features. Set a fixed coordinate or simulate movement along a route.

### Privacy permissions

Pre-grant or revoke app permissions (photos, location, microphone, etc.) to test different permission states without interacting with system prompts. Right-click a simulator and choose **Manage Permissions**.

## Troubleshooting

### Simulator won't boot

Try **Erase All Content and Settings** from the simulator's context menu. This resets it to a clean state.

### Device not appearing

Check the USB connection and trust dialog. If the device still doesn't appear, restart both the device and FlowDeck.

### "No runtimes available"

Open the Simulators & Runtimes window (⌘⇧S) and download the runtime for the iOS version you need, or open **Xcode → Platforms**.
