What ZerX will never delete
ZerX can see everything inside the folder you grant it, so the rules below are enforced in the deletion layer and covered by tests, not just hidden in the interface.
Scope allowlist
Only the folder you granted, normally your home folder, can be touched. The rest of the disk is shown for the picture, not for deletion.
Hard blocklist
Keychains, Preferences, Application Support, iCloud, Messages, Mail, Photos, Safari, .ssh, .gnupg, .aws, .kube, shell rc files. Any folder containing a protected path is protected too.
One gate
Every deletion passes through a single checkpoint that normalizes the path and re-checks it after resolving symlinks. A symlink into a protected folder doesn't get through. Covered by tests.
Always protected
~/Library/Keychains~/Library/Preferences~/Library/Application Support(except the app caches listed below)- iCloud Drive (Mobile Documents)
~/Library/CloudStorage(Google Drive, Dropbox, OneDrive)- Messages
- Photos libraries
- Safari
- Cookies
~/.ssh~/.gnupg~/.aws~/.kube- shell config files (
.zshrc,.bashrc,.profile) - the system volume and other volumes
Any folder that contains a protected path is protected too.
Containers: contents yes, folder no
Documents, Downloads, Desktop, Library/Caches and other standard folders can be emptied item by item but never deleted themselves.
App caches ZerX can offer inside Application Support
Google Drive content cache, VS Code and Cursor caches, Discord, Slack, Spotify, Adobe Media Cache, iPhone backups (MobileSync). Each is a separate checkbox; if the owning app is running, ZerX asks you to quit it first. Nothing else inside Application Support can be touched.
Trash, then your call
Everything goes to the Trash. Emptying it is a separate, explicit action. Local Time Machine snapshots can be removed only in the direct-download version, after an administrator prompt.
