> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runlayer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# macOS Deployment

> Deploy the Runlayer CLI to macOS devices with the signed .pkg through any MDM

The macOS package is a single signed and notarized `.pkg`. It installs the self-contained bundle to `/usr/local/lib/runlayer/runlayer/` and symlinks `/usr/local/bin/runlayer`. There are no Configuration Profiles to push.

## Prerequisites

* An MDM with package deployment — Jamf Pro, Kandji, SimpleMDM, Mosyle, Workspace ONE, or any MDM that can deploy a `.pkg`
* Apple Silicon (arm64) Macs
* The signed `runlayer-<version>-macos-arm64.pkg` from your Runlayer downloads access

## Deployment Steps

<Steps>
  <Step title="Upload the .pkg">
    Upload `runlayer-<version>-macos-arm64.pkg` as a **Custom App** (or equivalent package item) in your MDM — Jamf Pro, Kandji, SimpleMDM, Mosyle, Workspace ONE, or any MDM with package deployment.
  </Step>

  <Step title="Scope to your devices">
    Scope the app to the device groups that should have the CLI. No profiles, PPPC grants, or additional payloads are required.
  </Step>
</Steps>

## Upgrades and removal

* **Upgrade** — push the newer `.pkg` through the same MDM item; installers upgrade in place. There is no configuration to re-push.
* **Remove** — unscope the app in your MDM. There are no profiles, agents, or scheduled tasks to clean up.

## Verification

On a target device, confirm the binary resolves on `PATH`:

```bash theme={null}
runlayer --version
```

For fleet-level visibility, check the app's install status in your MDM console.
