macOS Endpoint Security

Stop supply chain attacks
before they read your secrets

Every npm install executes arbitrary native code with your full file-system permissions. ClearanceKit intercepts every file-system access event and enforces per-process allow policies — so a compromised package can't silently reach your SSH keys, credentials, or private data.

Download for macOS View on GitHub

Loading latest release…

ClearanceKit intercepting a file-system access attempt in real time
10
ES event types intercepted
2
ES clients — policy + jail
0
Network calls made by the app
0
Third-party dependencies
MDM
Fleet management via profiles

How it works

Enforce policy at the kernel boundary

ClearanceKit uses Apple's Endpoint Security framework to place itself between every file-system operation and the process that triggered it — before the access is granted.

1

Process requests file access

Any process — including those spawned by npm install, pip install, or brew upgrade — attempts to open, rename, read, or write a file.

2

Endpoint Security intercepts the event

The kernel delivers an authorisation event to ClearanceKit's system extension before the access is permitted. The extension must respond within the deadline.

3

Policy is evaluated by code signature

The extension checks the process's cryptographic Team ID and Signing ID against your rules — not file paths or hashes, which can be spoofed or go stale after updates.

4

Access is allowed or denied instantly

Denied events surface in the SwiftUI interface so you can review them and build policy as you work. Allowed accesses pass through with zero latency.

ClearanceKit App Protections UI

Features

Everything you need to lock down your workstation

Surgical, per-process file-system control with zero-maintenance policies that survive software updates.

Code-signature policies

Bind rules to the cryptographic Team ID and Signing ID embedded in every binary — not file paths that can be spoofed or hashes that go stale after each update.

Jail rules

Confine any process to a specific set of path prefixes. Any access outside the allowed set is denied regardless of other policy rules — zero escape.

Process ancestry

Allow access only when the process was launched by a trusted parent. Grant a build tool read access to source files only when invoked from your trusted CI runner.

Native SwiftUI interface

Live event stream, one-click policy creation, app protections, process tree visualisation, and a real-time pipeline throughput graph — all in a native sidebar app built entirely with SwiftUI.

MDM fleet management

Deploy policies across your entire developer fleet via Apple Configuration Profiles. Any MDM that supports managed preferences works — Jamf, Kandji, Mosyle, and more.

Zero network calls. Zero dependencies.

ClearanceKit never makes outbound connections and has no third-party dependencies. Every capability — Endpoint Security, XPC, SQLite, SwiftUI — is provided by Apple's own frameworks. No telemetry, no update checks, no supply chain to audit beyond Apple's toolchain.

What's at risk

One postinstall script can reach all of this

Any unsandboxed process runs with your full file-system permissions. A malicious package or compromised dependency can silently exfiltrate all of the following.

SSH private keys
~/.ssh/id_*

AWS / GCP / Azure credentials

iMessage chat history
~/Library/Messages/

Safari & browser cookies

Git credentials
~/.git-credentials

GPG private keys
~/.gnupg/

Signal, Slack, Discord data

VS Code / IDE state & workspace

Why code signing beats file paths

Policies that can't be spoofed,
and never go stale

Traditional MAC systems bind permissions to file paths or binary hashes. ClearanceKit binds them to the Developer ID certificate embedded in the binary.

Path & hash-based MAC

SELinux / IMA / AIDE
  • Every software update invalidates hashes — manual policy refresh required
  • A trojanised binary at the expected path inherits all permissions
  • High maintenance burden on active developer workstations
  • No concept of process ancestry — evaluates immediate process only

ClearanceKit

Cryptographic identity
  • Signing identity unchanged across updates — write once, maintain never
  • Trojanised binary carries different or no signature — denied regardless of path
  • Zero-maintenance policies on developer workstations with frequent updates
  • Full process ancestry: grant access only when invoked by trusted parent

Installation

Up and running in under a minute

No configuration files. No command-line setup. Download, drag, and grant the two permissions macOS requires.

1

Download the DMG

Get the latest signed and notarized release below. Every release is attested with GitHub's build provenance attestation.

2

Drag to Applications

Open the DMG and drag clearancekit.app to the Applications folder shortcut.

3

Activate the system extension

On first launch, open the Setup tab and click Activate Extension. macOS prompts for approval in System Settings — once only.

4

Grant Full Disk Access

Endpoint Security requires Full Disk Access for the system extension. Grant it when prompted, or navigate to System Settings → Privacy & Security.

# No auto-updates by design.
# Check the Releases page manually.

# Verify build provenance
gh attestation verify
clearancekit-vX.Y.dmg
--owner craigjbass

# View system extension logs
log stream \
--predicate 'subsystem ==
"uk.craigbass.clearancekit.opfilter"'
--level debug

Download ClearanceKit

Free and open source. Signed, notarized, and attested. No account required. No telemetry. No auto-updates. No third-party dependencies — just Apple APIs.

Download Latest Release View all releases →