Recommended Workflow
The recommended workflow is to useflowdeck config set to save project settings, then run commands without parameters:
flowdeck config set saves runtime selection state. Shared project settings live separately in .flowdeck/config.json and .flowdeck/config.local.json, while explicit --config files remain the portable way to script a full command invocation.Project Context
Thecontext command gives you (or your AI agent) everything needed to understand your project at a glance. Available schemes, build configurations, simulators, and connected devices.
Building Your App
Basic Build
Build for macOS
Use--device "My Mac" for macOS targets:
Build for Physical Device
Use--device with the device name or UDID:
Build Configurations
Specify Debug or Release configuration:Custom Xcodebuild Options
Pass arguments directly to xcodebuild:For the complete list of build options, see the Build Command Reference.
Running Your App
Build and Run on Simulator
- Builds the app
- Opens Simulator.app (if iOS)
- Boots the simulator (or uses already running)
- Installs the app
- Launches the app
flowdeck run launches app bundle schemes only. Pure Swift Package targets should use flowdeck build or flowdeck test; use -w with an Xcode app workspace or project when the goal is to launch an app.Build and Run on macOS
Mac Catalyst
Run an iOS app as Mac Catalyst using--device "My Mac Catalyst":
platform=macOS,variant=Mac Catalyst and runs it natively on your Mac.
Build and Run on Physical Device
For the complete list of run options including
--interactive and --wait-for-debugger, see the Run Command Reference.Run with Log Streaming
Stream OSLog output after launching:Run Without Building
Skip the build step and launch an existing app with--no-build:
- Quick iteration when you haven’t changed code
- Testing different launch configurations
- Launching after a manual Xcode build
- If a built app exists, it shows “⏭️ Running build from X ago” and launches immediately
- If no built app is found, it automatically falls back to building from source with “⚠️ No built app found. Building from source…”
App Launch Arguments
Pass arguments and environment variables to your app:JSON Output for Automation
Use--json for machine-readable output, essential for CI/CD pipelines:
Compiler warnings are hidden by default in regular and JSON output. Add
--show-warnings to build or run to surface them (console output in text mode, diagnostic events in JSON mode). Warning snapshots are always reconciled and stored in <DerivedData>/Warnings, even without --show-warnings.For complete CI/CD setup including license configuration and pipeline examples, see CI/CD Integration.
Custom Derived Data
FlowDeck uses~/Library/Developer/FlowDeck/DerivedData by default. Override it when you need isolation across builds:
Cleaning
Clean build artifacts before rebuilding:Config Files
Use the--config option to pass a set of pre-defined parameters from a JSON file. This is especially useful for CI/CD pipelines and complex build configurations.
--config file is the explicit command config format, not the same as .flowdeck/config.json or .flowdeck/config.local.json.
See Configuration File for the complete reference and the distinction between the two formats.
Performance Optimization
FlowDeck CLI automatically:- Detects CPU core count for parallel builds
- Uses optimized build settings
- Enables incremental compilation
Troubleshooting
”Workspace not found”
Ensure you’re specifying the correct path:“Scheme not found”
Useflowdeck context --json to discover available schemes:
