---
description: >-
  Downloadable Iru scripts for installing, auditing, repairing, and removing the Watcher client on managed Macs.
---

> Part of the Watcher docs. Index of all pages, with summaries: https://watcher-docs.apolloresearch.ai/llms.txt
> Before upgrading Watcher, read the release pages and full changelogs for every version crossed: https://watcher-docs.apolloresearch.ai/releases/index.md
> Found an issue with this page? Report it: https://github.com/ApolloResearch/watcher-bin/issues/new?title=Docs%20feedback%3A%20Iru%20provider%20sample&body=Page%3A%20Iru%20provider%20sample%0AURL%3A%20https%3A%2F%2Fwatcher-docs.apolloresearch.ai%2Fself-hosting%2Fprovider-samples%2Firu%2F%0A%0A

# Iru provider sample

These scripts deploy the [Watcher client](../../client/index.md) to managed Macs.
The audit script checks whether Watcher needs to be installed or repaired, and
the remediation script performs that work for the logged-in user.

See [MDM rollout](../mdm.md) for start-on-login, proxy headers, and managed
settings.

The remediation script targets a self-hosted Watcher deployment. Set its
Watcher URL and port for yours; the client takes the deployment's sign-in mode
from the backend, so the script selects nothing about authentication. On a
header-proxy deployment, add the machine's `WATCHER_HEADER_*` variables to the
installer invocation (see [MDM rollout](../mdm.md#proxy-mode-headers)). Test the
scripts on a small device group before wider deployment.

## Scripts

- [`audit-macos.sh`](../../assets/mdm/iru/audit-macos.sh) checks the
  installation, hooks, login agent, and local service health. A non-zero exit
  tells Iru to run remediation.
- [`remediate-macos.sh`](../../assets/mdm/iru/remediate-macos.sh) installs
  Watcher when absent, repairs hooks, and configures the client to start on
  login. Set the Watcher URL in the remediation script; the client follows the
  server version automatically.
- [`uninstall-macos.sh`](../../assets/mdm/iru/uninstall-macos.sh) removes the
  client while preserving the user's Watcher data by default. Remove the
  audit-and-remediate assignment before running it, or the next audit can
  reinstall the client.

## Configure Iru

Create a Custom Script Library Item. Add `audit-macos.sh` as the Audit Script
and `remediate-macos.sh` as the Remediation Script, then configure its
frequency and Blueprint scope.
