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