OpenDMG
PureSnitch icon

PureSnitch for Mac

Open-source application firewall with map-based traffic view, rule management, DNS over HTTPS, and pf-based blocking.

By momenbasel. Free and open source, MIT licence.

Get it with OpenDMG View source on GitHub

PureSnitch at a glance

Version
0.2.2
Released
8 October 2026
Download size
2.5 MB
Works on
Apple silicon and Intel
Licence
MIT
Category
Security and Privacy
Developer
momenbasel
GitHub stars
166

About PureSnitch

Free, open-source application firewall for macOS. Little Snitch alternative with zero telemetry. Native SwiftUI world map, rules manager, DNS over HTTPS, pf-based blocking. Signed, notarized, MIT licensed.

Screenshots

PureSnitch screenshot 1PureSnitch screenshot 2PureSnitch screenshot 3

How to install PureSnitch on a Mac

  1. Get OpenDMG. It is a free app store for open source Mac apps. Download OpenDMG.
  2. Search for PureSnitch and press Get. OpenDMG downloads version 0.2.2 from momenbasel's own GitHub release.
  3. Open it. The download is checked against its SHA-256 fingerprint and its signature is checked on your Mac before it lands in Applications.

Updates to PureSnitch show up in OpenDMG and install with one button. No account is needed.

Prefer to do it by hand? The developer's file is on GitHub: PureSnitch-0.2.2.dmg (2.5 MB).

What is new in PureSnitch 0.2.2

# PureSnitch v0.2.2

This is a performance and uninstall-correctness update for the universal
macOS 13+ monitor build.

## Fixed

- The helper and its `nettop` child no longer pin two CPU cores. `nettop` ran
 in continuous mode, which busy-polls at well over a core regardless of the
 sample interval, and the helper resolved every socket's process path by
 spawning `ps` once per connection on every two-second poll. Traffic is now
 sampled once per second from a one-shot `nettop` frame and process paths come
 from `proc_pidpath`; the monitor costs about 0.3% of one core with 160 open
 sockets ([#19](https://github.com/momenbasel/puresnitch/issues/19),
 [#20](https://github.com/momenbasel/puresnitch/pull/20)).
- Traffic rates are diffed per process, so a process closing its sockets no
 longer re-baselines every other process for that interval
 ([#10](https://github.com/momenbasel/puresnitch/issues/10)).
- `brew uninstall --cask puresnitch` with Enforcement on no longer strands the
 `com.apple/puresnitch` anchor. `PureSnitchHelper --cleanup` waits up to 10 s
 for the daemon to exit instead of asserting once, and a helper stopped after
 its bundle is gone releases PF instead of holding state no successor can
 adopt. Dragging the app to the Trash reaches the same clean state through a
 30 s bundle watchdog ([#17](https://github.com/momenbasel/puresnitch/issues/17)).
…

More Security and Privacy apps

All Security and Privacy apps