Sweepfor Mac

Apps & uninstalling

How to Completely Delete Apps on Mac (Including Their Hidden Files)

A complete app delete on Mac means more than emptying the trash. Here's how to remove every hidden file, cache, and helper an app leaves behind.

8 min read

There’s a difference between deleting an app and getting rid of it. Deleting is what happens when you trash the .app and empty the bin. Getting rid of it means the support files are gone too — the prefs, the caches, the launch helpers, the random gigabyte of data buried in ~/Library/Containers.

Most people stop at the first one and never realize the second one exists.

Where the hidden files actually live

macOS doesn’t hide app data to be sneaky — ~/Library is just hidden by default in Finder so users don’t accidentally break their settings. To see it, open Finder and hit Cmd+Shift+G, then type ~/Library and press return.

Once you’re in there, the folders that matter are:

  • Application Support/ — saved data, plugins, project files for some apps
  • Caches/ — temp files, can balloon to several GB per app
  • Preferences/.plist settings files
  • Containers/ — sandboxed app data (App Store apps live here)
  • Group Containers/ — data shared between an app and its extensions
  • Logs/ — diagnostic logs
  • Saved Application State/ — window positions, last-open documents
  • WebKit/, HTTPStorages/, Cookies/ — for apps that use embedded browsers
  • LaunchAgents/.plist files that auto-start helpers at login

There’s also a system-level /Library/ (no tilde) which contains everything an installer wrote with admin permissions. Adobe, Microsoft, anti-cheat tools, and most pro apps leave files there too.

The actual delete process

Here’s the workflow that gets everything:

  1. Quit the app and any background helpers (check Activity Monitor).
  2. Move the app from /Applications to the Trash.
  3. Find the bundle ID (e.g. com.figma.Desktop). Easiest way: open Terminal and run osascript -e 'id of app "AppName"'.
  4. In Finder, search each library folder above for both the app’s display name and its bundle ID.
  5. Drag matching files and folders to the Trash.
  6. Check ~/Library/LaunchAgents/, /Library/LaunchAgents/, and /Library/LaunchDaemons/ for .plist files belonging to the app.
  7. Empty Trash.

The frustrating part is step 4. App folders aren’t always named what you’d expect. A music app called “Bandwidth” might leave files under com.someparentcompany.bandwidth.app2024 because the developer renamed the company. You hunt by partial match.

What gets missed most often

Even people who know about ~/Library/Application Support tend to miss a few things:

  • Group Containers — easy to skip because the names are unhelpful, like group.com.adobe.AdobeMobileApps
  • Saved Application State — small files but they pile up
  • WebKit storage — Spotify, Discord, and any Electron app store cookies and IndexedDB here
  • HTTPStorages — same idea
  • Crash reporter logs~/Library/Logs/DiagnosticReports/

Add up the missed pieces across a few dozen apps you’ve removed over the years and you’re looking at multiple gigabytes of orphaned data.

Don’t dig through ~/Library yourselfSweep hunts down every leftover file an uninstaller misses. Free download for Mac →

A worked example: deleting Slack properly

Slack is a useful test because it leaves substantial debris.

  1. Quit Slack from the menu bar (not just close the window).
  2. Drag Slack.app to Trash.
  3. Bundle ID: com.tinyspeck.slackmacgap.
  4. Look in:
    • ~/Library/Application Support/Slack/ (this is the big one — message attachments and cache, often 1–4 GB)
    • ~/Library/Caches/com.tinyspeck.slackmacgap/
    • ~/Library/Preferences/com.tinyspeck.slackmacgap.plist
    • ~/Library/Containers/com.tinyspeck.slackmacgap.helper/ (if present)
    • ~/Library/Logs/Slack/
    • ~/Library/Saved Application State/com.tinyspeck.slackmacgap.savedState/
  5. No LaunchAgents in most installs.
  6. Empty Trash.

Took five minutes. Recovered around 3 GB on a typical Mac.

The launchd problem

LaunchAgents are the most consequential thing people leave behind. A LaunchAgent is a .plist file in ~/Library/LaunchAgents that tells macOS to start a process at login. When you trash the parent app, the LaunchAgent sticks around and tries to launch the missing executable on every login. It fails silently, writes to the system log, and contributes to a slower boot.

You can list active LaunchAgents from Terminal with:

launchctl list

The output is messy but you can spot stragglers — ones with non-zero exit codes or labels referencing apps you’ve already deleted. Removing them is just deleting the matching .plist file from ~/Library/LaunchAgents (no admin password needed for user agents, which is most of them).

Tip: System Settings → General → Login Items shows visible login items, but LaunchAgents are deeper. Many of them won't appear there. Check ~/Library/LaunchAgents directly if you suspect one is hanging around.

Why drag-to-trash leaves so much behind

Apple has historically wanted Mac to feel simple, so the user-facing model is “trash the app, you’re done.” That model works for the cleanest apps but most apps aren’t clean. Anything with a sync component, a menu-bar icon, an auto-updater, or a license check writes files to multiple library locations during install or first run.

The result: a Mac that’s been used for 5+ years almost always has 10–30 GB of orphaned app data. None of it is doing anything useful, none of it is being cleaned up by macOS, and none of it would have been left behind by a proper uninstall.

Doing it with Sweep

Sweep’s app uninstaller automates everything in the Slack example above. You select the app, it locates the matching files across ~/Library and the system library, presents a list with sizes, and lets you confirm before anything is deleted.

Two specific things worth noting about how Sweep handles it:

  • Preview before delete. Sweep never removes anything you haven’t approved. The list it shows is exactly what will go.
  • Bundle ID matching. It identifies leftover files even when the folder names are unhelpful — Group Containers especially.

For apps that are gone but left files behind, Sweep also has a leftover-files scan that finds orphans without needing the original app present. Useful if you’ve already trashed an app months ago and want to clean up the remains now.

Make this one clickSweep handles all of this automatically and lets you approve before anything is deleted. Free for macOS →

Reinstalling and starting clean

If you’re deleting an app to fix a bug — corrupted preferences, broken sync, weird visual glitches — getting rid of the prefs and caches is the whole point. Reinstalling the app on top of old preferences just brings the bug back.

Order of operations for a clean reinstall:

  1. Uninstall the app and all its support files (manually or via Sweep)
  2. Restart your Mac (clears anything still in memory)
  3. Download the latest version from the developer’s site or the App Store
  4. Install fresh

Skipping the support-file cleanup is the reason “I tried reinstalling and it didn’t help.”

What to keep, what to throw away

Not every leftover is a bad leftover. If you’re planning to reinstall an app — say, your video editor for an upcoming project — you might want to keep its license file, project library, or preset folder. Those usually live in ~/Library/Application Support/<app>/ or somewhere under ~/Documents.

Manual uninstall lets you cherry-pick. Sweep’s preview lets you cherry-pick. The thing that doesn’t let you cherry-pick is dragging the app to the trash and assuming everything’s gone.

Recap

To completely delete an app on Mac:

  • Quit the app and any helpers
  • Trash the .app from /Applications
  • Search ~/Library and /Library for files matching the app name and bundle ID
  • Remove matching folders in Application Support, Caches, Preferences, Containers, Group Containers, Logs, Saved Application State
  • Remove matching LaunchAgents and helper plists
  • Empty Trash

Or have Sweep do it in one click and just confirm the list.

← Back to all guides