Deploy Detect using any MDM that supports custom configuration profiles and script execution.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.
If your MDM has a dedicated guide (SimpleMDM, Jamf Pro, Intune, Mosyle, or Iru/Kandji), use that instead for provider-specific instructions.
Prerequisites
- Admin access to your MDM solution
- Devices enrolled via User-Approved MDM or Automated Device Enrollment (for Full Disk Access)
- Your MDM must support:
- Deploying custom
.mobileconfigconfiguration profiles - Running shell scripts on managed devices
- Deploying custom
Deployment Steps
Get Deployment Artifacts
In the Runlayer dashboard, go to Settings → Shadow MCPs. Under the Detect section, click Configure and select your MDM platform. This opens a setup dialog that auto-generates an API key and renders the deployment script.
Deploy the Script
Use your MDM’s script or command execution feature to deploy the generated script:Download the PPPC profile from the Detect configuration page in the Runlayer dashboard (Settings → Shadow MCPs), or use the button below:
- Create a new script/command in your MDM console
- Paste the generated script contents
- Configure a recurring execution schedule (at least daily recommended)
- Assign to target devices
- Save and deploy
MDM scripts typically run as root. The generated script handles this by detecting and running operations as the logged-in user where needed.
Deploy PPPC Profile
Detect needs to read MCP config files in TCC-protected directories (Desktop, Documents, Application Support). Without a PPPC profile, macOS shows a permission dialog on every scan.The profile targets a dedicated
runlayer-scan wrapper binary so that Full Disk Access is scoped to the scan process only — not to general-purpose tools like uvx.- Upload the downloaded file as a custom configuration profile
- Assign it to all devices that will run Detect
- Push the profile to devices
Verification
Verify in Runlayer
Navigate to Shadow in the Runlayer dashboard and confirm devices appear in the Detect data.
Log Locations
| Platform | Log Location |
|---|---|
| macOS | /var/log/runlayer/ai_watch_detect.log |
| macOS (fallback) | /tmp/runlayer-ai_watch_detect.log |
The fallback log location is used when the primary path (
/var/log/runlayer/) cannot be written to due to permissions.Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General failure (no user logged in, missing config, credential storage failed) |
| 2 | Network failure (cannot reach PyPI) |
| 3 | Installation failure (uv or CLI install failed) |