Quick Start
JSON Output Mode
Add--json or -j to any command for machine-readable NDJSON (newline-delimited JSON) output:
Event Types
FlowDeck emits structured events that you can parse line-by-line:| Event Type | Description | When Emitted |
|---|---|---|
status | Progress updates | During operations (building, testing, launching) |
output | Raw process output | Build output, test output, logs |
diagnostic | Compiler errors/warnings | When xcodebuild reports issues |
result | Operation completion | At end of build, test, clean operations |
app_log | Informational messages | Status messages, configuration info |
message | Structured messages | Warnings, errors, info with context |
test_started | Test case started | When a test begins |
test_passed | Test case passed | When a test succeeds |
test_failed | Test case failed | When a test fails (includes failure details) |
test_skipped | Test case skipped | When a test is skipped |
configuration | Build configuration | At start of build/run/test |
configuration events include the resolved Derived Data path so automation can trace build artifacts.
Event Structure
All events follow a standardized structure:Parsing JSON Output
Usejq or similar tools to extract specific information:
Shell Script Example
Configuration Files
Store build settings in JSON files for reproducible builds:Config File Structure
Config File Fields
| Field | Type | Required | Description |
|---|---|---|---|
workspace | string | Yes | Path to .xcworkspace or .xcodeproj |
scheme | string | Yes | Scheme name to build |
configuration | string | No | Build configuration (Debug/Release) |
platform | string | No | Target platform: iOS, macOS, watchOS, tvOS, visionOS |
version | string | No | OS version (e.g., 18.0) |
simulatorUdid | string | No | Specific simulator UDID |
deviceUdid | string | No | Physical device UDID |
derivedDataPath | string | No | Custom derived data directory (default: ~/Library/Developer/FlowDeck/DerivedData) |
xcodebuild | object | No | Passthrough settings for xcodebuild |
appLaunch | object | No | Arguments and env vars passed to app at launch |
See Configuration File for complete reference and examples.
Init Command
Save project settings to avoid repeating options on every command:~/.flowdeck/ and automatically loaded by subsequent commands.
Init Options
| Option | Short | Description |
|---|---|---|
--workspace | -w | Path to workspace or project |
--scheme | -s | Scheme name |
--simulator | -S | Simulator name or UDID |
--device | -D | Device name or UDID |
--configuration | -C | Build configuration |
Exit Codes
All commands return appropriate exit codes for scripting:| Code | Description |
|---|---|
0 | Success |
1 | Failure (build failed, tests failed, etc.) |
64 | Usage error (invalid arguments) |
Environment Variables
| Variable | Description |
|---|---|
FLOWDECK_LICENSE_KEY | License key for CI/CD (no activation needed) |
DEVELOPER_DIR | Override Xcode installation path |
FLOWDECK_NO_UPDATE_CHECK | Set to 1 to disable update notifications |
Common Automation Patterns
Pattern 1: Config-Driven Builds
Pattern 2: State-Driven Shortcuts
Pattern 3: JSON Streaming
Pattern 4: CI/CD Pipeline
Pattern 5: Dynamic Simulator Selection
Commands with JSON Support
Most commands support--json output:
| Command | JSON Support | Notes |
|---|---|---|
build | Yes | Full event streaming |
run | Yes | Includes app logs |
test | Yes | Test results with details |
clean | Yes | Clean status events |
logs | Yes | Structured log events |
simulator list | Yes | Array of simulators |
simulator boot | Yes | Boot status |
device list | Yes | Array of devices |
project schemes | Yes | Array of schemes |
project configs | Yes | Array of configurations |
apps | Yes | Running app list |
license status | Yes | License details |
AI Agent Integration
FlowDeck’s JSON output makes it ideal for AI-powered development tools like Claude Code, Cursor, and CodeX. The structured output allows AI agents to:- Parse build errors and suggest fixes
- Monitor test results and identify failing tests
- Automate build-test-fix cycles
- Track simulator and device state
See AI Agent Integration for setup guides for specific AI tools.
Next Steps
- CI/CD Integration - Complete CI/CD setup guide
- Configuration File - Full config file reference
- Xcodebuild Arguments - Passthrough options for xcodebuild
- App Launch Settings - App launch arguments and environment
