Skip to main content
AI Watch ships as one signed package per operating system. Deploy it once, then use package configuration to decide which features run. macOS and Windows are supported equally: both packages provide the same features (Detect, Enforce, and Sessions) with the same configuration model — only the delivery mechanism differs (Configuration Profiles on macOS, MSI properties / registry on Windows). See platform support for supported architectures and Linux.

Features

Detect is always enabled after AI Watch is installed. Enforce and Sessions are controlled by package configuration, and one organization API key authenticates scanning, enforcement, and sessions; no enrollment keys are required.
FeatureConfigurationWhat it does
DetectAlways onDiscovers shadow MCP servers, skills, and plugins through scheduled scans
EnforceEnforcement / AIWATCH_ENFORCEMENTInstalls client hooks that block unmanaged MCP sources and policy-check local tool activity
SessionsSessions / AIWATCH_SESSIONSInstalls the full event hook set for Sessions telemetry
  • Enforce is disabled by default. Set Enforcement=true (macOS) or AIWATCH_ENFORCEMENT=1 (Windows) to block unmanaged MCP sources and policy-check local tool activity.
  • Sessions is enabled by default. Set Sessions=false (macOS) or AIWATCH_SESSIONS=0 (Windows) to skip the full event/session hook set.
Hook installation follows the combined capability state: AI Watch installs hook configs when either Enforce or Sessions is enabled. Detect-only requires explicitly setting Sessions=false or AIWATCH_SESSIONS=0; omitting Sessions uses the default enabled state and installs hooks for monitoring-only telemetry. Advanced scan tuning (optional). Detect scans walk each user’s home directory to a bounded depth within a per-scan time budget. The defaults fit most fleets — override them only if scans miss deeply-nested project configs (raise depth) or run out of time on very large home directories (raise timeout).
SettingConfigurationDefaultMax
Project depthProjectDepth / AIWATCH_PROJECT_DEPTH720
Project timeoutProjectTimeout / AIWATCH_PROJECT_TIMEOUT60s300s
Both are integers — macOS <integer> in the tenant-config profile, Windows REG_DWORD via the MSI AIWATCH_PROJECT_* property. Omit the keys to keep the defaults. Values above the max are clamped down to it; non-integer or non-positive values are ignored and the default applies.

Package and platform support

No. The signed .pkg / .msi is the same artifact for every customer — nothing tenant-specific is compiled into it. Your tenant host and organization API key are supplied separately through MDM configuration (the macOS Configuration Profile, or the Windows MSI properties / registry), not baked into the binary. That means the package can be verified once (signature, notarization) and reused unchanged across all of your configurations.
No. The MDM package is fully self-contained: it installs a single signed aiwatch binary with its runtime bundled. There is no Python, uv, or separate CLI install required on managed devices. The uv tool install runlayer CLI path documented on Detect and Enforce is only for manual, single-device testing.
PlatformManaged deploymentNotes
macOS (Apple Silicon / arm64)Signed + notarized .pkgReleased artifact aiwatch-<version>-macos-arm64.pkg
Windows (x64)Signed .msi wrapped for IntuneWindows 10 1809+ / 11, 64-bit
Linux (x86_64).deb / .rpm (Detect only)Ubuntu 22.04+, Debian 12+, RHEL/Rocky/Alma 9+, Amazon Linux 2023, current Fedora — see Linux
macOS and Windows have feature parity — Detect, Enforce, and Sessions are all available on both, with the same package configuration keys (see Features). Linux is Detect only: the .deb / .rpm packages run cron-scheduled scans across all users, with no Enforce, Sessions, or browser extension — see Linux (Detect only). The signed MDM package currently ships for Apple Silicon Macs and 64-bit Windows. For Intel Macs or other architectures, use the cross-platform uv tool install runlayer CLI path, or contact your Runlayer account team. AI Watch runs on managed-device hardware; it is not installed inside the AI assistant’s containers.
Outbound HTTPS (443) to your Runlayer tenant host only — the same hostname configured in your MDM profile (for example runlayer.dev.company.com or *.runlayer.com). Scans, hook decisions, and session events all use that one endpoint, and no inbound ports are opened. If your Runlayer instance is self-hosted (including air-gapped networks), AI Watch only needs to reach that internal tenant host — no public-internet egress is required. Behind a TLS-inspection proxy, exempt the tenant hostname or install the corporate root CA in the OS trust store — see Troubleshooting.

Package configuration

Use Settings → MDM Configuration to create or edit an AI Watch configuration. The wizard picks your MDM, mints a single organization API key, and bakes the Enforce and Sessions values into the downloaded artifacts. Changing Enforcement or Sessions does not require reinstalling the package. Re-push the configuration profile or MSI command/registry values; AI Watch picks up the new settings on the next bootstrap or hook execution. On macOS, bump the profile’s PayloadVersion (top-level and per payload) so the MDM treats it as an update and re-delivers it to enrolled devices; on Windows, re-run the MSI command or push the updated registry values. The .pkg / .msi itself only needs reinstalling to move to a new AI Watch binary version — not for configuration changes.

macOS artifacts

The macOS package is a signed and notarized .pkg plus three MDM Configuration Profiles:
FilePurpose
aiwatch-<version>-macos-arm64.pkgInstalls the aiwatch binary, scan LaunchAgent, and hook bootstrap
com.runlayer.aiwatch.config.mobileconfigTenant host, organization API key, Enforcement, and Sessions
com.runlayer.aiwatch.pppc.mobileconfigFull Disk Access / TCC grants
com.runlayer.aiwatch.loginitems.mobileconfigPre-approves bundled LaunchAgents on macOS 13+
Deploy the three Configuration Profiles before the .pkg so tenant config and TCC grants are present before the first scan tick. If you need multiple configurations, deploy one com.runlayer.aiwatch.config.mobileconfig per group. The .pkg, PPPC profile, and Login Items profile are universal and can be reused unchanged across all configurations.

Jamf Pro

Upload Configuration Profiles and the .pkg via Policy.

Workspace ONE

Use Custom Attributes for tenant host and organization API key.

Iru / Kandji

Edit the tenant profile and deploy through Blueprints.

SimpleMDM

Upload profiles and package through device groups.

Mosyle

Deploy profiles and package through Mosyle device groups.

Other macOS MDM

Use any MDM with Custom App and Custom Profile support.
Migrating from the legacy script-based macOS Detect rollout? Run Legacy macOS Detect Cleanup before rolling out the .pkg.

Windows artifacts

The Windows package is a signed MSI wrapped for Intune. The MSI writes tenant config to HKLM\Software\Runlayer\AIWatch and registers device-local Scheduled Tasks that run scans (all real user profiles) and assert hooks (SYSTEM) on a recurring schedule — no Intune Remediations required.
FilePurpose
aiwatch-<version>-win-x64.intunewinApp package for Intune upload (installs aiwatch.exe, writes registry, registers the Scheduled Tasks)
custom-detection/detect-install.ps1Recommended Intune custom detection script (reports installed only when aiwatch.exe + the AIWatchScan task both exist)
scripts/bootstrap.ps1Optional manual user-context one-shot (SCCM / GPO logon script)

Intune

Deploy the MSI and configure capability properties — scans and hooks schedule themselves on the device.

Linux artifacts (Detect only)

The Linux deployment bundle (aiwatch-<version>-linux-x86_64.zip) contains a .deb and an .rpm (both named runlayer-aiwatch), SHA256SUMS, and the config templates. The package installs the aiwatch binary plus a cron entry that scans all users every 15 minutes. Linux is Detect-only — the device’s Enforce and Sessions features show Disabled in the dashboard by design.

Linux

Install the .deb / .rpm via configuration management and configure the two files under /etc/runlayer/aiwatch/.

SaltStack

Roll out and continuously assert the Detect-only scanner from a Salt master — package from salt://, config from pillar.

Manual and custom workflows

For individual test devices, use the feature pages:

Run Detect manually

Install the Runlayer CLI and run runlayer scan.

Install Enforce manually

Install client hooks with runlayer setup hooks.

User and Identity Mapping

Understand how device usernames map to Runlayer users.

Remove AI Watch

Remove package-based and legacy script-based deployments.
For custom fleet integrations outside a supported MDM, use the same package configuration model: install AI Watch once, provide host and organization API key, leave Detect running, and set Enforcement / Sessions to the desired values.

Detect

What scans read and how discovery works

Enforce

Blocking vs. monitoring-only configuration

FAQ

Pre-deployment, platform, and network questions

Troubleshooting

Common issues and solutions