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.| Feature | Configuration | What it does |
|---|---|---|
| Detect | Always on | Discovers shadow MCP servers, skills, and plugins through scheduled scans |
| Enforce | Enforcement / AIWATCH_ENFORCEMENT | Installs client hooks that block unmanaged MCP sources and policy-check local tool activity |
| Sessions | Sessions / AIWATCH_SESSIONS | Installs the full event hook set for Sessions telemetry |
- Enforce is disabled by default. Set
Enforcement=true(macOS) orAIWATCH_ENFORCEMENT=1(Windows) to block unmanaged MCP sources and policy-check local tool activity. - Sessions is enabled by default. Set
Sessions=false(macOS) orAIWATCH_SESSIONS=0(Windows) to skip the full event/session hook set.
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).
| Setting | Configuration | Default | Max |
|---|---|---|---|
| Project depth | ProjectDepth / AIWATCH_PROJECT_DEPTH | 7 | 20 |
| Project timeout | ProjectTimeout / AIWATCH_PROJECT_TIMEOUT | 60s | 300s |
<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
Is the package custom-built per organization?
Is the package custom-built per organization?
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.Is Python, the Runlayer CLI, or any other runtime a prerequisite?
Is Python, the Runlayer CLI, or any other runtime a prerequisite?
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.Which operating systems and architectures are supported?
Which operating systems and architectures are supported?
| Platform | Managed deployment | Notes |
|---|---|---|
| macOS (Apple Silicon / arm64) | Signed + notarized .pkg | Released artifact aiwatch-<version>-macos-arm64.pkg |
| Windows (x64) | Signed .msi wrapped for Intune | Windows 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 |
.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.What outbound network access does AI Watch need?
What outbound network access does AI Watch need?
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. ChangingEnforcement 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:
| File | Purpose |
|---|---|
aiwatch-<version>-macos-arm64.pkg | Installs the aiwatch binary, scan LaunchAgent, and hook bootstrap |
com.runlayer.aiwatch.config.mobileconfig | Tenant host, organization API key, Enforcement, and Sessions |
com.runlayer.aiwatch.pppc.mobileconfig | Full Disk Access / TCC grants |
com.runlayer.aiwatch.loginitems.mobileconfig | Pre-approves bundled LaunchAgents on macOS 13+ |
.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 toHKLM\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.
| File | Purpose |
|---|---|
aiwatch-<version>-win-x64.intunewin | App package for Intune upload (installs aiwatch.exe, writes registry, registers the Scheduled Tasks) |
custom-detection/detect-install.ps1 | Recommended Intune custom detection script (reports installed only when aiwatch.exe + the AIWatchScan task both exist) |
scripts/bootstrap.ps1 | Optional 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.
Enforcement / Sessions to the desired values.
Related Resources
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