Skip to main content
FlowDeck CLI provides a comprehensive set of commands for managing Xcode projects, simulators, devices, and builds from the command line.

Command Structure

flowdeck <command> [subcommand] [options]

Quick Reference

Build & Run

CommandDescription
initSave project settings (workspace, scheme, simulator)
contextDiscover project structure (workspace, schemes, simulators)
buildBuild the project for simulator, device, or macOS
runBuild and launch the app on simulator, device, or macOS
testRun unit and UI tests (alias for test run)
test runRun unit and UI tests
test discoverDiscover available tests without building
cleanClean build artifacts and Xcode caches
Legacy aliases like ctx, log, sim, dev are still supported for backward compatibility but are hidden from help output.

App Management

CommandDescription
appsList apps launched by FlowDeck
logs / logStream app logs
stopStop a running app

Simulator Management

CommandDescription
simulator listList available simulators
simulator bootBoot a simulator
simulator shutdownShutdown a simulator
simulator openOpen Simulator.app
simulator screenshotCapture a screenshot
simulator eraseReset simulator to factory
simulator clear-cacheClear simulator caches
simulator createCreate a new simulator
simulator deleteDelete a simulator
simulator pruneDelete unused simulators
simulator runtime listList installed runtimes
simulator runtime createDownload and install a runtime
simulator runtime deleteRemove a runtime
simulator runtime pruneDelete simulators for a runtime
simulator device-typesList available device types

Device Management

CommandDescription
device listList connected devices
device installInstall app on device
device uninstallRemove app from device
device launchLaunch app on device

Project Management

CommandDescription
project schemesList schemes in workspace
project configsList build configurations (Debug, Release, etc.)
project packages listList installed Swift packages
project packages addAdd a new package dependency
project packages removeRemove a package dependency
project packages resolveResolve Swift Package dependencies
project packages updateUpdate packages to latest versions
project packages clearClear package cache (SourcePackages)
project sync-profilesSync provisioning profiles via build

Utilities

CommandDescription
license statusCheck license status
license activateActivate license on this machine
license deactivateDeactivate license
updateCheck for and install updates
changelogView release notes and changes
For CI/CD environments, set the FLOWDECK_LICENSE_KEY environment variable instead of activating.

Common Options

Most commands support these options:
OptionShortDescription
--json-jOutput as JSON (for automation)
--workspace <path>-wPath to .xcworkspace or .xcodeproj
--scheme <name>-sBuild scheme name
--simulator <name>-SSimulator name/UDID
--device <name>-DPhysical device name/UDID, or “My Mac” for macOS
--configuration <name>-CBuild configuration (Debug/Release)
--project <path>-pProject directory
--verbose-vShow detailed output
--config <path>-cLoad settings from config file
--examplesShow usage examples for a command

Exit Codes

CodeDescription
0Success
1Failure

Environment Variables

VariableDescription
FLOWDECK_LICENSE_KEYLicense key for CI/CD environments
DEVELOPER_DIROverride Xcode installation path
FLOWDECK_NO_UPDATE_CHECKSet to 1 to disable update checks

Config File

Many commands support loading settings from a JSON config file via --config:
{
  "workspace": "MyApp.xcworkspace",
  "scheme": "MyApp",
  "configuration": "Debug",
  "platform": "iOS",
  "version": "18.0",
  "derivedDataPath": "/custom/path"
}
This is useful for saving project configuration once and reusing it across commands.