How to Uninstall Apps on Mac Completely

Dragging an app to the Trash isn't enough. Learn the proper way to remove macOS applications and every hidden file they leave behind.

10 min read Updated October 2026 Difficulty: Intermediate

If you've been using a Mac for a while, you've probably uninstalled dozens of apps the same way: open Applications, drag the icon into the Trash, done. On paper it looks tidy. In practice, every one of those apps left a trail of preference files, caches, support folders, launch agents, and login hooks scattered across your drive. Multiply that by years of software and you're looking at gigabytes of orphaned data silently taking up space and, in some cases, still running in the background.

This guide shows you how to uninstall Mac apps the right way — removing not just the .app bundle but every associated file an application touches. We'll cover Launchpad removal for App Store apps, manual cleanup of Library folders, how to find and disable launch agents, when to use a developer's built-in uninstaller, and how to verify nothing was missed. These are the same techniques used by IT admins and power users, and once you know them you won't go back to the drag-to-Trash method.

1. The Problem with Drag-to-Trash

When you drag an app bundle to the Trash, macOS removes the executable and resources packaged inside Appname.app. What it does not remove are the files the app created outside its bundle during normal use: preference plists, support folders in ~/Library/Application Support/, caches in ~/Library/Caches/, saved states, log files, and in many cases launch agents that keep running at startup even though the app is "gone."

A single modern application can create 10–50 auxiliary files spread across six or more directories. Creative software, VPNs, cloud sync clients, and anything with an auto-updater are the worst offenders. After a few years of installing and "uninstalling," you can accumulate several gigabytes of pure junk, plus phantom helper processes that still appear in Activity Monitor.

Watch out: Some leftover launch agents will keep trying to phone home or auto-update even after you "delete" the app. If you ever uninstalled a VPN, antivirus, or kernel-extension-based tool and still see weird network activity, there's a very good chance a .plist is still active in LaunchAgents or LaunchDaemons.

2. How to Uninstall Apps from Launchpad

Apps installed from the Mac App Store support the cleanest form of removal built into macOS: Launchpad uninstall. Because the App Store sandboxes applications, almost all of their data stays contained, and Launchpad can delete the bundle plus most container data in one action.

  1. Open Launchpad from the Dock, or pinch inward with four fingers on the trackpad.
  2. Click and hold any icon until the icons start to jiggle.
  3. Apps that can be removed this way show a small × badge in the top-left corner.
  4. Click the ×, then confirm Delete in the popup.

No × badge means the app was not installed from the App Store, or it is a system app that cannot be removed. For those, keep reading — you'll need the manual approach.

3. Manual Removal: Application Support Files

For any app not purchased from the App Store, use this manual process. The idea is simple: delete the app bundle, then hunt down and delete every supporting file it created.

Start by quitting the app completely. Right-click its Dock icon and choose Quit, or press ⌘ + Q from inside the app. Then open Finder → Applications, locate the app, and drag it to the Trash. Enter your password if prompted.

Now open Finder and press ⌘ + ⇧ + G to invoke Go to Folder. We're going to visit every location where macOS stores app-related data. The quickest way to find leftover files is to search by the vendor's bundle identifier (usually com.vendor.appname) or just the app's name.

From Terminal you can locate everything in one shot:

# Replace appname with the real app name (case-insensitive, partial OK)
find ~/Library -iname "*appname*" 2>/dev/null

This command walks every subdirectory of your user Library and prints each matching file. Review the output carefully — you'll typically see hits in Application Support, Caches, Preferences, Logs, Saved Application State, and sometimes Containers or Group Containers.

Pro tip: Before you delete anything, run find with the -ls flag to show file sizes: find ~/Library -iname "*appname*" -ls. This gives you a sense of how much space you'll reclaim and helps spot unusually large folders that might be worth backing up first.

4. Cleaning Library Folders

Here is the complete checklist of locations to inspect for any app you uninstall. Open each path with Go to Folder (⌘ + ⇧ + G) and look for folders or files containing the app's name or vendor identifier.

  • ~/Library/Application Support/ — main data folder, often the biggest
  • ~/Library/Caches/ — cached files, safe to delete
  • ~/Library/Preferences/ — settings plists (com.vendor.appname.plist)
  • ~/Library/Logs/ — crash logs and runtime logs
  • ~/Library/Saved Application State/ — window/session restore data
  • ~/Library/Containers/ — sandboxed app containers
  • ~/Library/Group Containers/ — shared data for app suites (Office, Adobe)
  • ~/Library/Cookies/ — occasional cookie plists
  • /Library/Application Support/ — system-wide support (needs admin)
  • /Library/Preferences/ — system-wide preferences

Note the distinction between ~/Library (your user) and /Library (system-wide). Apps that install helper tools or run background services often leave files in both. The system paths require administrator confirmation to modify.

To list every item an app put in your user Library, you can use:

mdfind -onlyin ~/Library "appname" | sort -u

The mdfind command uses Spotlight's index, so it is faster than find on large Libraries and often catches files whose names use different cases or hyphenation.

5. Managing Launch Agents and Daemons

Launch agents and launch daemons are the single most common thing people forget to clean up. They are tiny XML .plist files that tell macOS to start a program at login or at boot — and they survive dragging an app to the Trash.

There are three directories to inspect:

ls ~/Library/LaunchAgents/
ls /Library/LaunchAgents/
ls /Library/LaunchDaemons/

Each file name follows the pattern com.vendor.something.plist. If you spot one that matches an app you just removed, it's an orphan. Before deleting it, unload it so macOS stops the associated process immediately:

launchctl unload ~/Library/LaunchAgents/com.vendor.something.plist
rm ~/Library/LaunchAgents/com.vendor.something.plist

For system-wide agents and daemons, prefix the commands with sudo:

sudo launchctl unload /Library/LaunchDaemons/com.vendor.something.plist
sudo rm /Library/LaunchDaemons/com.vendor.something.plist
Important: Never delete launch agents whose vendor you don't recognize without checking first. System processes like com.apple.* are off-limits — removing them can break macOS. If in doubt, open the plist in a text editor and look at the ProgramArguments key; it will show the full path of the executable so you can confirm what the agent runs.

6. Using Built-in macOS Uninstaller

Many professional applications ship with their own uninstaller because the developer knows the app writes to dozens of places and only they can clean them properly. Always check for one before you start a manual purge.

Common patterns to look for:

  • Open the app's folder in Applications and look for Uninstall Appname.app or a Uninstaller subfolder.
  • Mount the app's original .dmg file if you still have it — many vendors include an uninstall utility there.
  • Check the developer's website for an "Uninstaller" download, especially for Adobe, Microsoft, Zoom, Dropbox, antivirus suites, and VPN clients.
  • Some apps hide the uninstall option inside their own menu bar: Appname → Uninstall or Help → Uninstall.

Run the vendor's uninstaller first, then do a Library sweep anyway. Even official uninstallers often forget to clear preferences or launch agents.

7. Verifying Complete Removal

Once you've deleted the app and its visible companions, verify no fragments remain. Run these three checks:

# 1. Search the whole system (user Library + system Library)
sudo find / -iname "*appname*" -not -path "*/\.*" 2>/dev/null | grep -v "/Volumes/"

# 2. Make sure no launch agents remain
launchctl list | grep -i appname

# 3. Confirm no background process is still running
ps aux | grep -i appname | grep -v grep

An empty output on all three checks means the uninstall is complete. If anything turns up, remove it with rm (for files) or launchctl unload (for agents), then re-run the checks.

Finally, empty the Trash to actually reclaim the disk space: right-click the Trash icon and choose Empty Trash, or press ⌘ + ⇧ + ⌫ from the Finder.

Pro tip: Make a habit of running the three verification commands any time you uninstall something significant. Over time you'll build intuition for which vendors leave the most behind, and you'll catch orphan launch agents weeks or months after the fact — the moment they finally show up in a search.

Uninstalling apps on macOS the right way isn't hard once you know the layout. Launchpad handles App Store apps cleanly, developer uninstallers cover the complicated suites, and a Terminal sweep plus a quick launch-agent audit catches everything else. Add it to your routine and your Mac stays genuinely clean — not just visibly tidy.