FlowDeck CLI provides comprehensive simulator management capabilities, allowing you to list, create, boot, and manage iOS simulators without leaving your terminal.
Managing Simulators
List All Simulators
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 18.0
✓ iPhone 16 Pro (Booted)
12345678-1234-1234-1234-123456789ABC
iPhone 16
23456789-2345-2345-2345-23456789ABCD
Total: 2 simulator(s), 1 booted
Booting & Shutting Down
Boot a Simulator
flowdeck simulator boot <UDID>
Shutdown a Simulator
flowdeck simulator shutdown <UDID>
Open Simulator.app
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 installed runtimes
flowdeck simulator runtime list
# List downloadable runtimes
flowdeck simulator runtime available
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:
Screenshots
Capture a screenshot (and accessibility tree when needed) via UI automation:
# Start background session capture (trees + screenshots)
flowdeck ui simulator session start
# One-off screenshot + accessibility tree
flowdeck ui simulator screen
# Tree-only output (no screenshot bytes)
flowdeck ui simulator screen --tree --json
See UI Automation for more screenshot options, including --optimize for AI-friendly output.
FlowDeck’s UI automation is a core CLI feature (not a simulator subcommand) that targets iOS simulators.
See the UI Automation overview for examples and the full command reference for all commands and flags.
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 runtime list —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 runtime list