Guide

How to uninstall Mac apps completely

Dragging an app to the Trash removes the app but not everything it created. Preferences, caches, support files and background helpers stay in your Library. If the app has its own uninstaller, run that first. Otherwise trash the app, then look for leftovers in a handful of Library folders by the app's name or bundle identifier, and move only what clearly belongs to that app to the Trash.

Start with the proper uninstall

Quit the app first. Apple's guide, Uninstall apps on your Mac, says to look for an uninstaller in the app's folder or a remove option inside the app, because that is the most thorough route. It also says that if there is none, you move the app to the Trash, and that deleting an app does not delete documents you made with it.

For many apps the leftovers are small. They matter more for large apps, for apps that install background helpers, and for apps you are removing because they misbehaved.

Where leftovers live

Your Library folder is hidden. In Finder, hold Option and open the Go menu to see Library, or press Shift-Command-G and type ~/Library.

Folder in ~/LibraryWhat is in it
Application SupportThe app's data, plugins and databases.
CachesFiles the app rebuilds. Safe to remove with the app.
PreferencesSettings, as .plist files named after the bundle identifier.
ContainersData for sandboxed apps, which includes Mac App Store apps.
Group ContainersData shared between apps from the same developer.
Saved Application StateWindow positions and open documents, so the app can reopen where it was.
LaunchAgentsBackground helpers that start at login. There are also system wide ones in /Library/LaunchAgents and /Library/LaunchDaemons.

Check by hand

Find the bundle identifier before you trash the app, because it is easiest to read while the app is still there:

mdls -name kMDItemCFBundleIdentifier /Applications/Foo.app
kMDItemCFBundleIdentifier = "com.example.foo"

Then search your Library for it. This only reads:

find ~/Library -maxdepth 2 -iname '*com.example.foo*' 2>/dev/null
find ~/Library -maxdepth 2 -iname '*foo*' 2>/dev/null

The second search catches folders named after the app instead of its identifier. It also catches unrelated things with a similar name, so read each result. Terminal may be refused access to some folders. If so, browse them in Finder instead.

A folder called com.example.foo is clearly the app's. A folder that just contains the word is not proof.

What not to delete

  • Anything with com.apple. in the name. That is Apple's.
  • A Group Containers folder when you still have other apps from the same developer. They share it.
  • Folders named after a company, such as one for a developer that makes several apps you use.
  • Your documents, even if the app made them.
  • Preferences and license files, if you may reinstall the app and want your settings back.
  • Anything you cannot identify. Leftovers are small, and leaving a few is a cheap mistake.

Move items to the Trash and not to a permanent delete, and empty it after a few days of normal use.

Background items

An app can leave a login item or a helper behind. In System Settings, General, Login Items & Extensions, remove entries for apps you uninstalled. For a stray file in LaunchAgents, open the .plist in a text editor first. Its Program or ProgramArguments entry shows what it launches. If that points to an app you deleted, the file is safe to trash.

Tools

AppCleaner (free) and Pearcleaner (open source) both list an app's related files before removing them. Commercial uninstallers do too. Whichever you use, read the list before confirming, because tools that match by name can over match.

Boost's Uninstall tab is one of these. Pick an app, or drop it on the window, and it lists the leftovers it found in your Library with sizes before anything moves. It lists exact matches only, sends everything to the Trash, and has an Undo.

Boost is free and open source (GPL-3.0), and not notarized by Apple, so the first launch needs an extra step, described on its home page.

Install Boost

Free and open source, installed with Homebrew.

Other ways to install