๐ก๏ธ Safety
How soap keeps removals reversible โ Trash, per-step confirmations, and the root-owned file fallback.
soap is built to be reversible and explicit. Nothing is removed without you seeing it first.
๐๏ธ Files go to Trash
Selected files are moved to Trash, not permanently deleted. You can recover
anything from ~/.Trash until you empty it.
โ You confirm every step
- You get a full checkbox list of every file found before anything is removed โ deselect anything you want to keep.
- The Homebrew uninstall is a separate confirmation step from the file removal.
- If a step needs admin rights you don't have, soap asks before proceeding rather than failing midway.
๐ Root-owned files
Some files (launch daemons, system caches) are owned by root and cannot be moved
to Trash. soap lists these separately and asks whether to run sudo rm on them.
This is a permanent delete, so it defaults to No. To skip the prompt in
automation, pass --yes-dangerously โ which auto-confirms the sudo rm step.
Plain --yes never deletes root-owned files.
๐ฅ Force-uninstall fallback
If an app is already gone but the cask is still registered in Homebrew, soap
offers to force-run brew uninstall --zap --force. This fallback also defaults
to No.
๐ค Non-interactive use
--yes skips the file and brew-uninstall prompts (auto-selecting all files), but
still won't touch root-owned files. Use --yes-dangerously only when you fully
trust the scan results, as it removes the last confirmation before a permanent
delete.