Installing the agent

Installing the agent on macOS

Build the macOS agent tarball, install it under a dedicated unprivileged account with a launchd daemon, and where its files live.

The agent packages the same runtime as Linux — Node and the host agent’s own sources, no native macOS installer package yet. Build a tarball for the target architecture and install it with the same installer script.

Build the tarball

On a Mac, with a Node 24.15+ binary available:

scripts/build-agent-tarball.sh <out-dir> --os macos --arch aarch64

Use –arch x86_64 for an Intel Mac. The script refuses to package a Node binary for a different CPU or OS than the one it is run on, unless you pass –node explicitly — a tarball labelled for the wrong platform simply cannot run.

Install

Unpack the tarball and run its installer with the enrollment bundle from the console:

sudo ./install.sh --enrollment-file enrollment.json

The installer creates a dedicated, hidden system account (_dsh-agent) to run the daemon under — deliberately not a member of admin, so it cannot escalate the way an administrator account can — and registers a launchd daemon. If the account cannot be created, the installer falls back to running as root with a loud warning rather than failing the install outright.

Read-only execution policy is the default on every enrolled host; the full policy is an explicit, per-host choice.

Paths

  • Install prefix: /opt/dsh-host-agent.
  • State directory: /var/lib/dsh-host-agent, mode 700, owned by _dsh-agent.
  • Daemon definition: /Library/LaunchDaemons/com.dsh.host-agent.plist.

Uninstall

Removes the background service; local state is left in place:

dsh-host-agent uninstall
All documentation