FlowDeck provides comprehensive simulator management. Alias: sim
flowdeck simulator list
List available simulators, grouped by device family and OS version.
# List all simulators
flowdeck simulator list
# Filter by platform
flowdeck simulator list --platform iOS
# Show only available simulators
flowdeck simulator list --available-only
# JSON output
flowdeck simulator list --json
Options
| Option | Short | Description |
|---|
--platform <name> | -P | Filter by platform (iOS, iPadOS, tvOS, watchOS, visionOS) |
--available-only | -A | Show only available simulators |
--json | -j | Output as JSON |
JSON Output
[
{
"udid": "12345678-1234-1234-1234-123456789ABC",
"name": "iPhone 16 Pro",
"platform": "iOS",
"osVersion": "18.0",
"state": "Shutdown",
"isBooted": false,
"isAvailable": true
}
]
flowdeck simulator boot
Boot a simulator so it’s ready to run apps.
# Boot a simulator
flowdeck simulator boot <UDID>
# Boot with verbose output
flowdeck simulator boot <UDID> --verbose
# Boot with JSON output
flowdeck simulator boot <UDID> --json
Options
| Option | Short | Description |
|---|
--verbose | -v | Show command output |
--json | -j | Output as JSON |
JSON Output
{
"success": true,
"message": "Simulator booted successfully",
"udid": "12345678-1234-1234-1234-123456789ABC"
}
flowdeck simulator shutdown
Shutdown a running simulator.
# Shutdown a simulator
flowdeck simulator shutdown <UDID>
# Shutdown with verbose output
flowdeck simulator shutdown <UDID> --verbose
# Shutdown with JSON output
flowdeck simulator shutdown <UDID> --json
Options
| Option | Short | Description |
|---|
--verbose | -v | Show command output |
--json | -j | Output as JSON |
flowdeck simulator open
Open the Simulator.app application.
flowdeck simulator open
flowdeck simulator open --json
Options
| Option | Short | Description |
|---|
--verbose | -v | Show command output |
--json | -j | Output as JSON |
flowdeck simulator screenshot
Capture a screenshot from a booted simulator.
# Take screenshot (auto-named with timestamp)
flowdeck simulator screenshot <UDID>
# Save to specific path
flowdeck simulator screenshot <UDID> --output ~/Desktop/screenshot.png
Options
| Option | Short | Description |
|---|
--output <path> | -o | Output path for screenshot (default: ./screenshot-<timestamp>.png) |
--verbose | -v | Show command output |
flowdeck simulator erase
Erase all content and settings from a simulator, resetting it to factory defaults.
# Erase a simulator
flowdeck simulator erase <UDID>
# Erase with JSON output
flowdeck simulator erase <UDID> --json
Options
| Option | Short | Description |
|---|
--verbose | -v | Show command output |
--json | -j | Output as JSON |
This action is destructive and cannot be undone. The simulator must be shutdown before erasing.
When to Use
- To test fresh app installation
- To clear corrupted simulator state
- Before running UI tests that need a clean slate
flowdeck simulator clear-cache
Clear simulator caches to free disk space and resolve caching issues.
flowdeck simulator clear-cache
flowdeck simulator clear-cache --verbose
Options
| Option | Short | Description |
|---|
--verbose | -v | Show command output |
When to Use
- When simulators are using too much disk space
- When experiencing strange caching behavior
- After updating Xcode
flowdeck simulator create
Create a new simulator with the specified device type and runtime.
# Create an iPhone 16 Pro simulator with iOS 18.1
flowdeck simulator create --name "My iPhone 16" \
--device-type "iPhone 16 Pro" --runtime "iOS 18.1"
# Create with JSON output
flowdeck simulator create --name "Test Device" \
--device-type "iPhone 15" --runtime "iOS 17.2" --json
Options
| Option | Short | Description |
|---|
--name <name> | -n | Name for the new simulator (required) |
--device-type <type> | | Device type, e.g., “iPhone 16 Pro” (required) |
--runtime <runtime> | | Runtime, e.g., “iOS 18.1” (required) |
--verbose | -v | Show command output |
--json | -j | Output as JSON |
Use flowdeck simulator device-types and flowdeck simulator runtimes to find available options.
JSON Output
{
"success": true,
"udid": "12345678-1234-1234-1234-123456789ABC",
"name": "My iPhone 16",
"deviceType": "iPhone 16 Pro",
"runtime": "iOS 18.1"
}
flowdeck simulator delete
Delete a simulator by UDID or name.
# Delete by UDID
flowdeck simulator delete <UDID>
# Delete by name (prompts if multiple matches)
flowdeck simulator delete "iPhone 15"
# Delete all unavailable simulators
flowdeck simulator delete placeholder --unavailable
Options
| Option | Short | Description |
|---|
--unavailable | | Delete all unavailable simulators (ignores identifier) |
--verbose | -v | Show command output |
flowdeck simulator prune
Delete unused simulators (those that have never been used) to free up disk space.
# Preview what would be deleted
flowdeck simulator prune --dry-run
# Delete unused simulators
flowdeck simulator prune
# Get JSON output for automation
flowdeck simulator prune --dry-run --json
Options
| Option | Short | Description |
|---|
--dry-run | | Show what would be deleted without deleting |
--verbose | -v | Show verbose output |
--json | -j | Output as JSON |
JSON Output
{
"dryRun": true,
"deleted": ["12345678-1234-1234-1234-123456789ABC"],
"count": 1
}
flowdeck simulator runtimes
List available simulator runtimes installed on your system.
flowdeck simulator runtimes
flowdeck simulator runtimes --json
Options
| Option | Short | Description |
|---|
--json | -j | Output as JSON |
JSON Output
[
{
"name": "iOS 18.1",
"identifier": "com.apple.CoreSimulator.SimRuntime.iOS-18-1",
"version": "18.1",
"isAvailable": true
}
]
flowdeck simulator device-types
List available simulator device types for creating new simulators.
flowdeck simulator device-types
flowdeck simulator device-types --json
Options
| Option | Short | Description |
|---|
--json | -j | Output as JSON |
JSON Output
[
{
"name": "iPhone 16 Pro",
"identifier": "com.apple.CoreSimulator.SimDeviceType.iPhone-16-Pro"
}
]