v3.0.17 Β· MIT

soap

A macOS CLI that removes an app and all its leftover files β€” preferences, caches, containers, launch agents, and more.

npm install -g @kud/soap-cli
v3.0.17
Latest
40+
Dirs Scanned
macOS
Platform
MIT
Licence
Why soap

Features

Everything AppCleaner does, but open-source and terminal-native. No GUI, no drag-and-drop β€” just a single command.

🧹
Deep Directory Scan
Scans 40+ macOS locations including Application Support, Caches, Containers, Preferences, LaunchAgents, and more β€” nothing gets left behind.
🍺
Homebrew Integration
Resolves app metadata from brew info and fetches the cask's zap stanza β€” the maintainer-curated list of known leftover paths.
πŸ—‘οΈ
Safe by Default
Files are moved to Trash, never permanently deleted. A full checkbox list lets you deselect anything you want to keep before anything moves.
πŸ“
Cask & Path Mode
Works with Homebrew cask names (soap spotify) or direct app paths (soap '/Applications/Spotify.app') for manually installed apps.
πŸ”
Bundle ID Awareness
Derives the bundle identifier from the app and also scans vendor subdirectories (e.g. com.spotify.client) that a simple name-match would miss.
πŸ›
Debug Mode
Set SOAP_DEBUG=1 to enable verbose subprocess output and trace every command that runs under the hood.
Get going fast

Quick Start

Install once, then pass any Homebrew cask name or app path. soap handles the rest interactively.

# Install globally via npm
npm install -g @kud/soap-cli

# Or via Homebrew
brew install kud/tap/soap-cli

# Remove Spotify and all its leftover files
soap spotify

Welcome to soap 🧼, the app cleaner.

β ‹ Fetching cask info…
β ‹ Scanning for files…

β„Ή Cleaning: Spotify
β„Ή Mode: cask (spotify)

? Found 11 files. Select what to move to Trash:
 β—‰ /Users/kud/Library/Application Support/Spotify
 β—‰ /Users/kud/Library/Caches/com.spotify.client
 β—‰ /Users/kud/Library/Preferences/com.spotify.client.plist
 β—‰ /Users/kud/Library/Saved Application State/com.spotify.client.savedState
 β—‰ /Users/kud/Library/Logs/Spotify

? Run `brew uninstall --zap spotify`? Yes

βœ” Moved 11 file(s) to Trash.
βœ” Done.

# For a manually installed app (no cask)
soap '/Applications/Android Studio.app'
Commands

CLI Reference

The soap command accepts a Homebrew cask name, a direct app path, or a flag.

soap <cask-name> Clean an app installed via Homebrew cask. Resolves app info, scans 40+ directories, fetches the zap stanza, and presents a checkbox list before moving anything to Trash.
soap <path-to-app> Clean a manually installed .app bundle (e.g. from a DMG). Skips the Homebrew step β€” scans by app name and bundle ID only.
soap --help Show usage information and available options.
SOAP_DEBUG=1 soap <name> Enable verbose debug output β€” prints every subprocess command that runs so you can trace exactly what soap is doing.