macOS and Windows support Monitor, Protect, Enforce, and Sessions. Linux is Detect only and ignores the configuration’s endpoint Mode and Sessions settings. For a managed rollout, use Deploy AI Watch.
Prerequisites
- Local administrator or root access to the test device
- A supported package platform: Apple Silicon macOS, x64 Windows, or x86_64 Linux
- An organization API key with the Shadow AI Scan role, created in Settings → Organization API keys
- Your Runlayer tenant host URL (for example,
https://your-instance.runlayer.com)
macOS — install and configure
1
Download the signed package
On the macOS tab, download the signed
aiwatch-<version>-macos-arm64.pkg selected by your Client Updates policy.2
Install the package
From the directory containing the download, run:The package installs
/usr/local/bin/aiwatch, the scan LaunchAgent, the hook bootstrap LaunchDaemon, and the hourly update LaunchDaemon.3
Write the managed preferences
Replace the host and organization API key below. Set Pair Mode and legacy Enforcement as follows. See Endpoint modes for the behavior of each mode.
Mode, its paired legacy Enforcement value, Sessions, and the discovery and scan-tuning values (DetectProcesses, DetectContainers, ProjectDepth, ProjectTimeout) to match the Test Device configuration:Set
Sessions to true to collect session data, or false to disable it. Monitor with Sessions disabled is scan-only and does not install hooks.Set DetectProcesses, DetectContainers, ProjectDepth, and ProjectTimeout to match the Test Device configuration’s discovery and scan-tuning settings; the values shown in the in-app setup guide already reflect them.4
Grant Full Disk Access
Without MDM, there is no PPPC profile to grant Full Disk Access automatically. Open System Settings → Privacy & Security → Full Disk Access, select +, press Command-Shift-G, and add:Enable the entry before scanning. Without this permission, macOS can prevent AI Watch from reading project configurations under protected locations such as
~/Desktop, ~/Documents, and ~/Downloads.macOS 13 and newer may also show a one-time Background Item Added notification because no MDM Login Items profile pre-approves the scan LaunchAgent.5
Apply hooks when enabled
If Mode is Protect or Enforce, or Sessions is enabled, run:Restart your AI clients after the bootstrap completes so they load the installed hook configurations. Skip this step for scan-only Monitor (
Mode=monitor, Sessions=false).Verification
On a test Mac after installation and configuration:Common post-deploy issues
Users see 'Background Item Added' after install
Users see 'Background Item Added' after install
On a manual test-device install, this one-time macOS 13+ notification is expected because no MDM Login Items profile pre-approves the scan LaunchAgent.On a managed deployment, confirm On macOS 13+, expect the Runlayer item to show
com.runlayer.aiwatch.loginitems.mobileconfig is scoped to the same device group as the .pkg, then force an MDM sync and check:enabled allowed visible. macOS 12 and older ignore the Login Items payload; the notification control only exists on macOS 13+.Gatekeeper blocks the package
Gatekeeper blocks the package
Verify you are deploying the official signed and notarized release artifact:Expected: a Developer ID Installer signature for Anysource Inc. and
source=Notarized Developer ID.Full Disk Access is enabled but TCC still denies access
Full Disk Access is enabled but TCC still denies access
For a manual install, confirm Expected:
/usr/local/lib/runlayer/aiwatch/aiwatch is enabled under System Settings → Privacy & Security → Full Disk Access. For MDM, the PPPC profile pins Full Disk Access to identifier com.runlayer.aiwatch and Developer ID team AF2M8HC7A2.Confirm the installed binary matches:Authority=Developer ID Application: Anysource Inc. (AF2M8HC7A2) and Identifier=com.runlayer.aiwatch. Custom or ad-hoc signed builds will not satisfy the PPPC CodeRequirement.Customize scan schedule (optional)
The bundled LaunchAgent ships with a 15-minuteStartInterval. Most tenants don’t need to change it. On a managed fleet, push the script below via your MDM’s recurring-script mechanism (Jamf Policy, Kandji Custom Script, SimpleMDM Script, etc.). On a manual test Mac, run it directly with administrator access:
The next
.pkg upgrade resets StartInterval to the bundled default — the override script must run on a recurring schedule, or be re-applied after each upgrade.Upgrade
By default, the rootcom.runlayer.aiwatch.update LaunchDaemon checks hourly and installs the backend-selected signed + notarized .pkg. An MDM Custom App push or another manual installer run remains a fallback, but the next hourly tick will restore the backend-selected target. To hold a manually pushed version, set AutoUpdate=false in managed preferences or align the backend rollout policy first.
The package preinstall removes only the previous /usr/local/lib/runlayer/aiwatch/ onedir tree before PackageKit deploys the new payload, so obsolete modules and version metadata cannot survive an upgrade or rollback. The separate Runlayer CLI installation is preserved. Mid-scan upgrades are safe — macOS lets you unlink an open file, and the running aiwatch keeps its mapped pages until the next LaunchAgent tick picks up the new version. Postinstall intentionally leaves an already-loaded updater running so it cannot terminate its own installer transaction; the hourly cadence remains stable.
MDM Configuration Profiles are unchanged across version upgrades. Preferences written manually under com.runlayer.aiwatch also remain in place.
Uninstall
For full package and hook cleanup guidance, see Remove AI Watch.Troubleshooting
For deployment diagnostics and common macOS package issues, see Troubleshooting.Windows — install and configure
Windows testing uses the same signed x64 MSI as an Intune deployment, but installs it directly on one device.1
Download the signed MSI
On the Windows tab of the Test Device setup guide, download
aiwatch-<version>-win-x64.msi.2
Install with the generated configuration
Open PowerShell as Administrator in the download directory and run the command rendered by the setup guide. It includes the selected host, organization API key, Mode, Sessions, discovery, scan-tuning, and update settings:The MSI installs
aiwatch.exe, writes configuration under HKLM\Software\Runlayer\AIWatch, and registers the AIWatchScan, AIWatchHooks, and AIWatchUpdate tasks under \Runlayer.3
Restart AI clients when hooks are enabled
If Mode is Protect or Enforce, or Sessions is enabled, restart running AI clients after installation so they load their hook configurations. The hook task is a no-op for scan-only Monitor (
Mode=monitor, Sessions=false).4
Verify
In an elevated PowerShell window:In Runlayer, open Shadow → Devices and confirm the Windows device appears. See Intune verification for detailed task and log checks.
Linux — install and configure (Detect only)
Linux packages run all-user scans every 15 minutes through cron. They do not install hooks or support endpoint modes or Sessions. See Linux support before installing; do not install inside WSL.1
Download a package
On the Linux tab of the Test Device setup guide, download the x86_64 package for the distribution:
.debfor Debian or Ubuntu.rpmfor RHEL, Rocky, Alma, Fedora, or Amazon Linux
2
Install
3
Write the non-secret Detect configuration
Keep the organization API key out of this world-readable file:
4
Write the root-only credentials
5
Scan and verify