> ## 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.

# Lifecycle

> Boot, shutdown, and open simulators

Commands for controlling simulator state.

## flowdeck simulator boot

Boot a simulator so it is ready to run apps. The argument accepts either a simulator UDID or a simulator name (matched against `flowdeck simulator list`).

```bash theme={null}
# Boot by name
flowdeck simulator boot "iPhone 16"

# Boot by UDID
flowdeck simulator boot 12345678-1234-1234-1234-123456789ABC

# Boot with verbose output
flowdeck simulator boot "iPhone 16" --verbose

# Boot with JSON output
flowdeck simulator boot "iPhone 16" --json
```

### Options

| Option       | Short | Description         |
| ------------ | ----- | ------------------- |
| `--verbose`  | `-v`  | Show command output |
| `--json`     | `-j`  | Output as JSON      |
| `--examples` | `-e`  | Show usage examples |

***

## flowdeck simulator shutdown

Shutdown a running simulator. The argument accepts either a simulator UDID or a simulator name.

```bash theme={null}
# Shutdown by name
flowdeck simulator shutdown "iPhone 16"

# Shutdown by UDID
flowdeck simulator shutdown 12345678-1234-1234-1234-123456789ABC

# Shutdown with verbose output
flowdeck simulator shutdown "iPhone 16" --verbose

# Shutdown with JSON output
flowdeck simulator shutdown "iPhone 16" --json
```

### Options

| Option       | Short | Description         |
| ------------ | ----- | ------------------- |
| `--verbose`  | `-v`  | Show command output |
| `--json`     | `-j`  | Output as JSON      |
| `--examples` | `-e`  | Show usage examples |

***

## flowdeck simulator open

Open Simulator.app.

```bash theme={null}
flowdeck simulator open
flowdeck simulator open --json
```

### Options

| Option       | Short | Description         |
| ------------ | ----- | ------------------- |
| `--verbose`  | `-v`  | Show command output |
| `--json`     | `-j`  | Output as JSON      |
| `--examples` | `-e`  | Show usage examples |

***

## flowdeck simulator launch

Launch an already-installed app on a booted simulator by bundle identifier. Useful for opening system apps (such as Calendar or Contacts) or any app that is already installed on the simulator, without going through `flowdeck run`. The simulator must be booted first.

```bash theme={null}
# Launch the iOS Calendar app on the booted simulator
flowdeck simulator launch com.apple.mobilecal

# Target a specific simulator by name
flowdeck simulator launch com.apple.mobilecal -S "iPhone 16"

# Target a specific simulator by UDID
flowdeck simulator launch com.apple.MobileAddressBook -S 12345678-1234-1234-1234-123456789ABC

# JSON output (reports the launched pid)
flowdeck simulator launch com.apple.mobilecal --json
```

### Options

| Option                       | Short | Description                                                      |
| ---------------------------- | ----- | ---------------------------------------------------------------- |
| `--simulator <name-or-udid>` | `-S`  | Target simulator name or UDID (defaults to the booted simulator) |
| `--verbose`                  | `-v`  | Show command output                                              |
| `--json`                     | `-j`  | Output as JSON                                                   |
| `--dry-run`                  |       | Preview the `simctl launch` command without starting the app     |
| `--examples`                 | `-e`  | Show usage examples                                              |

### JSON Output

With `--json`, `simulator launch` reports the bundle identifier, resolved UDID, and the launched process id:

```json theme={null}
{
  "success": true,
  "type": "simulator_launch",
  "bundle_id": "com.apple.mobilecal",
  "udid": "12345678-1234-1234-1234-123456789ABC",
  "pid": 4321
}
```

<Note>
  `simulator launch` only starts apps that are already installed on the simulator. To build, install, and launch your own app in one step, use `flowdeck run` instead.
</Note>
