Skip to main content
The standalone path installs the macOS Collector from a notarized, Developer ID-signed .pkg on a single Mac without any MDM. It is the right choice for an individual machine, a pilot, or a small team where you do not yet have a managed device fleet. The package places Hilt EDR (EDRApp.app) into /Applications and registers a small forwarder LaunchDaemon; the user then performs a one-time, ~30-second approval of the system extension and grants it Full Disk Access. This works on a normal, hardened Mac — System Integrity Protection (SIP) stays enabled, there is no csrutil disable, no developer mode, and no Terminal required for the consents. That is possible because the app and its embedded extensions are signed with a Developer ID Application certificate, carry an embedded provisioning profile that authorizes the restricted Endpoint Security entitlement, use the Hardened Runtime, and are notarized and stapled by Apple. See Networking and trust model for the full entitlement and signing story.
The macOS Collector is in early access. The notarized .pkg with SIP-on install described here is the target shipping model. For zero-click fleet rollout via Jamf, Kandji, or Intune, see Deploy with MDM.

Requirements

Host resources

The package installs a small, well-defined set of items on the host: The two extensions delivered inside the app bundle are: There is no kernel extension (kext). Both components are pure user-space System Extensions on Apple’s modern frameworks.

Installation

The standalone install is a double-click followed by two one-time consents. For the click-by-click walkthrough with the exact System Settings panes and screenshots, see Install flow; the summary below mirrors that procedure.
1

Run the installer

Double-click Hilt-EDR-<version>.pkg and follow the prompts. Authenticate with an administrator password when asked. The installer copies EDRApp.app into /Applications and registers the forwarder LaunchDaemon.
2

Open the app once

Launch Hilt EDR from /Applications (or Spotlight). On first launch it requests activation of its system extension. Click Open System Settings (or Allow) when prompted.
3

Approve the system extension

Go to System Settings → General → Login Items & Extensions → Endpoint Security Extensions, enable ESensor, and authenticate. This is the system-extension approval; SIP remains enabled throughout.
4

Grant Full Disk Access

Go to System Settings → Privacy & Security → Full Disk Access and enable the ESensor entry, which appears automatically after step 3. It is listed as ESensor / “Hilt EDR Sensor”, not as “EDRApp”.
That is the entire user experience: approve the extension once, toggle Full Disk Access once. No SIP changes, no developer mode, no Terminal.
Full Disk Access is required. Any third-party Endpoint Security client needs it, and the same is true for CrowdStrike, SentinelOne, and similar products. These two consents (system-extension approval and Full Disk Access) are Apple security requirements and cannot be suppressed without MDM — the user must physically authenticate at least once. If you need a fully silent, zero-click install, use Deploy with MDM instead.

Configuration

The forwarder reads its configuration from /Library/Application Support/Hilt/EDR/. The collector ships events to a single configured ingest endpoint and identifies the host by its human-readable Mac name (device_name). Relevant settings: ESensor emits events as JSON lines, which the forwarder LaunchDaemon ships over outbound HTTPS to the edr-collector. The collector routes events to MSK Kafka topics (dag.endpoint.exec, dag.endpoint.file, dag.endpoint.net), the enrichment service processes them with ENRICH_PLATFORM=macos, and they land in the ClickHouse endpoint_events table. See Data flow for the full pipeline.

Verification

After approving the extension, confirm ESensor is activated and enabled:
Expected output includes the ESensor extension in the [activated enabled] state:
Confirm the forwarder LaunchDaemon is loaded and running:
Finally, verify the host appears in the dashboard. Within a minute or two of activation the Mac shows up in the Collectors fleet with a macOS host-type badge, and its events become queryable in the Investigate, Networks, Files, and Users views.
If systemextensionsctl list shows ESensor as [activated waiting for user], the extension has not yet been approved — return to System Settings → General → Login Items & Extensions → Endpoint Security Extensions and enable ESensor. If the sensor activates but no events reach the dashboard, confirm Full Disk Access is granted to ESensor and that outbound HTTPS (443) to your ingest endpoint is permitted.

What this install does not do

  • No SIP changes. It never runs csrutil disable and never enables developer mode; SIP stays enabled.
  • No kernel extension. Both components are user-space System Extensions; nothing loads into the kernel.
  • No inbound listener and no phone-home. The only network egress is outbound HTTPS to your configured ingest endpoint.
  • No file contents. ESensor captures event metadata (paths, signing identity, attribution), not the contents of files.
  • No arbitrary blocking or quarantine response. Telemetry is overwhelmingly NOTIFY; a small AUTH self-protection set denies unauthorized tampering with the agent in-kernel (see Event coverage). Console-driven on-device quarantine response is not yet available on macOS (early access).
  • No auto-update. Upgrades are performed by re-running a newer .pkg; in-place auto-update is not yet available on macOS.

Upgrade

Because the app and extension are signed with the same Team ID (MVMB6LCP2A), an upgrade does not require re-approval — the existing system-extension approval and Full Disk Access grant carry over, and launchd relaunches the new extension build automatically.
1

Quit the app

Quit Hilt EDR if it is running.
2

Run the new package

Double-click the newer Hilt-EDR-<version>.pkg and authenticate. It replaces EDRApp.app in /Applications in place.
3

Confirm the new build

Run systemextensionsctl list and confirm ESensor shows the new version in the [activated enabled] state.
macOS major upgrades. Full Disk Access grants can occasionally reset across a major macOS upgrade (a known TCC behavior). On a standalone Mac you may need to re-toggle Full Disk Access for ESensor once after such an upgrade. MDM-managed hosts have this re-applied automatically via PPPC — see Deploy with MDM.

Uninstall

Deactivate the system extension and remove the installed components:
After deactivation, remove the stale ESensor entries from System Settings → Privacy & Security → Full Disk Access and from Login Items & Extensions → Endpoint Security Extensions. No reboot is required.
System Extensions are deactivated through the system-extension lifecycle, not by deleting files alone. Use the app’s uninstall action (or its deactivation request) so macOS removes the extension from /Library/SystemExtensions/; removing only the app bundle can leave a deactivated-but-staged extension behind.
Last modified on October 8, 2026