everyday mac tools

Uninstall an app on a Mac completely, leftovers included

· 6 min read

Dragging an app from the Applications folder to the Trash removes the app itself and nothing else. Everything it wrote into your Library folder stays behind: preferences, caches, databases, login items, sometimes a helper that carries on running after the app is gone. For most apps that residue is a few megabytes and harmless. For a handful it is gigabytes, and for a few it is why the app behaves oddly when you reinstall it.

Here is where macOS actually puts that material, and how to clear it without breaking something you still use.

What the Trash removes and what it leaves

A Mac app is a folder pretending to be a file. /Applications/Something.app holds the code, the icon and the resources, and dragging it to the Trash removes all of it. That part is a real uninstall.

What it does not touch is anything the app created while it ran, because none of that lives inside the bundle. macOS keeps app data in your home Library on purpose, so that reinstalling brings your settings back. Helpful, right up to the moment you want the app gone for good.

Two kinds of leftover matter, for different reasons:

  • Support data, which can be large: databases, downloaded content, media libraries, caches.
  • Wiring, which is barely any space but keeps doing things: login items, helpers, launch agents, and permission entries that still list the app by name.

The first costs disk. The second costs behavior.

Check for a real uninstaller first

Before hunting by hand, check whether the app ships its own uninstaller. Anything that installs drivers, virtualization layers, network filters, backup engines or security agents almost certainly does, because those apps put files outside your home folder and need an administrator password to remove them.

Look in the app’s own menu bar (often an Uninstall item under Help), in the disk image it arrived in, and on the developer’s support page. If one exists, use it and stop there. A manual sweep will not find the system-level pieces those apps install.

Apps from the Mac App Store are the easy case. They are sandboxed, so nearly everything they wrote lives in one container folder named after the app.

Get the bundle identifier before the app is gone

Most leftover files are named after the app’s bundle identifier, something in the form com.developer.appname, rather than the friendly name on the icon. That is why searching your Library for the app’s name so often turns up nothing.

Look it up while the app is still installed. In Terminal:

osascript -e 'id of app "Safari"'

Or point at the bundle directly:

mdls -name kMDItemCFBundleIdentifier /Applications/Something.app

Write the answer down. Once the app is in the Trash, the easy way to look it up has gone with it.

The folders worth checking

Your Library folder is hidden. The reliable way in is Finder, then Go, then Go to Folder (Command-Shift-G), and paste a path. Do not rely on Finder search here: Spotlight does not index the Library folder, so a search often returns nothing even when the file is sitting there.

In your own account, in rough order of how much space they hold:

  • ~/Library/Application Support/ : a folder named after the app. Usually the biggest thing you will find.
  • ~/Library/Containers/ and ~/Library/Group Containers/ : sandboxed apps keep everything here, under the bundle identifier.
  • ~/Library/Caches/ : regenerates, so it is the safest to remove and the least worth chasing.
  • ~/Library/Preferences/ : a .plist file named after the bundle identifier.
  • ~/Library/Saved Application State/ : remembers which windows were open.
  • ~/Library/Logs/, ~/Library/HTTPStorages/, ~/Library/WebKit/ : any app that showed you a web view may have a folder here.
  • ~/Library/LaunchAgents/ : a .plist here is what starts a helper at login.

If you would rather sweep than click, one command covers most of it:

find ~/Library -maxdepth 3 -iname "*com.developer.appname*"

Apps installed from a package also write into /Library/Application Support/, /Library/LaunchDaemons/ and /Library/PrivilegedHelperTools/. Those need an administrator password and deserve more care. If you did not install it deliberately, leave it.

The wiring that outlives the app

Space is only half the problem. These are the pieces that keep acting after an app is gone.

Login and background items. System Settings, General, Login Items (called Login Items and Extensions on more recent versions). Remove the entry, then check the list of items allowed to run in the background further down the same pane, which is where helpers from deleted apps sit quietly.

Permission entries. System Settings, Privacy and Security. A deleted app can still be listed under Full Disk Access, Accessibility or Screen Recording. Removing it there is tidiness rather than a security fix. Some apps also install a system extension; systemextensionsctl list in Terminal shows what is loaded.

Installer receipts. If the app came from a .pkg, macOS recorded what it installed. pkgutil --pkgs | grep -i developer finds the receipt, and pkgutil --files <package-id> prints every file that package put on disk, which is the closest thing to an official uninstall list. Note that pkgutil --forget deletes only the receipt, not the files.

One more thing that catches people: uninstalling an app does not cancel a subscription bought outside the App Store.

A safe order to do it in

  1. Quit the app, including any menu bar item it left running.
  2. Note the bundle identifier.
  3. Run the app’s own uninstaller if there is one, and stop.
  4. Move the app to the Trash.
  5. Remove its login item and its background item.
  6. Sweep the Library folders above, moving what you find to the Trash rather than deleting it outright.
  7. Restart, if a helper was running.
  8. Use the Mac for a week, then empty the Trash.

Step eight is the one that saves you. It gives you a week to notice that something else depended on a folder you did not recognize. Which caches are safe to delete on a Mac covers the same principle for the parts that regenerate.

When chasing leftovers is worth the effort

Plainly: for most apps it is not. A preference file is a few kilobytes, deleting thirty will not change your free space, and the hunt is mostly satisfying rather than useful.

It is worth doing when the app stored real data (photo or video libraries, container images, downloaded models, mail archives), when it installed background components, when you are reinstalling to fix an app that is misbehaving, or when you are preparing the Mac to hand on.

If you would rather have the leftovers found for you than looked up path by path, Crumb has an Uninstall tool that pairs an app with the files it left behind and shows the list before anything moves. That tool is part of the paid unlock; the free audit still shows how much of your System Data is leftovers from apps that are no longer installed, which is often the more useful number. It does not recover deleted files, so the review step is not decoration. What System Data is on a Mac explains what else is in that figure.

Questions

Does uninstalling an app free as much space as Storage settings suggested? Rarely, because the figure next to an app in that list is the size of the bundle only. The data it wrote is counted elsewhere, usually under Documents or System Data. That is why deleting a large app sometimes frees almost nothing.

Is it safe to delete the preference file for an app I still use? Yes. The app recreates it with defaults on next launch. You lose your settings for that app and nothing else, which makes it a reasonable first step when an app misbehaves.

What about apps I deleted years ago? Their folders are still there. Work from the folder names in ~/Library/Application Support and ~/Library/Containers: anything named after software you no longer have is safe to move to the Trash. Give it the same week before emptying.