macOS - Namespace Documentation
Documentation Index
Fetch the complete documentation index at: /docs/llms.txt
Use this file to discover all available pages before exploring further.
Assistant
Responses are generated using AI and may contain mistakes.
macOS instances run on Apple M4 Pro or M5 Max processors, delivering native Apple Silicon performance. These processors provide hardware acceleration for graphics, machine learning, and compute workloads.Note: To switch to M5 Max exclusively, reach out to us via support@namespace.so.
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), Tahoe (26) and Golden Gate (27)
- Use shape selectors to specify desired base image.
- 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.
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.
Running Custom Applications
You can run your own applications directly on macOS instances using the
Namespace Compute API. An instance is created with one or more applications, each pointing at a container
image that carries your binary and the command to execute.The macrun example
demonstrates the full flow:
- Build a
darwin/arm64binary (CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build). - Package it into a container image and push it to the Namespace Container Registry.
- Create a macOS instance with an
InstanceShape(Os: "macos",MachineArch: "arm64") and anApplicationRequestreferencing the pushed image, theCommandto run, and itsArgs. - Wait for the instance to become ready.
resp, err := cli.Compute.CreateInstance(ctx, &computepb.CreateInstanceRequest{
Shape: &computepb.InstanceShape{
VirtualCpu: 6,
MemoryMegabytes: 14 * 1024,
Os: "macos",
MachineArch: "arm64",
},
Applications: []*computepb.ApplicationRequest{{
Name: "helloworld",
ImageRef: mainImage,
Command: "entrypoint",
Args: []string{"-what", "caller"},
}},
})
See the integrations repository for the complete, runnable example.
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:
| Name | Value | Description |
|---|---|---|
| macos.version | base system version | |
14.x |
macOS Sonoma | |
15.x |
macOS Sequoia | |
26.x |
macOS Tahoe | |
27.x |
macOS Golden Gate | |
| image.with | can be specified multiple times | |
xcode-26 |
with Xcode 26 | |
xcode-beta |
with beta versions of Xcode |
Using these selectors you can identify the following images:macos.version=14.x
: macOS Sonomamacos.version=15.x
: macOS Sequoia with Xcode 16macos.version=15.x,image.with=xcode-26
: macOS Sequoia with Xcode 26 and betasmacos.version=26.x
: macOS Tahoe with Xcode 26macos.version=26.x,image.with=xcode-beta
: macOS Tahoe with Xcode 26 betamacos.version=27.x
: macOS Golden Gate with Xcode 27
An image can include multiple Xcode versions under /Applications/Xcode_*.app. Image selectors choose
the base image, which determines the installed Xcode versions and the default. They do not select a
specific installed patch version. The runner images page
lists the Xcode versions included in each image. You can also list the versions on a runner and use
xcode-select to switch to the one you need:
ls -d /Applications/Xcode_*.app
sudo xcode-select --switch /Applications/Xcode_26.6.app
xcodebuild -version
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:Base Images Updates
OS Simulators
macOS instances ship with the Apple platform simulators, so you can build and test across Apple’s operating systems without physical devices. The available simulators are:
- iOS
- tvOS
- visionOS
- watchOS
We offer broad simulator support, including the latest Duo simulator.
The latest Duo simulator is only available on macOS Tahoe 26.6.2 with Xcode 27.1-Beta.To see exactly which simulators and device types your macOS instance offers, run the following in your instance:
xcrun simctl list devicetypes
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:
- Turn on caching for your runners via Runner Profile or runner labels.
- Add
namespacelabs/nscloud-cache-actionstep 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 looking at the CompilationCacheMetrics section in the logs that
xcodebuild outputs:
...
CompilationCacheMetrics
note: 4 hits / 4 cacheable tasks (100%)
...
Last modified onSeptember 22, 2026
Ctrl+I
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Namespace Documentation","colors":{"primary":"#1C32FF","light":"#6B78FF","dark":"#1C32FF"},"logo":{"light":"https://mintcdn.com/namespace-labs/qOJQ7kaWRgoS8lyv/logo-light.svg?fit=max\\u0026auto=format\\u0026n=qOJQ7kaWRgoS8lyv\\u0026q=85\\u0026s=6827b0c81c335badc1cef13b83383e1d","dark":"https://mintcdn.com/namespace-labs/qOJQ7kaWRgoS8lyv/logo-dark.svg?fit=max\\u0026auto=format\\u0026n=qOJQ7kaWRgoS8lyv\\u0026q=85\\u0026s=63702d83d8fb259023deb79db06aabbb","href":"https://namespace.so"},"favicon":"https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/favicon.svg?fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=6f14a088da55e5f41847845796737353","navbar":{"links":\[{"href":"https://namespace.so/changelog","label":"Changelog"},{"href":"https://namespace.so/support","label":"Support"}\],"primary":{"type":"button","label":"Log in","href":"https://cloud.namespace.so"}},"footer":{"socials":{"github":"https://github.com/namespacelabs","linkedin":"https://www.linkedin.com/company/namespacelabs","x":"https://x.com/namespacelabs"}},"icons":{"library":"lucide"},"contextual":{"options":\["copy","view","chatgpt","claude"\],"display":"header"},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"global":{"anchors":\[{"anchor":"Changelog","icon":"history","href":"https://namespace.so/changelog"},{"anchor":"Trust Center (SOC2)","icon":"shield-check","href":"https://trust.namespace.so/"},{"anchor":"Status","icon":"activity","href":"https://namespace-status.com/"},{"anchor":"Support","icon":"message-circle","href":"https://namespace.so/support"}\]},"pages":\[\]}},"deployment":{"deploymentMetadataValue":{"subdomain":"namespace-labs","hasAudioNarration":false,"actualSubdomain":"namespace-labs","customDomains":\["namespace.so"\],"gitSource":{"type":"github","owner":"namespacelabs","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae0862207896b4595e1934b","collectionId":"847aecca-4a0b-40b4-a393-e976cc214b43","liveDeploymentHistoryId":"6ae0862207896b4595e1934b","schemaVersion":"v3"},"entitlements":{"AI\_CHAT":{"status":"ENABLED"},"WEB\_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae0a8f6edbd4c098a94623c","clientVersion":"0.0.3971","searchFilterCounts":\[{"language":"default","tag":"Products","count":377},{"language":"default","tag":"CLI","count":166},{"language":"default","tag":"Command line","count":165},{"language":"default","tag":"Namespace CLI","count":131},{"language":"default","tag":"Documentation","count":104},{"language":"default","tag":"GitHub Actions","count":40},{"language":"default","tag":"Devbox CLI","count":34},{"language":"default","tag":"Integrations","count":33},{"language":"default","tag":"SDK","count":25},{"language":"default","tag":"Namespace SDK","count":23}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"snippets/diagrams/styles.css","content":".ns-diagram{--ns-diagram-background:#ffffff;--ns-diagram-grid:#e5e7ee;--ns-diagram-border:#e5e7ee;--ns-diagram-card:#ffffff;--ns-diagram-neutral-zone:#fafbfc;--ns-diagram-brand-zone-start:rgba(28, 50, 255, 0.04);--ns-diagram-brand-zone-end:rgba(28, 50, 255, 0.07);--ns-diagram-brand-border:#c8ceff;--ns-diagram-heading:#202938;--ns-diagram-muted:#8892a6;--ns-diagram-copy:#4a5468;position:relative;width:100%;margin:2rem 0;padding:clamp(20px,3.5vw,32px);overflow:hidden;color:var(--ns-diagram-heading);background:var(--ns-diagram-background);border:1px solid var(--ns-diagram-border);border-radius:20px;box-shadow:0 1px 0 rgba(32,41,56,.04),0 1px 2px rgba(32,41,56,.06)}.dark .ns-diagram{--ns-diagram-background:#111827;--ns-diagram-grid:#374151;--ns-diagram-border:#374151;--ns-diagram-card:#1f2937;--ns-diagram-neutral-zone:#171f2d;--ns-diagram-brand-zone-start:rgba(107, 120, 255, 0.1);--ns-diagram-brand-zone-end:rgba(107, 120, 255, 0.16);--ns-diagram-brand-border:#4f5fc7;--ns-diagram-heading:#f3f4f6;--ns-diagram-muted:#aeb6c5;--ns-diagram-copy:#cbd5e1}.ns-diagram-grid-background{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,var(--ns-diagram-grid) 1px,transparent 1px);background-size:16px 16px;opacity:.5;mask-image:linear-gradient(180deg,transparent 0,#000 10%,#000 90%,transparent 100%)}.ns-diagram-content{position:relative}.ns-diagram-caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ns-diagram-mark{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;margin:0;border-radius:8px}.ns-diagram-mark-anthropic{color:#d97757;background:#fcefe8}.ns-diagram-mark-devin{color:#4338ca;background:#eef0ff}.ns-diagram-mark-cursor{color:#111827;background:#eef0f3}.ns-diagram-mark-control{color:#1c32ff;background:#e0e7ff}.ns-diagram-mark-terminal{color:#fff;background:#202938}.ns-diagram-mark-worker{color:#4338ca;background:#eef1ff}.ns-diagram-zone{position:relative;display:flex;flex-direction:column;padding:1.25rem;background:var(--ns-diagram-neutral-zone);border:1px dashed #d2d6e0;border-radius:14px}.dark .ns-diagram-zone{border-color:#4b5563}.ns-diagram-zone-brand{background:linear-gradient(180deg,var(--ns-diagram-brand-zone-start),var(--ns-diagram-brand-zone-end));border:1px solid var(--ns-diagram-brand-border)}.ns-diagram-zone-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:var(--ns-diagram-copy);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.ns-diagram-zone-center{display:flex;flex:1;align-items:center}.ns-diagram-zone-center>*{width:100%}.ns-diagram-card{position:relative;display:flex;align-items:center;gap:1rem;min-width:0;padding:1rem 1.25rem;background:var(--ns-diagram-card);border:1px solid var(--ns-diagram-border);border-radius:12px;box-shadow:0 1px 0 rgba(32,41,56,.04),0 1px 2px rgba(32,41,56,.06)}.ns-diagram-card-brand{border-color:var(--ns-diagram-brand-border)}.ns-diagram-card-copy{display:flex;min-width:0;flex-direction:column}.ns-diagram-card-label{color:var(--ns-diagram-heading);font-size:16px;font-weight:600;line-height:1.25;letter-spacing:-.01em}.ns-diagram-card-sublabel{margin-top:.125rem;color:var(--ns-diagram-muted);font-size:12px;line-height:1.35}.ns-managed-layout{display:grid;grid-template-columns:1fr auto 1.05fr;align-items:stretch}.ns-managed-connector{display:flex;width:64px;flex-direction:column;align-items:center;justify-content:center;padding:0 .25rem;color:var(--ns-diagram-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10.5px}.ns-managed-connector>span{margin-bottom:.375rem}.ns-managed-connector-path{display:flex;width:56px;align-items:center}.ns-managed-connector-line{flex:1;height:1.5px;background:#d2d6e0}.ns-managed-connector-arrow{border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid #d2d6e0}.ns-mini-connector{display:flex;flex-direction:column;align-items:center;padding:.375rem 0}.ns-mini-connector>div{width:1.5px;height:12px;background:var(--ns-diagram-brand-border)}.ns-mini-connector>span{border-top:7px solid var(--ns-diagram-brand-border);border-right:5px solid transparent;border-left:5px solid transparent}.ns-devin-devboxes,.ns-devin-sessions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.ns-devin-mobile-layout{display:none}.ns-devin-connectors,.ns-devin-connectors>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ns-devin-connectors{gap:1.5rem}.ns-devin-connectors>div{padding:0 1rem}.ns-devin-connector{position:relative;display:flex;min-height:110px;align-items:center;justify-content:center;color:var(--ns-diagram-copy);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;line-height:1.25;text-align:center}.ns-devin-management-connector{min-height:70px;color:#6366f1}.ns-devin-connector-line{position:absolute;top:0;bottom:0;left:50%;width:1.5px;background:#d2d6e0;transform:translateX(-50%)}.ns-devin-management-connector .ns-devin-connector-line,.ns-diagram-connector-dashed .ns-diagram-vertical-line{width:0;background:0 0;border-left:1.5px dashed var(--ns-diagram-brand-border)}.ns-devin-connector>span,.ns-diagram-vertical-connector>span{position:relative;z-index:1;padding:0 .375rem;background:var(--ns-diagram-background)}.ns-control-plane-pill{display:flex;align-items:center;align-self:center;gap:.375rem;margin-bottom:1rem;padding:.375rem .75rem;color:#4338ca;background:#eef1ff;border:1px solid var(--ns-diagram-brand-border);border-radius:999px;font-size:12px;font-weight:500}.ns-diagram-vertical-connector{position:relative;display:flex;align-items:center;justify-content:center;color:var(--ns-diagram-copy);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;line-height:1.25;text-align:center}.ns-diagram-vertical-line{position:absolute;top:0;bottom:0;left:50%;width:1.5px;background:#d2d6e0;transform:translateX(-50%)}.ns-diagram-connector-dashed{color:#6366f1}.ns-diagram-arrow-down{position:absolute;bottom:0;left:50%;border-top:8px solid #d2d6e0;border-right:5px solid transparent;border-left:5px solid transparent;transform:translateX(-50%)}.ns-devin-management-connector .ns-diagram-arrow-down,.ns-diagram-connector-dashed .ns-diagram-arrow-down{border-top-color:var(--ns-diagram-brand-border)}.ns-bazel-connector-inset{padding:0 1rem}.ns-bazel-workers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}@media (max-width:767px){.ns-managed-layout{grid-template-columns:1fr}.ns-managed-connector{position:relative;width:auto;min-height:64px;padding:.5rem 0}.ns-managed-connector-path{width:auto;flex-direction:column}.ns-managed-connector-line{width:1.5px;height:24px;flex:none}.ns-managed-connector-arrow{border-top:9px solid #d2d6e0;border-right:6px solid transparent;border-bottom:0;border-left:6px solid transparent}.ns-devin-connectors,.ns-devin-devboxes,.ns-devin-sessions{grid-template-columns:1fr}.ns-devin-desktop-layout{display:none}.ns-devin-mobile-layout{display:block}.ns-devin-mobile-lane+.ns-devin-mobile-lane{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--ns-diagram-border)}.ns-devin-mobile-connectors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 .5rem}.ns-devin-connector{min-height:80px}.ns-bazel-workers{grid-template-columns:1fr}}"},{"filePath":"style.css","content":":root{--namespace-radius-inline:0.25rem;--namespace-radius-control:0.375rem;--namespace-radius-container:0.5rem}#content-container,.almond-layout>div,.card,.chat-assistant-floating-input>div,.code-block,.frame,.pagination-next,.pagination-prev{border-radius:var(--namespace-radius-container)}.code-block [data-component-part=code-block-root],.frame>div{border-radius:inherit}#assistant-entry,#chat-assistant-textarea,#search-bar-entry,#search-input,.callout,.frame>.relative{border-radius:var(--namespace-radius-control)}.code-block-fade-overlay{border-radius:0 var(--namespace-radius-container) var(--namespace-radius-container) 0}#page-context-menu>button:first-child{border-radius:var(--namespace-radius-control) 0 0 var(--namespace-radius-control)}#page-context-menu>button:last-child{border-radius:0 var(--namespace-radius-control) var(--namespace-radius-control) 0}#content :not(pre)>code,#navigation-items li>a,#navigation-items li>button{border-radius:var(--namespace-radius-inline)}#navigation-items .nav-anchor>:is(svg, img),#navigation-items .sidebar-group-icon,#navigation-items [data-component-part=scroll-area-content]:has(>ul.nav-anchors),#navigation-items li>:is(a, button)>div[class=\"h-[1lh]\"]:first-child{display:flex;flex-direction:column}#navigation-items [data-component-part=scroll-area-content]>ul.nav-anchors{order:1;margin-top:1rem;padding-top:1rem;border-top:1px solid color-mix(in srgb,currentColor 10%,transparent)}#navigation-items [data-component-part=scroll-area-content]>ul.sidebar-group{margin-top:.5rem}#navigation-items [data-component-part=scroll-area-content]>ul.sidebar-group+div{margin-top:1rem}.tab-container{overflow:hidden;padding:0 1rem 1rem;border:1px solid color-mix(in srgb,currentColor 12%,transparent);border-radius:var(--namespace-radius-container)}.tab-container [data-component-part=tab-content]>[data-table-wrapper]:last-child{margin-bottom:0;padding-bottom:0}#content .katex-display>.katex{text-align:left}.compact-table table td{min-width:0}#navigation-items ul.sidebar-group>li.space-y-px+li.space-y-px{margin-top:.75rem}#navigation-items .my-2>.sidebar-group-header{margin-bottom:.625rem;font-size:.8125rem;line-height:1.625rem;font-weight:600;letter-spacing:-.02em;text-transform:none;opacity:1}#navigation-items ul.sidebar-group>li.space-y-px>button{font-size:.8125rem;font-weight:600;letter-spacing:-.02em;background-color:transparent}#navigation-items ul.sidebar-group>li.space-y-px>button:hover,#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>button:hover{background-color:color-mix(in srgb,currentColor 6%,transparent)}#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>button,#navigation-items ul.sidebar-group>li.space-y-px>ul>li>a{padding-left:3rem!important;font-size:.8125rem;font-weight:400;letter-spacing:-.02em}#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>ul>li[data-active-nav-item=true]>a,#navigation-items ul.sidebar-group>li.space-y-px>ul>li[data-active-nav-item=true]>a{color:#121516!important;background-color:rgb(18 21 22/6%)!important}.dark #navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>ul>li[data-active-nav-item=true]>a,.dark #navigation-items ul.sidebar-group>li.space-y-px>ul>li[data-active-nav-item=true]>a{color:#f4f4f5!important;background-color:rgb(255 255 255/8%)!important}#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>button{background-color:transparent}#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>button>div[class=\"h-[1lh]\"]:first-child{margin-left:-1.75rem}.dark #navigation-items img[src*=buildkite-mark]{filter:brightness(.7)}.dark img[src*=\"/icons/apple.svg\"]{filter:invert(1)}.dark img.tab-icon[src*=\"/icons/linux.svg\"]{filter:invert(.35) brightness(1.54)}#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>ul>li>a{padding-left:4rem!important;font-size:.8125rem;font-weight:400;letter-spacing:-.02em}@media (min-width:1024px){#sidebar-content{width:calc(16.5rem + 10px)}#content-container{margin-left:calc(16.5rem + 10px)}#navbar{container-type:inline-size}#navbar .nav-tabs{position:fixed;top:0;left:20rem;height:3.5rem;column-gap:2rem}#navbar div:has(>div>.nav-tabs){justify-content:flex-end}@container (max-width: 69rem){#navbar .navbar-link:has(>a[href=\"https://namespace.so/changelog\\"\]){display:none}}}@media (min-width:1280px){#content-container{padding-right:1.5rem;padding-left:3rem}#content-container>div{column-gap:1.5rem;justify-content:flex-start}#content-area{width:calc(100% - 13.5rem);max-width:52rem;flex:none}#content-side-layout{width:15rem;max-width:15rem;flex-basis:15rem}#content-side-layout>div{width:15rem;padding-left:1rem}#content-side-layout>div>div{width:14rem}}@media (min-width:1700px){#content-container>div{justify-content:center}}"},{"filePath":"reference/github-actions/runner-configuration.css","content":""},{"filePath":"workspaces/access.css","content":""},{"filePath":"platform/workspaces/access.css","content":""},{"filePath":"reference/devbox-cli/desktop.css","content":""}],"page":{"pagePath":"architecture/compute/macos","slug":"/architecture/compute/macos","pageMetadata":{"title":"macOS","description":null,"href":"/architecture/compute/macos"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Info,Note,OptimizedImage,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`macOS instances run on Apple M4 Pro or M5 Max processors, delivering native Apple Silicon performance.\nThese processors provide hardware acceleration for graphics, machine learning, and compute workloads.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note:`}),` To switch to M5 Max exclusively, reach out to us via `,_jsx(_components.a,{href:`mailto:support@namespace.so`,children:`support@namespace.so`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`built-for-apple-development`,children:`Built for Apple Development`}),`\n`,_jsx(_components.p,{children:`The platform includes native support for the complete Apple development ecosystem, including Xcode, iOS, and Metal.`}),`\n`,_jsx(_components.p,{children:`Our macOS environment is optimized for Apple development workflows:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Fast access to the latest Xcode and macOS versions`}),`\n`,_jsxs(_components.li,{children:[`Multiple supported OS versions: Sonoma (14), Sequoia (15), Tahoe (26) and Golden Gate (27)`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Use `,_jsx(_components.a,{href:`#base-image-selection`,children:`shape selectors`}),` to specify desired base image.`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.li,{children:`Build and test native iOS and macOS applications`}),`\n`,_jsxs(_components.li,{children:[`Support for up to 12 vCPU and 56GB of RAM`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/architecture/compute/machine-shapes#macos-configurations`,children:`List of available shapes`})}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`vnc-integration`,children:`VNC Integration`}),`\n`,_jsx(_components.p,{children:`Namespace supports visual debug access which is invaluable for debugging GUI applications, testing user interfaces, and investigating display-related issues.`}),`\n`,_jsxs(_components.p,{children:[`Access your Mac runners through Remote Display (VNC) directly from the Namespace `,_jsx(_components.a,{href:`https://cloud.namespace.so/workspace/instances\`,children:\`dashboard\`}),\`.\`\]}),\`\\n\`,\_jsx(Frame,{style:{maxWidth:600,marginInline:`auto`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/namespace-labs/QVtD1jw4ML2vd3TZ/images/tahoeremotedisplay.webp?fit=max\\u0026auto=format\\u0026n=QVtD1jw4ML2vd3TZ\\u0026q=85\\u0026s=eb307b666028fb06a44f8cc4e2c0f758\`,alt:\`Tahoe Remote Display`,width:1600,height:1205,\"data-og-width\":`1600`,\"data-og-height\":`1205`,\"data-path\":`images/tahoeremotedisplay.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/namespace-labs/QVtD1jw4ML2vd3TZ/images/tahoeremotedisplay.webp?w=280\\u0026fit=max\\u0026auto=format\\u0026n=QVtD1jw4ML2vd3TZ\\u0026q=85\\u0026s=75a08aee7fea458edabec971f9b3c060 280w, https://mintcdn.com/namespace-labs/QVtD1jw4ML2vd3TZ/images/tahoeremotedisplay.webp?w=560\\u0026fit=max\\u0026auto=format\\u0026n=QVtD1jw4ML2vd3TZ\\u0026q=85\\u0026s=9d7f3dcd5cdd5735a6dd3a1ad9f04fff 560w, https://mintcdn.com/namespace-labs/QVtD1jw4ML2vd3TZ/images/tahoeremotedisplay.webp?w=840\\u0026fit=max\\u0026auto=format\\u0026n=QVtD1jw4ML2vd3TZ\\u0026q=85\\u0026s=4c062576abfe90862e82806394bd1d95 840w, https://mintcdn.com/namespace-labs/QVtD1jw4ML2vd3TZ/images/tahoeremotedisplay.webp?w=1100\\u0026fit=max\\u0026auto=format\\u0026n=QVtD1jw4ML2vd3TZ\\u0026q=85\\u0026s=aa81e7dba3049b934f5c23b4f987f70f 1100w, https://mintcdn.com/namespace-labs/QVtD1jw4ML2vd3TZ/images/tahoeremotedisplay.webp?w=1650\\u0026fit=max\\u0026auto=format\\u0026n=QVtD1jw4ML2vd3TZ\\u0026q=85\\u0026s=77344eeba245e06bb96ae9278e6ca043 1650w, https://mintcdn.com/namespace-labs/QVtD1jw4ML2vd3TZ/images/tahoeremotedisplay.webp?w=2500\\u0026fit=max\\u0026auto=format\\u0026n=QVtD1jw4ML2vd3TZ\\u0026q=85\\u0026s=66416068e3455ef925d8f6ec11ec8dce 2500w`})}),`\n`,_jsxs(_components.p,{children:[`You can also start a VNC session using our `,_jsx(_components.a,{href:`/reference/cli/installation`,children:`CLI`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`nsc`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vnc`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`instance-i`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`VNC support is currently available for macOS runners. Support for other platforms is in development.`}),`\n`,_jsx(Heading,{level:`2`,id:`running-custom-applications`,children:`Running Custom Applications`}),`\n`,_jsx(_components.p,{children:`You can run your own applications directly on macOS instances using the\nNamespace Compute API. An instance is created with one or more applications, each pointing at a container\nimage that carries your binary and the command to execute.`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsxs(_components.a,{href:`https://github.com/namespacelabs/integrations/blob/main/examples/macrun/macrun.go\`,children:\[\_jsx(\_components.code,{children:\`macrun\`}),\` example`]}),`\ndemonstrates the full flow:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Build a `,_jsx(_components.code,{children:`darwin/arm64`}),` binary (`,_jsx(_components.code,{children:`CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build`}),`).`]}),`\n`,_jsxs(_components.li,{children:[`Package it into a container image and push it to the `,_jsx(_components.a,{href:`/architecture/storage/container-registry`,children:`Namespace Container Registry`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Create a macOS instance with an `,_jsx(_components.code,{children:`InstanceShape`}),` (`,_jsx(_components.code,{children:`Os: \"macos\"`}),`, `,_jsx(_components.code,{children:`MachineArch: \"arm64\"`}),`) and an\n`,_jsx(_components.code,{children:`ApplicationRequest`}),` referencing the pushed image, the `,_jsx(_components.code,{children:`Command`}),` to run, and its `,_jsx(_components.code,{children:`Args`}),`.`]}),`\n`,_jsx(_components.li,{children:`Wait for the instance to become ready.`}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`resp`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` cli`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Compute`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`CreateInstance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ctx`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`computepb`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`CreateInstanceRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\tShape`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`computepb`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`InstanceShape`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tVirtualCpu`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`6`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tMemoryMegabytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`14`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` *`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1024`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tOs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"macos\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tMachineArch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"arm64\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t},`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\tApplications`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`*`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`computepb`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`ApplicationRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"helloworld\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tImageRef`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`mainImage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tCommand`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"entrypoint\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tArgs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#4EC9B0`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"-what\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"caller\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t}},`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`})`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`See the `,_jsx(_components.a,{href:`https://github.com/namespacelabs/integrations/tree/main/examples/macrun\`,children:\`integrations repository`}),`\nfor the complete, runnable example.`]}),`\n`,_jsx(Heading,{level:`2`,id:`base-image-selection`,children:`Base Image Selection`}),`\n`,_jsx(_components.p,{children:`When starting a macOS workload on Namespace you can define requirements for the desired base\nimage in form of selectors. The selectors are a sequence of name-value pairs passed to instance\ncreation request. Note that there may be multiple selectors for the same name (all of them will\ntry to be satisfied).`}),`\n`,_jsx(Heading,{level:`3`,id:`available-selectors`,children:`Available Selectors`}),`\n`,_jsx(_components.p,{children:`These are the available selectors and options:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Name`}),_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`macos.version`}),_jsx(_components.td,{}),_jsx(_components.td,{children:`base system version`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`14.x`})}),_jsx(_components.td,{children:`macOS Sonoma`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`15.x`})}),_jsx(_components.td,{children:`macOS Sequoia`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`26.x`})}),_jsx(_components.td,{children:`macOS Tahoe`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`27.x`})}),_jsx(_components.td,{children:`macOS Golden Gate`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`image.with`}),_jsx(_components.td,{}),_jsx(_components.td,{children:`can be specified multiple times`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`xcode-26`})}),_jsx(_components.td,{children:`with Xcode 26`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`xcode-beta`})}),_jsx(_components.td,{children:`with beta versions of Xcode`}),_jsx(_components.td,{})]})]})]}),`\n`,_jsx(_components.p,{children:`Using these selectors you can identify the following images:`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`macos.version=14.x`}),`\n: macOS Sonoma`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`macos.version=15.x`}),`\n: macOS Sequoia with Xcode 16`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`macos.version=15.x,image.with=xcode-26`}),`\n: macOS Sequoia with Xcode 26 and betas`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`macos.version=26.x`}),`\n: macOS Tahoe with Xcode 26`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`macos.version=26.x,image.with=xcode-beta`}),`\n: macOS Tahoe with Xcode 26 beta`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`macos.version=27.x`}),`\n: macOS Golden Gate with Xcode 27`]}),`\n`,_jsxs(Info,{children:[_jsxs(_components.p,{children:[`An image can include multiple Xcode versions under `,_jsx(_components.code,{children:`/Applications/Xcode_*.app`}),`. Image selectors choose\nthe base image, which determines the installed Xcode versions and the default. They do not select a\nspecific installed patch version. The `,_jsx(_components.a,{href:`https://cloud.namespace.so/workspace/actions/images\`,children:\`runner images page`}),`\nlists the Xcode versions included in each image. You can also list the versions on a runner and use\n`,_jsx(_components.code,{children:`xcode-select`}),` to switch to the one you need:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`ls`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` /Applications/Xcode_`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`*`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`.app`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` xcode-select`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --switch`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` /Applications/Xcode_26.6.app`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`xcodebuild`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -version`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`3`,id:`how-to-use`,children:`How to Use`}),`\n`,_jsxs(_components.p,{children:[`The selectors can be specified on the command line when `,_jsxs(_components.a,{href:`/reference/cli/create`,children:[_jsx(_components.code,{children:`nsc`}),` CLI is used`]}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`nsc`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` create`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --selectors`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` name1=value1,name2=value2`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ...`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`They are part of `,_jsx(_components.a,{href:`https://buf.build/namespace/cloud/docs/main:namespace.cloud.compute.v1beta#namespace.cloud.compute.v1beta.InstanceShape\`,children:\`InstanceShape message`}),`\nin Namespace SDK.`]}),`\n`,_jsx(Heading,{level:`2`,id:`macos-image-updates`,children:`macOS Image Updates`}),`\n`,_jsx(_components.p,{children:`Namespace team continuously makes changes to macOS runner images to keep the software up-to-date\nand add new Xcode versions as soon as Apple releases them. To get notified about upcoming changes and\nreleases subscribe to the RSS feed:`}),`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`https://global.namespaceapis.com/feed/images/githubrunner.rss\`,children:\`Base Images Updates`})}),`\n`,_jsx(Heading,{level:`2`,id:`os-simulators`,children:`OS Simulators`}),`\n`,_jsx(_components.p,{children:`macOS instances ship with the Apple platform simulators, so you can build and test across Apple’s\noperating systems without physical devices. The available simulators are:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`iOS`}),`\n`,_jsx(_components.li,{children:`tvOS`}),`\n`,_jsx(_components.li,{children:`visionOS`}),`\n`,_jsx(_components.li,{children:`watchOS`}),`\n`]}),`\n`,_jsx(_components.p,{children:`We offer broad simulator support, including the latest Duo simulator.`}),`\n`,_jsxs(Note,{children:[_jsxs(_components.p,{children:[`The latest Duo simulator is only available on `,_jsx(_components.a,{href:`https://cloud.namespace.so/workspace/actions/image/tahoe-slim-latest\`,children:\`macOS Tahoe 26.6.2`}),` with Xcode 27.1-Beta.`]}),_jsx(_components.p,{children:`To see exactly which simulators and device types your macOS instance offers, run the following in your instance:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`xcrun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` simctl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` devicetypes`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`xcode-26-compilation-cache`,children:`Xcode 26 Compilation Cache`}),`\n`,_jsxs(_components.p,{children:[`Xcode 26 introduces a new Compilation Cache feature that significantly speeds up build times by reusing compiled outputs\nacross checkouts and builds. This feature can be used in conjunction with Namespace\n`,_jsx(_components.a,{href:`/architecture/storage/cache-volumes`,children:`Cache Volumes`}),` to leverage the compilation cache across CI runs.`]}),`\n`,_jsx(Heading,{level:`3`,id:`xcode-caching-on-github-runners`,children:`Xcode Caching on GitHub Runners`}),`\n`,_jsx(_components.p,{children:`Xcode caching is fully integrated into Namespace GitHub Runners:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/solutions/github-actions/caching`,children:`Turn on caching`}),` for your runners via Runner Profile or runner labels.`]}),`\n`,_jsxs(_components.li,{children:[`Add `,_jsx(_components.code,{children:`namespacelabs/nscloud-cache-action`}),` step to your workflow to configure Xcode to use the cache\n(also SwiftPM and CocoaPods caches):`]}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Xcode Caching`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` uses`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`namespacelabs/nscloud-cache-action@v1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` cache`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` xcode`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` swiftpm`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cocoapods`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`You can verify that the caching kicks in by looking at the `,_jsx(_components.code,{children:`CompilationCacheMetrics`}),` section in the logs that\n`,_jsx(_components.code,{children:`xcodebuild`}),` outputs:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`CompilationCacheMetrics`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`note: 4 hits / 4 cacheable tasks (100%)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"macOS","description":null,"href":"/architecture/compute/macos"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Built for Apple Development","slug":"built-for-apple-development","depth":2,"children":[]},{"title":"VNC Integration","slug":"vnc-integration","depth":2,"children":[]},{"title":"Running Custom Applications","slug":"running-custom-applications","depth":2,"children":[]},{"title":"Base Image Selection","slug":"base-image-selection","depth":2,"children":[{"title":"Available Selectors","slug":"available-selectors","depth":3,"children":[]},{"title":"How to Use","slug":"how-to-use","depth":3,"children":[]}]},{"title":"macOS Image Updates","slug":"macos-image-updates","depth":2,"children":[]},{"title":"OS Simulators","slug":"os-simulators","depth":2,"children":[]},{"title":"Xcode 26 Compilation Cache","slug":"xcode-26-compilation-cache","depth":2,"children":[{"title":"Xcode Caching on GitHub Runners","slug":"xcode-caching-on-github-runners","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/namespace-labs/fa018fe02fd436c8/navigation.js","/docs/_mintlify/custom/namespace-labs/4276600b7cb636ff/legacy-anchor-redirects.js"],"subdomain":"namespace-labs","siteName":"Namespace Documentation","title":"macOS - Namespace Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T10:46:18.948Z","gitLastModified":"2026-09-22T09:40:17.000Z","originalFileLocation":"architecture/compute/macos.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Namespace Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"macOS - Namespace Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Namespace Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://namespace.so/docs/architecture/compute/macos\\">\\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://namespace-labs.mintlify.app/\_mintlify/api/og/v2?division=Compute\\u0026amp;title=macOS\\u0026amp;theme=1f89d53762a6d5304d1c63c4\\u0026amp;signature=af40d6ebbb4bad7a6fa6dbe5ea8158632a4b825198c6e13a37a428ab512c9cd7\\">\\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"macOS - Namespace Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://namespace-labs.mintlify.app/\_mintlify/api/og/v2?division=Compute\\u0026amp;title=macOS\\u0026amp;theme=1f89d53762a6d5304d1c63c4\\u0026amp;signature=af40d6ebbb4bad7a6fa6dbe5ea8158632a4b825198c6e13a37a428ab512c9cd7\\">\\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Namespace Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1C32FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://namespace.so/docs/architecture/compute/macos\\">\\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/architecture/compute/macos.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\\",\\"@graph\\":\[{\\"@type\\":\\"Organization\\",\\"@id\\":\\"https://namespace.so/#organization\\",\\"name\\":\\"Namespace Documentation\",\"url\":\"https://namespace.so\\",\\"logo\\":{\\"@type\\":\\"ImageObject\\",\\"url\\":\\"https://mintcdn.com/namespace-labs/qOJQ7kaWRgoS8lyv/logo-light.svg?fit=max\\u0026auto=format\\u0026n=qOJQ7kaWRgoS8lyv\\u0026q=85\\u0026s=6827b0c81c335badc1cef13b83383e1d\\"}},{\\"@type\\":\\"WebSite\\",\\"@id\\":\\"https://namespace.so/docs#website\\",\\"name\\":\\"Namespace Documentation\",\"url\":\"https://namespace.so/docs\\",\\"publisher\\":{\\"@id\\":\\"https://namespace.so/#organization\\"}},{\\"@type\\":\\"WebPage\\",\\"@id\\":\\"https://namespace.so/docs/architecture/compute/macos#webpage\\",\\"url\\":\\"https://namespace.so/docs/architecture/compute/macos\\",\\"name\\":\\"macOS\\",\\"dateModified\\":\\"2026-09-22T09:40:17.000Z\\",\\"isPartOf\\":{\\"@id\\":\\"https://namespace.so/docs#website\\"},\\"breadcrumb\\":{\\"@id\\":\\"https://namespace.so/docs/architecture/compute/macos#breadcrumb\\"}},{\\"@type\\":\\"BreadcrumbList\\",\\"@id\\":\\"https://namespace.so/docs/architecture/compute/macos#breadcrumb\\",\\"itemListElement\\":\[{\\"@type\\":\\"ListItem\\",\\"position\\":1,\\"name\\":\\"Platform\\",\\"item\\":\\"https://namespace.so/docs/architecture/compute/index\\"},{\\"@type\\":\\"ListItem\\",\\"position\\":2,\\"name\\":\\"Compute\\",\\"item\\":\\"https://namespace.so/docs/architecture/compute/index\\"},{\\"@type\\":\\"ListItem\\",\\"position\\":3,\\"name\\":\\"macOS\\",\\"item\\":\\"https://namespace.so/docs/architecture/compute/macos\\"}\]},{\\"@type\\":\[\\"Article\\",\\"TechArticle\\"\],\\"@id\\":\\"https://namespace.so/docs/architecture/compute/macos#article\\",\\"headline\\":\\"macOS\\",\\"name\\":\\"macOS\\",\\"url\\":\\"https://namespace.so/docs/architecture/compute/macos\\",\\"mainEntityOfPage\\":{\\"@id\\":\\"https://namespace.so/docs/architecture/compute/macos#webpage\\"},\\"dateModified\\":\\"2026-09-22T09:40:17.000Z\\",\\"publisher\\":{\\"@id\\":\\"https://namespace.so/#organization\\"},\\"isPartOf\\":{\\"@id\\":\\"https://namespace.so/docs#website\\"}}\]}\\u003c/script>\\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\\",\\"@type\\":\\"WebSite\\",\\"name\\":\\"Namespace Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\\"}}\\u003c/script>","siteName":"Namespace Documentation","nav":{"global":{"anchors":[{"anchor":"Changelog","icon":"history","href":"https://namespace.so/changelog"},{"anchor":"Trust Center (SOC2)","icon":"shield-check","href":"https://trust.namespace.so/"},{"anchor":"Status","icon":"activity","href":"https://namespace-status.com/"},{"anchor":"Support","icon":"message-circle","href":"https://namespace.so/support"}\]},"products":\[{"product":"Products","description":"Turnkey products built on the Namespace platform","tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Namespace Documentation","sidebarTitle":"Overview","href":""},{"group":"Products","pages":[{"group":"GitHub Actions","icon":"github","pages":[{"title":"Accelerate your GitHub Actions with Namespace","sidebarTitle":"Getting Started","href":"/solutions/github-actions/index"},{"group":"Cache Volumes","pages":[{"title":"Caching in GitHub Actions","sidebarTitle":"Overview","href":"/solutions/github-actions/caching/index"},{"title":"Container Images","href":"/solutions/github-actions/caching/container-images"},{"title":"Git Checkouts","href":"/solutions/github-actions/caching/git-checkouts"},{"title":"Toolchains","sidebarTitle":"Toolchains","href":"/solutions/github-actions/caching/toolchains"},{"title":"Actions","sidebarTitle":"Actions","href":"/solutions/github-actions/caching/actions"},{"title":"Build System Integrations","sidebarTitle":"Build Systems","href":"/solutions/github-actions/caching/build-systems"},{"title":"Troubleshooting cache volumes","sidebarTitle":"Troubleshooting","href":"/solutions/github-actions/caching/troubleshooting"}]},{"title":"Fast repository checkouts with Git snapshots","sidebarTitle":"Git Snapshots","href":"/solutions/github-actions/git-snapshots"},{"title":"Optimizing Docker build performance","sidebarTitle":"Docker Builds","href":"/solutions/github-actions/docker-builds"},{"title":"Custom base images for GitHub Actions","sidebarTitle":"Custom Base Images","href":"/solutions/github-actions/custom-base-images/index"},{"group":"Debugging","pages":[{"title":"Debugging GitHub Actions","sidebarTitle":"Overview","href":"/solutions/github-actions/debugging/index"},{"title":"Interactive Access","href":"/solutions/github-actions/debugging/interactive-access"},{"title":"Remote Display","href":"/solutions/github-actions/debugging/remote-display"},{"title":"Performance Metrics","href":"/solutions/github-actions/debugging/performance-metrics"},{"title":"Advanced Logging","href":"/solutions/github-actions/debugging/logging"},{"title":"Out of memory (OOM) detection","sidebarTitle":"OOM Detection","href":"/solutions/github-actions/debugging/oom-detection"},{"title":"Crash Dumps","href":"/solutions/github-actions/debugging/crash-dumps"},{"title":"Queue Time","href":"/solutions/github-actions/debugging/queue-time"}]},{"group":"Runner Controls","pages":[{"title":"Runner Controls","sidebarTitle":"Overview","href":"/solutions/github-actions/runner-controls"},{"title":"Concurrent runners","href":"/solutions/github-actions/runner-controls/concurrent-runners"},{"title":"Job Ordering \u0026 Priority","sidebarTitle":"Job Ordering","href":"/solutions/github-actions/runner-controls/job-ordering"},{"title":"Privileged Workflows","sidebarTitle":"Privileged Workflows","href":"/solutions/github-actions/runner-controls/privileged-workflows"},{"title":"Landlock","sidebarTitle":"Landlock","href":"/solutions/github-actions/runner-controls/landlock"},{"title":"Swap Space","sidebarTitle":"Swap Space","href":"/solutions/github-actions/runner-controls/swap"},{"title":"Tailscale","sidebarTitle":"Tailscale","href":"/solutions/github-actions/runner-controls/tailscale"},{"title":"Access Levels","sidebarTitle":"Access Levels","href":"/solutions/github-actions/runner-controls/access-levels"},{"title":"Running jobs in containers","sidebarTitle":"Containerized Jobs","href":"/solutions/github-actions/runner-controls/containerized-jobs"}]},{"title":"Optimizing Usage","href":"/solutions/github-actions/optimizing-usage"},{"title":"Runner Labels","sidebarTitle":"Runner Labels","href":"/reference/github-actions/runner-configuration"},{"group":"Actions","expanded":false,"pages":[{"title":"nscloud-setup","href":"/reference/github-actions/nscloud-setup"},{"title":"nscloud-setup-buildx-action","href":"/reference/github-actions/nscloud-setup-buildx-action"},{"title":"nscloud-cluster-action","href":"/reference/github-actions/nscloud-cluster-action"},{"title":"nscloud-cache-action","href":"/reference/github-actions/nscloud-cache-action"},{"title":"nscloud-checkout-action","href":"/reference/github-actions/nscloud-checkout-action"},{"title":"nscloud-expose-kubernetes-action","href":"/reference/github-actions/nscloud-expose-kubernetes-action"},{"title":"breakpoint-action","href":"/reference/github-actions/breakpoint"},{"title":"upload-artifact","href":"/reference/github-actions/upload-artifact"},{"title":"download-artifact","href":"/reference/github-actions/download-artifact"},{"title":"setup-turbocache","href":"/reference/github-actions/setup-turbocache"}]}]},{"group":"Devboxes","icon":"container","pages":[{"title":"High-Performance Developer Environments with Devboxes","sidebarTitle":"Getting Started","href":"/devbox/index"},{"group":"Managing Devboxes","expanded":false,"pages":[{"title":"Devbox Lifecycle","sidebarTitle":"Lifecycle","href":"/devbox/lifecycle"},{"title":"Devbox Blueprints","sidebarTitle":"Blueprints","href":"/devbox/blueprint"},{"title":"Devbox Services","sidebarTitle":"Services","href":"/devbox/services"},{"title":"Shareable URLs","href":"/devbox/url"},{"title":"Custom Images","href":"/devbox/images"}]},{"group":"Working in a Devbox","expanded":false,"pages":[{"title":"Connecting to a Devbox","sidebarTitle":"SSH \u0026 Sessions","href":"/devbox/connecting"},{"title":"Executing Commands","href":"/devbox/exec"},{"title":"Running long tasks","sidebarTitle":"Long Running Tasks","href":"/guides/devbox/long-running-tasks"},{"title":"Computer Controls","sidebarTitle":"Computer Use","href":"/devbox/computer-use"},{"title":"Remote Desktop","sidebarTitle":"Remote Desktop","href":"/devbox/remote-desktop"},{"title":"Open IDE","href":"/devbox/ides"}]},{"group":"Managed Agents","tag":"Integrations","expanded":false,"pages":[{"title":"Amp Orbs","sidebarTitle":"Amp Orbs","href":"/integrations/amp"},{"title":"Claude Managed Agents","sidebarTitle":"Claude Managed Agents","href":"/integrations/claude"},{"title":"Cursor Cloud Agents","sidebarTitle":"Cursor Cloud Agents","href":"/integrations/cursor"},{"title":"Devin on Devboxes","sidebarTitle":"Devin","href":"/integrations/devin"}]}]},{"group":"Bazel","icon":"hammer","pages":[{"title":"Speed up your Bazel builds with Namespace","sidebarTitle":"Introduction","href":"/bazel/index"},{"title":"Bazel cache","sidebarTitle":"Caching","href":"/bazel/cache"},{"title":"Bazel Remote Execution","sidebarTitle":"Remote Build Execution","href":"/bazel/execution"},{"title":"Bazel observability","sidebarTitle":"Observability","href":"/bazel/observability"}]},{"group":"Docker Builders","icon":"container","pages":[{"title":"Speed up your Docker Builds with Namespace","sidebarTitle":"Getting Started","href":"/solutions/docker-builders/index"},{"title":"Container Registry","href":"/solutions/docker-builders/registry"},{"title":"Docker Build Observability","sidebarTitle":"Tracing \u0026 Logs","href":"/solutions/docker-builders/tracing-and-logs"}]},{"group":"Buildkite Agents","icon":"workflow","pages":[{"title":"Run Buildkite Jobs on Namespace","sidebarTitle":"Getting Started","href":"/solutions/buildkite-agents/index"},{"title":"Managing Buildkite Queues","sidebarTitle":"Managing Queues","href":"/solutions/buildkite-agents/managing-queues"},{"title":"Configure Buildkite Agents","sidebarTitle":"Configuration","href":"/solutions/buildkite-agents/configuration"},{"title":"Fast repository checkouts with Git snapshots","sidebarTitle":"Git Snapshots","href":"/solutions/buildkite-agents/git-snapshots"}]}]},{"group":"Platform","pages":[{"group":"Compute","icon":"cpu","pages":[{"title":"Compute Platform","sidebarTitle":"Overview","href":"/architecture/compute/index"},{"title":"Linux","description":null,"href":"/architecture/compute/linux"},{"title":"macOS","href":"/architecture/compute/macos"},{"title":"Windows","description":null,"href":"/architecture/compute/windows"},{"title":"Observability","href":"/architecture/compute/observability"},{"title":"SSH / Remote Display with Namespace Compute","sidebarTitle":"SSH / Remote Display","href":"/architecture/compute/ssh-remote-display"},{"title":"Machine Shapes","href":"/architecture/compute/machine-shapes"},{"title":"Resource Limits","href":"/architecture/compute/resource-limits"}]},{"group":"Storage","icon":"database","pages":[{"title":"Storage","sidebarTitle":"Overview","href":"/architecture/storage/index"},{"title":"Cache Volumes","href":"/architecture/storage/cache-volumes"},{"title":"Container Registry","href":"/architecture/storage/container-registry"},{"title":"Artifact Storage","href":"/architecture/storage/artifact-storage"},{"title":"Secrets","href":"/architecture/storage/secrets"}]},{"group":"Networking","icon":"network","pages":[{"title":"Networking","sidebarTitle":"Overview","href":"/architecture/networking/index"},{"title":"Ingress","href":"/architecture/networking/ingress"},{"title":"Network Performance Optimizations","sidebarTitle":"Performance","href":"/architecture/networking/performance"},{"title":"Network Security","sidebarTitle":"Security","href":"/architecture/networking/security"},{"title":"Egress policies","href":"/security/egress-policy"}]}]},{"group":"Administration","pages":[{"group":"Workspaces","icon":"briefcase-business","pages":[{"title":"Workspaces","sidebarTitle":"Overview","href":"/workspaces/index"},{"title":"Workspace Access Controls","sidebarTitle":"Access","href":"/workspaces/access"},{"title":"Billing \u0026 Included Amounts","sidebarTitle":"Billing and limits","href":"/workspaces/billing-and-limits"},{"title":"Data Residency for Workspaces","sidebarTitle":"Data residency","href":"/workspaces/data-residency"},{"title":"Security \u0026 Compliance","sidebarTitle":"Security","href":"/workspaces/security"},{"title":"Audit Logs","sidebarTitle":"Audit logging","href":"/security/auditlog"},{"title":"Permissions","href":"/security/permissions"}]},{"group":"Federation","icon":"shield-check","pages":[{"title":"Workload Federation","sidebarTitle":"Overview","href":"/federation/index"},{"title":"Workload Federation with AWS","sidebarTitle":"AWS","href":"/federation/aws"},{"title":"Workload Federation with GCP","sidebarTitle":"GCP","href":"/federation/gcp"},{"title":"Workload Federation with OpenID Connect","sidebarTitle":"OpenID","href":"/federation/openid"},{"title":"Identity Federation with GitHub Actions","sidebarTitle":"Github Actions","href":"/federation/github-actions"},{"title":"Identity Federation with CircleCI","sidebarTitle":"CircleCI","href":"/federation/circleci"},{"title":"Identity Federation with RWX","sidebarTitle":"RWX","href":"/federation/rwx"}]},{"group":"Dashboard","icon":"layout-dashboard","pages":[{"title":"GitHub Actions Overview","sidebarTitle":"GitHub Actions","href":"/dashboard/github-actions"},{"title":"Builds UI","sidebarTitle":"Builds","href":"/dashboard/builds"},{"title":"Registry UI","sidebarTitle":"Registry","href":"/dashboard/registry"},{"title":"Usage Explorer","href":"/dashboard/usage-explorer"}]}]}]},{"tab":"Integrations","icon":"blocks","pages":[{"title":"Integrations","href":"/integrations/turborepo"}]},{"tab":"CLI","icon":"square-terminal","pages":[{"title":"CLI","href":"/reference/cli"}]},{"tab":"SDK","icon":"braces","pages":[{"title":"SDK","href":"/reference/sdk"}]},{"tab":"MCP","icon":"plug","pages":[{"title":"MCP","href":"/reference/mcp"}]}]},{"product":"Platform","description":"Lower-level primitives to build your own","pages":[{"title":"Platform","href":"/platform"}]}]},"title":"macOS - Namespace Documentation","buildId":"dpl_GvhK4qVXq51DpfYJLCtPpYNN4YHN","deploymentId":"dpl_GvhK4qVXq51DpfYJLCtPpYNN4YHN","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-5VlDM5Io.js","DynamicMarkdown-DO1Fz7ar.js","zoom-image-lightbox-uyuQJRFs.js","lightbox-handle-r17bVUz3.js"]}