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

# Jamf Binary Runtime

> Deploy Unbound to Macs with a signed package

## Overview

The binary runtime installs a signed, self-contained package on macOS.

**Requirements:** macOS 13 or later, 300 MB free disk space, and HTTPS to `getunbound.ai`, `backend.getunbound.ai`, `api.getunbound.ai` and `unbound-release-artifacts.s3.us-west-2.amazonaws.com`.

***

## 1. Create the script

Go to **Settings → Computer Management → Scripts → New**. Name it `Unbound daily onboard` and paste this into the **Script** tab:

```bash theme={null}
#!/bin/bash
API_KEY="$4"
[ -n "$API_KEY" ] || { echo "Parameter 4 (API key) is empty."; exit 1; }

INSTALLER=$(mktemp)
trap 'rm -f "$INSTALLER"' EXIT
curl -fsSL --max-time 120 -o "$INSTALLER" https://getunbound.ai/setup/mdm/onboard.sh \
    || { echo "Could not download the installer."; exit 1; }

bash "$INSTALLER" --api-key "$API_KEY" \
    --backend-url https://backend.getunbound.ai \
    --gateway-url https://api.getunbound.ai \
    --backfill
CODE=$?

MARKER="/Library/Application Support/Unbound/last-success.txt"
if [ $CODE -eq 0 ]; then
    mkdir -p "$(dirname "$MARKER")" && date -u +%Y-%m-%dT%H:%M:%SZ > "$MARKER" \
        || { echo "Installed, but could not write $MARKER."; exit 1; }
fi
exit $CODE
```

On the **Options** tab, label **Parameter 4** as `API key`.

`--backfill` imports past Claude Code and Codex sessions. Re-running never duplicates a session.

***

## 2. Create the policy

Go to **Computers → Policies → New**.

<Steps>
  <Step title="General">
    Name it `Unbound daily onboard`. Set Trigger to **Recurring Check-in** and Execution Frequency to **Once every day**.
  </Step>

  <Step title="Scripts payload">
    Add the script and paste your API key into **Parameter 4**.
  </Step>

  <Step title="Scope">
    Select your developer Mac group, then save.
  </Step>
</Steps>

***

## Troubleshooting

| Symptom                      | Fix                                                                              |
| ---------------------------- | -------------------------------------------------------------------------------- |
| `macOS <n> < required 13`    | Use the [Python installer](/mdm-integrations/jamf/python) on older Macs.         |
| `need 300MB free`            | Free up disk space and run the policy again.                                     |
| `artifact host unreachable`  | Allow `unbound-release-artifacts.s3.us-west-2.amazonaws.com` through your proxy. |
| Checksum or Team ID mismatch | A proxy modified the package in transit. Fix the proxy.                          |

***

## Remove Unbound

```bash theme={null}
sudo bash -c "$(curl -fsSL https://getunbound.ai/setup/mdm/onboard.sh)" -- --clear
```

Then delete `/Library/Application Support/Unbound`.
