Sweepfor Mac

Apps & uninstalling

How to Properly Uninstall Apps on Mac (Not Just Drag to Trash)

Drag-to-trash leaves prefs, caches, and helpers behind. Here's how to properly uninstall apps on Mac and reclaim every byte they grabbed.

9 min read

Drag the app to the Trash, empty it, done. That’s how Apple has trained us to think about uninstalling Mac apps for twenty-plus years. The trouble is, it’s not really uninstalling — it’s deleting the app bundle and leaving everything else behind.

Open ~/Library after you’ve “uninstalled” a few apps and you’ll see what I mean. Caches from apps you haven’t run in a year. Preference files for an editor you tried for one afternoon in 2023. Helpers, daemons, login items pointing at apps that no longer exist. The Mac doesn’t garbage-collect any of it.

What “uninstalling” actually means on macOS

A Mac app isn’t one thing. It’s the .app bundle in /Applications plus a scatter of files written across the user library while the app was running. A typical app drops files in some combination of these folders:

  • ~/Library/Application Support/<app name>/ — saved data, configs, plugins
  • ~/Library/Caches/<bundle id>/ — temporary files that can be huge
  • ~/Library/Preferences/<bundle id>.plist — settings
  • ~/Library/Containers/<bundle id>/ — sandboxed app data
  • ~/Library/Group Containers/<group id>/ — shared data between an app and its extensions
  • ~/Library/Saved Application State/ — window positions, last-open documents
  • ~/Library/LaunchAgents/ — files telling launchd to start helpers at login
  • ~/Library/HTTPStorages/ and ~/Library/Cookies/ — web storage if the app uses WebKit
  • /Library/Application Support/, /Library/PrivilegedHelperTools/, /Library/LaunchDaemons/ — system-wide installs (Adobe, Microsoft, anti-virus tools)

Drag-to-trash hits exactly one of those: the .app bundle. Everything else stays put.

How big is the leftover problem really?

For lightweight apps, it’s nothing — a 4 KB plist file you’ll never notice. For heavyweight apps, it’s gigabytes. A Slack install that you’ve used for two years can have 2–4 GB of cached attachments and message data in ~/Library/Application Support/Slack. Adobe leaves multi-gigabyte caches behind. Spotify has been known to grow its cache past 10 GB.

Multiply that across the dozens of apps the average Mac has tried and discarded over its life, and the leftover footprint is often 20–40 GB on a five-year-old machine.

The manual uninstall, step by step

If you’d rather do this by hand, here’s the actual workflow. It takes about three minutes per app once you’ve done it a few times.

  1. Quit the app. Right-click its Dock icon, choose Quit. If it has a menu-bar icon, quit it from there too.
  2. Open Activity Monitor (/Applications/Utilities/Activity Monitor.app) and search for the app’s name. If anything’s still running — helper processes, updaters — quit those too.
  3. Drag the .app from /Applications to the Trash.
  4. Open Finder, hit Cmd+Shift+G, and visit each of the library paths above one at a time. Look for folders or files matching the app name or its bundle ID (something like com.figma.Desktop).
  5. Check ~/Library/LaunchAgents and /Library/LaunchAgents for any .plist files belonging to the app — these are what auto-launch helpers at login.
  6. Empty the Trash.

The catch: half the leftover files don’t have obvious names. They’re named after the bundle ID, which you don’t necessarily know. Slack’s bundle ID is com.tinyspeck.slackmacgap — not exactly intuitive.

Skip the manual huntSweep finds every leftover preference, cache, and support file in seconds — and only removes what you OK. Download Sweep free →

Finding the bundle ID when you need it

The fastest way to find an app’s bundle ID is the Terminal:

osascript -e 'id of app "Slack"'

Or, in Finder, right-click the app, choose Show Package Contents, open Contents/Info.plist in a text editor, and look for CFBundleIdentifier. Once you have the ID, you know what to search for in ~/Library/Preferences and ~/Library/Containers.

Apps that fight back

Some apps are deliberately hard to uninstall. Adobe is the worst offender — its installer puts files in /Library/Application Support/Adobe, /Library/Adobe, /Library/Preferences, plus a Creative Cloud helper that has its own helper. Microsoft Office spreads similarly: there’s an Office folder, a OneDrive helper, plus auto-update and licensing daemons.

For these, dragging the .app to the trash isn’t anywhere near enough. You need each vendor’s official uninstaller (which usually requires downloading a separate tool from their site) or a third-party uninstaller that knows the layout.

Tip: Before you uninstall anything important, check whether the app stores documents inside its Container at ~/Library/Containers/<bundle-id>/Data/Documents. Some apps default-save there instead of ~/Documents.

What about LaunchAgents and helper tools?

These are the parts most uninstall guides skip, and they’re the parts that actually matter for Mac performance.

A LaunchAgent is a .plist file that tells launchd (the macOS init system) to start a process at login or on a schedule. Plenty of apps install one — your sync clients, updaters, menu-bar utilities, anti-cheat for games. When you trash the app, the LaunchAgent stays. It tries to start the process every time you log in, fails because the app is gone, and writes an error to the system log. Multiply that by ten old apps and your login is measurably slower.

To find them yourself:

  • ~/Library/LaunchAgents/ — user-level
  • /Library/LaunchAgents/ — system-level
  • /Library/LaunchDaemons/ — root-level (these need admin to remove)

Open each .plist in TextEdit and look at the Label and ProgramArguments keys to figure out which app it belonged to.

Using Sweep instead

Honestly, after doing the manual hunt a few times, most people give up and use a dedicated uninstaller. Sweep’s app uninstaller does what we just described — finds the .app, then sweeps ~/Library for matching support files, preferences, caches, containers, LaunchAgents, and helper tools — and shows you everything before it deletes anything.

Two things matter about that preview step:

  • You can keep specific files if you want to. Maybe you want to preserve Slack’s saved data in case you reinstall later. Sweep lists each file with its size, and you can untick anything you want to keep.
  • It won’t touch anything you don’t approve. There’s no “trust me, I’ll figure it out” mode.

What dragging to trash is fine for

Not every app deserves the full treatment. Tiny utilities that store nothing, single-file apps from the App Store, things you’ve used for ten minutes — drag-to-trash is fine. The leftover footprint is a few KB.

The ones worth uninstalling properly:

  • Anything you’ve used regularly for more than a month (caches will be substantial)
  • Anything that runs in the menu bar (almost certainly has a LaunchAgent)
  • Anything that auto-updates (has a helper)
  • Anything from Adobe, Microsoft, or any “suite” vendor
  • Anything you suspect is slowing your Mac down at login

Let Sweep uninstall properlyDrag-to-trash leaves traces. Sweep’s uninstaller wipes the app, support files, prefs, caches, and helpers — all at once. Get Sweep — free for Mac →

A note on App Store apps

Apps installed from the Mac App Store are sandboxed by default, which means most of their files live in ~/Library/Containers/<bundle-id>/. Trashing the app removes most — but not always all — of the container, depending on the macOS version. Group containers (~/Library/Group Containers/) and any non-sandboxed extensions (think Safari Web Extensions) often hang around.

Sandbox or not, the cleanup principle is the same: find the files, look at them, decide what goes.

Quick reference checklist

Use this if you want to do it manually next time:

  • Quit the app and any helpers (Activity Monitor)
  • Drag .app from /Applications to Trash
  • Search ~/Library/Application Support, Caches, Preferences, Containers, Group Containers, Saved Application State, Logs for app name and bundle ID
  • Check ~/Library/LaunchAgents, /Library/LaunchAgents, /Library/LaunchDaemons
  • Empty Trash

Or download Sweep and click Uninstall. Up to you.

← Back to all guides