Skip to main content
FlowDeck CLI provides comprehensive simulator management capabilities, allowing you to list, create, boot, and manage iOS simulators without leaving your terminal.

Listing Simulators

List All Simulators

flowdeck simulator list

Filter by Platform

flowdeck simulator list --platform iOS
flowdeck simulator list --platform tvOS
flowdeck simulator list --platform watchOS
flowdeck simulator list --platform visionOS

Show Only Available Simulators

flowdeck simulator list --available-only

JSON Output

flowdeck simulator list --json
Example output:
iOS Simulators:
--------------------------------------------------
  🟢 [✓] iPhone 16 Pro
     OS: iOS 18.0 | State: Booted
     UDID: 12345678-1234-1234-1234-123456789ABC

  ⚪️ [✓] iPhone 16
     OS: iOS 18.0 | State: Shutdown
     UDID: 23456789-2345-2345-2345-23456789ABCD

Found 2 simulator(s)
🟢 1 booted
Legend:
  • 🟢 = Booted
  • ⚪️ = Shutdown
  • [✓] = Available
  • [✗] = Unavailable

Booting & Shutting Down

Boot a Simulator

flowdeck simulator boot <UDID>

Shutdown a Simulator

flowdeck simulator shutdown <UDID>

Open Simulator.app

flowdeck simulator open

Creating Simulators

Create a New Simulator

flowdeck simulator create \
  --name "My Test iPhone" \
  --device-type "iPhone 15 Pro" \
  --runtime "iOS 17.2"

Find Available Options

# List available device types
flowdeck simulator device-types

# List available runtimes
flowdeck simulator runtimes

Deleting Simulators

Delete by UDID

flowdeck simulator delete <UDID>

Delete Unavailable Simulators

Remove all simulators that are no longer available:
flowdeck simulator delete --unavailable

Prune Unused Simulators

Delete simulators that have never been used:
flowdeck simulator prune

Screenshots

Capture a screenshot from a running simulator:
# Save to default location
flowdeck simulator screenshot <UDID>

# Custom output path
flowdeck simulator screenshot <UDID> --output ~/Desktop/screenshot.png

Cache Management

Clear Simulator Cache

flowdeck simulator clear-cache

Erase Simulator Contents

Reset a simulator to factory state:
flowdeck simulator erase <UDID>
Erasing a simulator deletes all apps, data, and settings. This cannot be undone.

CI/CD Usage

Boot Simulator Before Tests

# Get UDID from list
UDID=$(flowdeck simulator list --platform iOS --json | jq -r '.[0].udid')

# Boot if not already running
flowdeck simulator boot "$UDID"

# Run tests
flowdeck test --workspace MyApp.xcworkspace --simulator "iPhone 16"

Create Fresh Simulator for CI

# Create a clean simulator
flowdeck simulator create \
  --name "CI-iPhone" \
  --device-type "iPhone 16" \
  --runtime "iOS 18.0" \
  --json

# Run tests
flowdeck test --workspace MyApp.xcworkspace --simulator "CI-iPhone"

# Delete when done
flowdeck simulator delete "CI-iPhone"

JSON Output Examples

simulator list —json

[
  {
    "udid": "12345678-1234-1234-1234-123456789ABC",
    "name": "iPhone 16 Pro",
    "platform": "iOS",
    "os": "iOS 18.0",
    "state": "Booted",
    "isAvailable": true
  }
]

simulator runtimes —json

[
  {
    "identifier": "com.apple.CoreSimulator.SimRuntime.iOS-18-0",
    "name": "iOS 18.0",
    "version": "18.0",
    "isAvailable": true
  }
]

Troubleshooting

Simulator Won’t Boot

Try erasing and rebooting:
flowdeck simulator erase <UDID>
flowdeck simulator boot <UDID>

Simulator Not Found

Verify the simulator exists and get its UDID:
flowdeck simulator list --json | jq '.[] | {name, udid}'

Old Runtimes

Check for available runtimes and update Xcode if needed:
flowdeck simulator runtimes