Xscape lets developers build and run iOS apps entirely from Linux, removing the need for a Mac on the desk. It works by orchestrating a macOS virtual machine, or a remote physical Mac, that handles the actual Xcode builds and iOS Simulator runs, while the developer interacts through a clean terminal UI on Linux. The name is a play on 'escape' and 'Xcode,' reflecting Roman Slack's goal of freeing iOS development from requiring expensive Apple hardware on hand.
The architecture splits responsibilities across machines. On the Linux host, the xscape CLI communicates over HTTP and WebSocket with an xscape-agent HTTP server running inside a QEMU/KVM macOS VM, which drives the iOS Simulator via simctl and xcodebuild. The running simulator is streamed back to the developer's browser through noVNC, so builds, simulator interaction, and real-time build logs are all accessible from Linux. Xscape supports two modes: a locally managed macOS VM, or connecting to a remote Mac over the network.
Xscape ships an interactive TUI that guides users through project, scheme, and device selection with breadcrumb navigation, back options, an iOS version picker, and progress indicators, alongside a setup wizard that verifies configuration, tests agent connectivity, checks the Xcode installation, and lists available simulators. Built in Rust as a workspace of crates (the Linux CLI, the macOS agent, and shared types), it is configured through a single TOML file. The project notes that running macOS in a VM is only permitted on Apple-branded hardware per Apple's EULA, while the remote Mac mode is fully compliant. It is released under the MIT license.
Key Features
- Build iOS apps from Linux using Xcode on a macOS VM or remote Mac
- Run apps in the iOS Simulator and view them in the browser via VNC
- Interactive TUI for project, scheme, and device selection
- Real-time build log streaming over WebSocket
- Local macOS VM management with QEMU/KVM
- Guided setup wizard for verifying and configuring the installation
- Two operating modes: local VM or remote Mac over the network
Tech Stack
Designed and built by Roman Slack, Lead AI Platform Engineer. See more of Roman Slack's work on the projects page or get in touch via the contact page.