shh

Silence your Mac, app by app.

macOS buries notification settings one app at a time in System Settings. shh puts every app on one terminal screen: arrow through the list, flip sound, badges, banners, and lock-screen previews, then apply it all at once. Every write is backed up first, and shh undo puts things back.

The shh screen: a list of apps with columns for on/off, alert style, badge, sound, Notification Center and Lock Screen, with one change staged in yellow.
Changed cells turn yellow. Nothing is written until you press enter.

Install

With Homebrew:

brew install alexpriest/tap/shh

Or with pip (Python 3.11+): pip install shhhhhh. Six h's.

Give it Full Disk Access

Notification settings live in a protected file, so your terminal needs permission to read it.

  1. Open System Settings → Privacy & Security → Full Disk Access.
  2. Turn on your terminal app (Terminal, iTerm2, Ghostty, Warp).
  3. Quit and reopen the terminal.

Skip this and shh walks you through it the first time you run it.

Use it

shh

That opens the screen. The keys:

↑ ↓move
spacenotifications on / off
talert style: temporary → persistent → off
s bsound, badge
n lshow in Notification Center, show on Lock Screen
S Bsound or badges for every app at once
xmark rows; actions then apply to all marked
/filter by name
enterreview and apply
?everything else

Or skip the screen and do it in one line:

shh sound off --all            # mute everything
shh sound on Messages          # then let one back in
shh badges off --all           # no more red dots
shh allow off Slack            # Slack, entirely
shh style persistent Calendar  # alerts that stay until dismissed
shh list                       # see where everything stands
shh undo                       # put it all back

Bonus: clean out apps you never open

In the screen, o adds a Last used column. U uninstalls the app under the cursor and sweeps its leftovers out of ~/Library. Everything goes to the Trash after a review screen, never straight to deletion. Apple apps and anything running are refused.

Fine print

macOS only. Tested on macOS 26. shh edits the same settings file System Settings does, then restarts the notification service so changes take effect right away. A backup is saved before every write.

Source on GitHub.