{
  "@context": [
    "https://schema.org",
    {
      "nuanyue": "https://www.nuanyue.com/ns#"
    }
  ],
  "@type": "SoftwareApplication",
  "@id": "https://www.nuanyue.com/software/control-room/#software",
  "name": "Control Room",
  "description": "Control the Xcode Simulator's appearance, status bar, location and notifications.",
  "url": "https://www.nuanyue.com/software/control-room/",
  "mainEntityOfPage": "https://www.nuanyue.com/software/control-room/",
  "operatingSystem": "macOS",
  "applicationCategory": "DeveloperApplication",
  "sameAs": [
    "https://github.com/twostraws/ControlRoom"
  ],
  "license": "MIT",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD"
  },
  "nuanyue:record": {
    "schemaVersion": 1,
    "id": "software:control-room",
    "slug": "control-room",
    "name": "Control Room",
    "type": "SoftwareApplication",
    "entityType": "simulator control",
    "description": "Control the Xcode Simulator's appearance, status bar, location and notifications.",
    "shortDescription": "Control the Xcode Simulator's appearance, status bar, location and notifications.",
    "answer": "Control Room is a macOS app for driving the Xcode Simulator — iOS, tvOS and watchOS — through a window instead of `simctl` commands. It controls the simulator's UI appearance, its status bar, its location, and its notification and deep-link testing. It wraps Apple's own simctl tool, so Xcode 14.0 or later must be installed, and it needs macOS Big Sur to run. It is free and open source under the MIT licence.",
    "page": "https://www.nuanyue.com/software/control-room/",
    "dataUrl": "https://www.nuanyue.com/data/software/control-room.json",
    "categories": [
      "developer-tools"
    ],
    "tags": [],
    "platform": [
      "macOS"
    ],
    "architecture": [],
    "featured": false,
    "pricing": "open-source",
    "license": "MIT",
    "releaseDate": "2026-08-10",
    "openSource": true,
    "website": "https://github.com/twostraws/ControlRoom",
    "github": "https://github.com/twostraws/ControlRoom",
    "features": [
      "Take simulator screenshots and movies, optionally with device bezels",
      "Set the system time and date, including Apple's own 9:41",
      "Override Wi-Fi, cellular and battery status",
      "Override dark or light mode, language, accessibility options and Dynamic Type size",
      "Send test push notifications or trigger deep links",
      "Pick colours from the simulator and convert them to UIKit or SwiftUI code"
    ],
    "useCases": [
      "Producing App Store screenshots with a clean status bar and device bezel",
      "Testing how an app looks in dark mode, another language, or a larger Dynamic Type size"
    ],
    "formats": [],
    "integrations": [],
    "pros": [
      {
        "text": "Free and open source under the MIT licence, with no account and no paid tier.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "text": "Takes simulator screenshots and movies with optional device bezels, and sets the clock to Apple's own 9:41 — which is what App Store screenshots are expected to look like.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "text": "Overrides dark or light mode, language, accessibility options and Dynamic Type content size in one place, without relaunching the simulator.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "text": "Picks colours out of the simulator and converts them to UIKit or SwiftUI code, or drags them straight into an asset catalogue.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      }
    ],
    "cons": [
      {
        "text": "Requires Xcode 14.0 or later and macOS Big Sur to run, because it wraps Apple's simctl command.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "text": "It is a wrapper for simctl, so anything simctl cannot express is out of reach.",
        "status": "editorially-reviewed",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "text": "If the simctl command line tools are missing, the app reports it and you have to set them up in Xcode's Locations tab yourself.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      }
    ],
    "whoIsItFor": [
      "iOS developers who configure simulators often enough to want a window for it",
      "Anyone taking simulator screenshots that need a consistent status bar"
    ],
    "notFor": [
      "Macs without Xcode — Control Room wraps simctl, so the command must be present"
    ],
    "limitations": [],
    "updates": [],
    "faq": [
      {
        "question": "Is Control Room free?",
        "answer": "Yes. It is free and open source under the MIT licence.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "question": "Which simulators does it control?",
        "answer": "iOS, tvOS and watchOS simulators.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "question": "Do I need Xcode?",
        "answer": "Yes. Control Room wraps Apple's simctl command-line tool, so Xcode 14.0 or later must be installed.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "question": "How do I install Control Room?",
        "answer": "Download the source and build it in Xcode; it is built with SwiftUI, so it needs macOS Big Sur or later.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      }
    ],
    "relationships": [
      {
        "target": "axe",
        "type": "alternative",
        "reason": "Both drive iOS simulators from a Mac. AXe is a command-line tool built on Accessibility APIs and HID automation; Control Room is a SwiftUI window over Apple's simctl.",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "target": "blink",
        "type": "complements",
        "reason": "Control Room changes what a running simulator reports; Blink watches simulators and dev servers and restarts them when they stop.",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "target": "cleaner-for-xcode",
        "type": "complements",
        "reason": "Both tidy up after Xcode: Control Room configures the simulator, Cleaner for Xcode removes the generated files Xcode leaves behind.",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      }
    ],
    "sources": [
      {
        "id": "control-room:official",
        "type": "official_website",
        "url": "https://github.com/twostraws/ControlRoom",
        "title": "Control Room — official website",
        "trustLevel": "B",
        "accessedAt": null
      },
      {
        "id": "control-room:repository",
        "type": "github",
        "url": "https://github.com/twostraws/ControlRoom",
        "title": "Control Room — source repository",
        "trustLevel": "D",
        "accessedAt": null
      }
    ],
    "claims": [
      {
        "id": "software:control-room.isA",
        "subject": "software:control-room",
        "predicate": "isA",
        "value": "simulator control",
        "status": "editorially-reviewed",
        "sourceIds": [
          "control-room:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:control-room.supportsPlatform",
        "subject": "software:control-room",
        "predicate": "supportsPlatform",
        "value": [
          "macOS"
        ],
        "status": "verified",
        "sourceIds": [
          "control-room:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:control-room.officialWebsite",
        "subject": "software:control-room",
        "predicate": "officialWebsite",
        "value": "https://github.com/twostraws/ControlRoom",
        "status": "verified",
        "sourceIds": [
          "control-room:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:control-room.listedInCategory",
        "subject": "software:control-room",
        "predicate": "listedInCategory",
        "value": [
          "developer-tools"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "control-room:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:control-room.pricingModel",
        "subject": "software:control-room",
        "predicate": "pricingModel",
        "value": "Open source",
        "status": "developer-stated",
        "sourceIds": [
          "control-room:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:control-room.ownership",
        "subject": "software:control-room",
        "predicate": "ownership",
        "value": "Third-party product — not published by Nuanyue",
        "status": "editorially-reviewed",
        "sourceIds": [],
        "lastVerified": null
      },
      {
        "id": "software:control-room.isOpenSource",
        "subject": "software:control-room",
        "predicate": "isOpenSource",
        "value": true,
        "status": "verified",
        "sourceIds": [
          "control-room:repository",
          "control-room:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:control-room.licensedUnder",
        "subject": "software:control-room",
        "predicate": "licensedUnder",
        "value": "MIT",
        "status": "verified",
        "sourceIds": [
          "control-room:repository",
          "control-room:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:control-room.hasFeature",
        "subject": "software:control-room",
        "predicate": "hasFeature",
        "value": [
          "Take simulator screenshots and movies, optionally with device bezels",
          "Set the system time and date, including Apple's own 9:41",
          "Override Wi-Fi, cellular and battery status",
          "Override dark or light mode, language, accessibility options and Dynamic Type size",
          "Send test push notifications or trigger deep links",
          "Pick colours from the simulator and convert them to UIKit or SwiftUI code"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "control-room:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:control-room.usedFor",
        "subject": "software:control-room",
        "predicate": "usedFor",
        "value": [
          "Producing App Store screenshots with a clean status bar and device bezel",
          "Testing how an app looks in dark mode, another language, or a larger Dynamic Type size"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "control-room:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:control-room.audienceFor",
        "subject": "software:control-room",
        "predicate": "audienceFor",
        "value": [
          "iOS developers who configure simulators often enough to want a window for it",
          "Anyone taking simulator screenshots that need a consistent status bar"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "control-room:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:control-room.audienceNotFor",
        "subject": "software:control-room",
        "predicate": "audienceNotFor",
        "value": [
          "Macs without Xcode — Control Room wraps simctl, so the command must be present"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "control-room:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:control-room.advantage.0",
        "subject": "software:control-room",
        "predicate": "advantage",
        "value": "Free and open source under the MIT licence, with no account and no paid tier.",
        "status": "verified",
        "sourceIds": [
          "control-room:repository"
        ],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:control-room.advantage.1",
        "subject": "software:control-room",
        "predicate": "advantage",
        "value": "Takes simulator screenshots and movies with optional device bezels, and sets the clock to Apple's own 9:41 — which is what App Store screenshots are expected to look like.",
        "status": "verified",
        "sourceIds": [
          "control-room:repository"
        ],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:control-room.advantage.2",
        "subject": "software:control-room",
        "predicate": "advantage",
        "value": "Overrides dark or light mode, language, accessibility options and Dynamic Type content size in one place, without relaunching the simulator.",
        "status": "verified",
        "sourceIds": [
          "control-room:repository"
        ],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:control-room.advantage.3",
        "subject": "software:control-room",
        "predicate": "advantage",
        "value": "Picks colours out of the simulator and converts them to UIKit or SwiftUI code, or drags them straight into an asset catalogue.",
        "status": "verified",
        "sourceIds": [
          "control-room:repository"
        ],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:control-room.drawback.0",
        "subject": "software:control-room",
        "predicate": "drawback",
        "value": "Requires Xcode 14.0 or later and macOS Big Sur to run, because it wraps Apple's simctl command.",
        "status": "verified",
        "sourceIds": [
          "control-room:repository"
        ],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:control-room.drawback.1",
        "subject": "software:control-room",
        "predicate": "drawback",
        "value": "It is a wrapper for simctl, so anything simctl cannot express is out of reach.",
        "status": "editorially-reviewed",
        "sourceIds": [],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:control-room.drawback.2",
        "subject": "software:control-room",
        "predicate": "drawback",
        "value": "If the simctl command line tools are missing, the app reports it and you have to set them up in Xcode's Locations tab yourself.",
        "status": "verified",
        "sourceIds": [
          "control-room:repository"
        ],
        "lastVerified": "2026-10-16"
      }
    ],
    "lastUpdated": "2026-10-16T00:00:00.000Z",
    "lastReviewedAt": null
  }
}