macOS

MacOS instances run on Apple M2 Pro or M4 Pro processors, delivering native Apple Silicon performance. These processors provide hardware acceleration for graphics, machine learning, and compute workloads.

Built for Apple Development

The platform includes native support for the complete Apple development ecosystem, including Xcode, iOS, and Metal.

Our macOS environment is optimized for Apple development workflows:

  • Fast access to the latest Xcode and macOS versions
  • Multiple supported OS versions: Sonoma (14), Sequoia (15) and Tahoe (26)
  • Build and test native iOS and macOS applications
  • Support for up to 12 vCPU and 56GB of RAM

VNC Integration

Namespace supports visual debug access which is invaluable for debugging GUI applications, testing user interfaces, and investigating display-related issues.

Access your Mac runners through Remote Display (VNC) directly from the Namespace dashboard.

Tahoe Remote Display

You can also start a VNC session using our CLI:

$nsc vnc <instance-id>

VNC support is currently available for macOS runners. Support for other platforms is in development.

Base Image Selection

When starting a macOS workload on Namespace you can define requirements for the desired base image in form of selectors. The selectors are a sequence of name-value pairs passed to instance creation request. Note that there may be multiple selectors for the same name (all of them will try to be satisfied).

Available Selectors

These are the available selectors and options:

NameValueDescription
macos.versionbase system version
14.xmacOS Sonoma
15.xmacOS Sequoia
26.xmacOS Tahoe
image.withcan be specified multiple times
xcode-26with Xcode 26
xcode-betawith beta versions of Xcode

Using these selectors you can identify the following images:

macos.version=14.x
macOS Sonoma
macos.version=15.x
macOS Sequoia with Xcode 16
macos.version=15.x,image.with=xcode-26
macOS Sequoia with Xcode 26 and betas
macos.version=26.x
macOS Tahoe with Xcode 26
macos.version=26.x,image.with=xcode-beta
macOS Tahoe with Xcode 26 beta

How to Use

The selectors can be specified on the command line when nsc CLI is used:

nsc create --selectors name1=value1,name2=value2 ...

They are part of InstanceShape message in Namespace SDK.

macOS Image Updates

Namespace team continuously makes changes to macOS runner images to keep the software up-to-date and add new Xcode versions as soon as Apple releases them. To get notified about upcoming changes and releases subscribe to the RSS feed:

Xcode 26 Compilation Cache

Xcode 26 introduces a new Compilation Cache feature that significantly speeds up build times by reusing compiled outputs across checkouts and builds. This feature can be used in conjunction with Namespace Cache Volumes to leverage the compilation cache across CI runs.

Xcode Caching on GitHub Runners

Xcode caching is fully integrated into Namespace GitHub Runners:

  1. Turn on caching for your runners via Runner Profile or runner labels.
  2. Add namespacelabs/nscloud-cache-action step to your workflow to configure Xcode to use the cache (also SwiftPM and CocoaPods caches):
    - name: Configure Xcode Caching
      uses: namespacelabs/nscloud-cache-action@v1
      with:
        cache: |
          xcode
          swiftpm
          cocoapods

You can verify that the caching kicks in by observing CompilationCacheMetrics section in xcodebuild output:

...
CompilationCacheMetrics
note: 4 hits / 4 cacheable tasks (100%)
...
Last updated