Skip to content

Install the agent on macOS

The macOS agent runs as a launchd daemon under LaunchDaemons, survives reboots and lid-close, and reconnects automatically after the Mac comes back from sleep. Installation is the same curl | sudo bash one-liner used for Linux.

Regional ingest hosts

This article uses ingest-eu.opsmerge.cloud throughout — the EU cell's agent ingest host. If your OpsMerge tenant is in another region (e.g. US), the ingest hostname will be different (ingest-us.opsmerge.cloud, and so on). Always use the host shown in OpsMerge → Add agent, which is pre-filled with your tenant's correct value — don't hand-copy from this article.

Prerequisites

  • macOS 12 (Monterey) or later, on either Apple Silicon (M1/M2/M3/M4) or Intel.
  • The Mac must be able to reach ingest-eu.opsmerge.cloud on port 443 (binary download + registration) and on port 4222 (NATS).
  • A user account with sudo / admin rights.
  • A registration token from OpsMerge.

Managed Macs (Jamf, Mosyle, Kandji, Intune)

The same agent works under MDM-managed installs. Wrap the curl | sudo bash command in a pkg or a script payload from your MDM. The agent does not require an MDM profile to function — but it does need to be installed as root.

Step 1 — Generate a registration token

  1. Sign in to OpsMerge at app.opsmerge.cloud.
  2. Open Clients, pick the client this Mac belongs to, and click Add agent.
  3. Copy the macOS install command.

The dialog generates a token scoped to that one client. Tokens are single-use by default and expire after 24 hours.

Step 2 — Install

Open Terminal and paste the install command. It looks like this (your token will differ):

bash
curl -sL https://ingest-eu.opsmerge.cloud/scripts/install-agent.sh \
  | sudo bash -s -- \
      --server https://ingest-eu.opsmerge.cloud \
      --token YOUR-TOKEN-HERE

You'll be prompted for the local admin password. The script downloads the agent binary for the correct architecture (arm64 or x86_64), verifies its checksum, writes the agent config, installs the launchd plist at /Library/LaunchDaemons/cloud.opsmerge.agent.plist, registers with OpsMerge, and starts the daemon.

Expected runtime is about 10 seconds. You should see:

==> Registration successful
==> Service started

Do not use app.opsmerge.cloud for the install

Cloudflare's Bot Fight Mode returns an HTML challenge to curl, which then breaks bash. The installer host must be ingest-eu.opsmerge.cloud.

Step 3 — Verify

In OpsMerge: open Agents, filter by the client, and the new Mac should appear within 30 seconds with Online status, model name (e.g. MacBookPro18,3), and current macOS version.

On the Mac:

bash
sudo launchctl list | grep opsmerge

The agent should be listed with a PID and a 0 exit code (or no exit code at all — it's running).

To tail the log:

bash
tail -f /var/log/rmm-agent.log

Re-installing or repairing

Append --force to the install command. The script will stop the existing daemon, remove its plist and config, then install fresh.

bash
curl -sL https://ingest-eu.opsmerge.cloud/scripts/install-agent.sh \
  | sudo bash -s -- \
      --server https://ingest-eu.opsmerge.cloud \
      --token YOUR-TOKEN-HERE \
      --force

Removing the agent

If you need to uninstall a Mac agent (e.g. before reassigning the device):

bash
sudo /usr/local/bin/rmm-agent uninstall

This stops the daemon, removes the plist, deletes /etc/rmm/, and clears the binary. The agent's history stays in OpsMerge — it just goes offline permanently.

Common installation issues

"This action requires the application to be allowed full disk access." macOS Privacy & Security blocks the launchd daemon from reading certain paths. Open System Settings → Privacy & Security → Full Disk Access and add /usr/local/bin/rmm-agent. This affects some collectors (e.g. mailbox-size telemetry) but doesn't block registration or core monitoring.

Agent registers but immediately goes offline. Check /var/log/rmm-agent.log for TLS handshake or permission denied errors. The most common cause is an outbound firewall (e.g. Little Snitch, an MDM-managed proxy, or a Cisco Umbrella roaming client) blocking port 4222.

Apple Silicon Mac installs the wrong architecture. Rare, but if you've forced Rosetta on your Terminal, the install script may see x86_64 and grab the wrong binary. Right-click Terminal in Finder → Get Info → uncheck Open using Rosetta, then re-run.

Next steps

OpsMerge is a product of Brindleford Technologies Ltd, company number 16871436, registered in England and Wales.