What Siftaway never touches, and why

A cleaner earns trust by what it refuses to do. This page is the whole safety model, in the order the checks run.

1. Nothing is deletable by default

Most cleaners assume a folder can go and keep a blocklist of dangerous paths as a backstop. A blocklist is never complete, and the path it misses is a data loss. Siftaway works the other way round: a path can only be touched when a published rule names it.

There are 73 cleanup rules and 9 protection rules. All 82 are listed, with their paths, on the rules page. There is no “clean arbitrary folder” feature.

Refusals are always whole. If a directory fails a check, Siftaway does not shrink the job to “just one subfolder”. It leaves the entire item alone and tells you why. A partial run means you believe A was removed while B was touched, which is worse than doing nothing.

2. The never-delete list

These are refused no matter what a rule says. If the rule set were wrong, or even maliciously replaced, this layer would still hold.

LocationWhy it is off limits
~/.ssh ~/.gnupg ~/.aws ~/.kube ~/.docker/config.json ~/.local/share/keyringsCredentials. No download brings them back.
~/Documents ~/Desktop ~/Pictures ~/Movies ~/MusicYour own files. They are not caches.
~/Library/KeychainsThe keychain.
~/Library/Mobile Documents ~/Library/Group ContainersiCloud syncs local deletions to the cloud, so there is no safe “local copy only” here.
~/Library/Mail ~/Library/Messages ~/Library/Safari ~/Library/Accounts ~/Library/Cookies ~/Library/PreferencesMail, messages, logins, bookmarks, settings.
~/Library/Application Support/MobileSyncLocal iPhone backups, often the only copy.
~/.ollama/models ~/.lmstudio/models ~/.cache/huggingface ~/.cache/torch ~/.cache/whisper ~/.cache/tensorflow ~/.cache/wandbModel weights. Tens of gigabytes and slow to fetch, so “costly to rebuild” is as good as irreplaceable.
~/.cache/pypoetry/virtualenvsVirtual environments may contain packages you patched by hand.
/System /usr /bin /sbin /etc /Library/Keychains /Library/Extensions /Library/LaunchDaemons /Library/LaunchAgents /Applications /VolumesThe operating system, installed apps, and other disks.
/usr/local /opt/homebrewHomebrew’s territory. Cleaning it is brew cleanup’s job.
Your home folder, and any of its top-level folders as a whole~/Library or ~/Downloads is too coarse; anything could be inside. A target must be at least one level deeper.

Paths are also refused when they are relative, contain .. or control characters, pass through a symbolic link anywhere along the way, or contain fragments such as /Keychains/, /.ssh/, /Mobile Documents/ or /Photos Library, which inside a “cache” folder usually mean it holds real data.

3. Everything is checked again right before it moves

Minutes can pass between a scan and your click on Confirm. You may have switched branches, reinstalled dependencies, or mounted a disk at the same path. So each item is re-verified at the last moment:

Skipped items are reported with the reason. Nothing is skipped silently, because you would assume it had been removed.

4. One destination: the Trash

5. A rule update can never quietly widen what gets deleted

Changes that narrow the rule set (an extra exclusion, a removed rule, a higher risk level) apply on their own. Changes that widen it (a new path, a lower risk level, a shorter exclusion list) need your explicit confirmation, shown at the moment you start a scan together with what they would add on your Mac. Even an approved rule cannot override the never-delete list above.

Found a hole?

Tell us at support@siftaway.com. A path that should be protected and is not is the most serious kind of bug this product can have, and it is treated that way.