Skip to main content

flowdeck apps

List apps that were launched by FlowDeck.
# List running apps
flowdeck apps

# Include stopped apps
flowdeck apps --all

# Clean up stale entries
flowdeck apps --prune

# JSON output
flowdeck apps --json

Options

OptionShortDescription
--all-aShow all apps including stopped ones
--pruneValidate and remove stale entries
--json-jOutput as JSON

JSON Output

{
  "apps": [
    {
      "id": "abc12345-1234-5678-9abc-def012345678",
      "shortId": "abc123",
      "bundleId": "com.example.MyApp",
      "status": "running",
      "targetType": "simulator",
      "targetName": "iPhone 16 Pro",
      "scheme": "MyApp",
      "pid": 54321,
      "launchedAt": "2025-01-15T10:30:00Z"
    }
  ],
  "staleRemoved": 0
}
App Status Values:
StatusDescription
runningApp is currently running
stoppedApp was stopped normally
crashedApp crashed
exitedApp exited
waitingForDebuggerApp waiting for debugger to attach
unknownStatus cannot be determined

flowdeck logs

Stream real-time logs from a running app. Alias: log
# Stream logs (use App ID from 'flowdeck apps')
flowdeck logs <app-id>

# Stream logs in JSON format
flowdeck logs <app-id> --json

Options

OptionShortDescription
--json-jOutput as JSON
Use flowdeck apps to get the app ID. You can use either the short ID (e.g., abc123) or the bundle ID.

Log Output Format

Logs are prefixed by their source:
[console]   Messages from print() statements
[category]  Messages from os_log() with category
[subsystem] Messages from Logger() with subsystem

JSON Output

{"type":"log","level":"info","category":"console","message":"Hello, World!","timestamp":"2025-01-15T10:30:00Z"}
{"type":"log","level":"debug","category":"MyCategory","message":"User logged in","timestamp":"2025-01-15T10:30:01Z"}

flowdeck stop

Stop a running app.
# Stop specific app
flowdeck stop <app-id>

# Stop all running apps
flowdeck stop --all

# Force kill unresponsive app
flowdeck stop <app-id> --force

Options

OptionShortDescription
--all-aStop all running apps
--force-fForce kill (SIGKILL instead of SIGTERM)
--json-jOutput as JSON

JSON Output

{
  "type": "result",
  "success": true,
  "operation": "stop",
  "appId": "abc123",
  "bundleId": "com.example.MyApp"
}

flowdeck context

Discover project structure including workspace, schemes, simulators, and build configurations. This is typically the first command to run in a new project. Alias: ctx
# Human-readable output
flowdeck context

# JSON output (recommended for AI agents)
flowdeck context --json

# Specific project directory
flowdeck context --project /path/to/project

Options

OptionShortDescription
--project <path>-pProject directory (defaults to current directory)
--json-jOutput as JSON

JSON Output

{
  "workspace": "MyApp.xcworkspace",
  "schemes": [
    {
      "name": "MyApp",
      "category": "iOS",
      "isShared": true,
      "productType": "application",
      "platform": "iOS"
    },
    {
      "name": "MyAppTests",
      "category": "Tests",
      "isShared": true
    }
  ],
  "buildConfigurations": ["Debug", "Release"],
  "simulators": [
    {
      "udid": "12345678-1234-1234-1234-123456789ABC",
      "name": "iPhone 16 Pro",
      "platform": "iOS",
      "osVersion": "18.0",
      "state": "Shutdown"
    }
  ]
}

Typical Workflow

# 1. Discover project info
flowdeck context --json

# 2. Build with discovered parameters
flowdeck build --workspace MyApp.xcworkspace --simulator "iPhone 16"

# 3. Run with discovered parameters
flowdeck run --workspace MyApp.xcworkspace --simulator "iPhone 16 Pro"

flowdeck scheme list

List all schemes in a workspace or project. Alias: sch list
# List schemes in a workspace
flowdeck scheme list --workspace MyApp.xcworkspace

# List schemes as JSON
flowdeck scheme list --workspace MyApp.xcworkspace --json

# Use saved configuration
flowdeck scheme list

Options

OptionShortDescription
--workspace <path>-wPath to .xcworkspace or .xcodeproj
--project <path>-pProject directory (defaults to current directory)
--json-jOutput as JSON

JSON Output

[
  {
    "name": "MyApp",
    "category": "iOS",
    "isShared": true,
    "productType": "application",
    "platform": "iOS"
  }
]

flowdeck scheme info

Show detailed information about a scheme. Alias: sch info
# Show scheme info
flowdeck scheme info --workspace MyApp.xcworkspace --scheme MyApp

# Show scheme info as JSON
flowdeck scheme info --workspace MyApp.xcworkspace --scheme MyApp --json

# Use saved configuration
flowdeck scheme info

Options

OptionShortDescription
--workspace <path>-wPath to .xcworkspace or .xcodeproj
--scheme <name>-sScheme name to inspect
--project <path>-pProject directory (defaults to current directory)
--json-jOutput as JSON

JSON Output

{
  "name": "MyApp",
  "path": "/path/to/MyApp.xcscheme",
  "isShared": true,
  "buildAction": {
    "parallelizeBuildables": true,
    "targets": [
      {
        "name": "MyApp",
        "buildForTesting": true,
        "buildForRunning": true,
        "buildForProfiling": true,
        "buildForArchiving": true,
        "buildForAnalyzing": true
      }
    ]
  },
  "testAction": {
    "testTargets": ["MyAppTests", "MyAppUITests"]
  },
  "launchAction": {
    "buildableName": "MyApp.app",
    "launchStyle": "Auto"
  }
}

flowdeck buildconfig

List available build configurations for a project. Aliases: config, cfg
flowdeck buildconfig --workspace MyApp.xcworkspace
flowdeck buildconfig --workspace MyApp.xcworkspace --json

Options

OptionShortDescription
--workspace <path>-wPath to .xcworkspace or .xcodeproj (required)
--json-jOutput as JSON

JSON Output

{
  "configurations": ["Debug", "Release"]
}