Deep Remove app icon
macOS · Free

Deep Remove

Uninstalling should mean uninstalled.

Drag an app to the Trash and macOS keeps the rest — the caches, the preferences, the containers, the launch agents. Deep Remove finds all of it, shows you exactly what it found and how sure it is, and removes only what you approve.

Universal — Apple Silicon & Intel · Free · No account required

100+

Library locations scanned

33

File categories classified

6

Independent detection signals

0

Permanent deletes — Trash only

The problem

Your Mac remembers every app you ever deleted.

A single app can scatter files across dozens of folders you never open. Delete the app and those files become orphans — invisible, unowned, and permanent. Years of them add up to gigabytes of storage and a settings database full of ghosts.

How it works

Six signals. One verdict.

Most uninstallers match on the app's name and hope for the best. Deep Remove cross-references six independent signals, then scores every result so you always know why a file was flagged.

Multi-signal detection

It knows the app, not just the name.

A folder called Support tells you nothing. A folder whose path contains the app's bundle identifier tells you everything. Deep Remove reads the real identity of an app out of its bundle and tracks it everywhere it went.

  • Bundle identifier — pulled from Info.plist and matched exactly
  • App & executable name — normalised, so “Final Cut Pro” finds FinalCutPro
  • Developer / organisation — catches shared vendor folders
  • Container URLs — resolved for sandboxed apps
  • Embedded helpers — XPC services, login items and privileged helpers found inside the bundle
  • Launch Services — registered URL schemes, UTIs and file handlers
Application Support ~/Library/Application Support/com.vendor.app Exact
Preferences ~/Library/Preferences/com.vendor.app.plist Exact
Launch Agent ~/Library/LaunchAgents/com.vendor.helper.plist Strong
Caches ~/Library/Caches/Vendor Partial

Every result carries the reason it was found.

Coverage

Everywhere macOS lets an app hide something.

Deep Remove searches more than a hundred locations across your personal Library and the system Library — the obvious ones and the ones almost nothing else checks.

Audio units and VST plug-ins. Spotlight importers. Quick Look generators. Dock tiles. Mail bundles. Screen savers. Preference panes. Input methods. Automator workflows. WebKit and HTTP storage. Crash reports. Saved application state. Receipts. And apps installed through Homebrew Cask, which live outside /Applications entirely.

Containers & Group ContainersSandboxed app data4 paths
Audio Plug-InsComponents · HAL · VST · VST3 · MIDI6 paths
Launch Agents & DaemonsBackground processes & login items3 paths
Privileged Helper Tools/Library/PrivilegedHelperToolsflagged
Quick Look · Spotlight · ServicesSystem extension points9 paths

A sample of the 100+ locations checked on every scan.

Confidence model

Certainty you can see, not a black box.

Every file gets a tier. Exact and strong matches are selected for you. Partial matches are shown but held back. Uncertain matches stay hidden until you explicitly ask for them — because a weak signal should never quietly delete something.

You control which tiers to include from Settings, and you can reveal any file in Finder before you commit to anything.

Exact match Bundle ID appears in the path — selected
Strong match Normalised app name in an expected folder — selected
Partial match Fuzzy or developer-name match — shown, not selected
Uncertain Weak signal — hidden until you opt in

Four tiers, colour-coded, always visible.

Safety

Built so a mistake stays a mistake you can undo.

Deep Remove is designed around the assumption that detection is never perfect. So nothing it does is final.

  • Trash-only. Every removal goes to the macOS Trash. There is no rm -rf anywhere in the app.
  • Protected paths. /System, /usr, /bin, /private, /Library/Apple and more are permanently off-limits.
  • Apple-owned files are skipped. com.apple.* identifiers are never treated as removable.
  • Minimum match length. Short or generic names can't trigger a match, so “Go” never matches half your disk.
  • Shared resources detected. Files that several apps depend on are flagged rather than removed.
  • Your documents are protected. User content inside containers is identified and held back.
  • Running-app check. Deep Remove warns you before uninstalling something that's still open.
/System/Library/…Blocked — protected system location
com.apple.finder.plistBlocked — Apple-owned identifier
~/Library/Application Support/AdobeHeld back — shared by other apps
Documents inside containerHeld back — looks like your content

What Deep Remove refuses to touch.

Everything else

Small details, all the way down.

Drag and drop

Drop any .app straight onto the window to scan it immediately — no searching, no menus.

Batch uninstall

Select several apps at once and clear them in a single pass, with a combined report at the end.

Instant search

A searchable sidebar lists every app on your Mac — discovered through Spotlight and the filesystem together.

Size, before you decide

Human-readable sizes for every file and a running total per category, so you can see what you're actually reclaiming.

Reveal in Finder

Not sure about a file? Open it in Finder and look for yourself before anything is removed.

Graceful permissions

Full Disk Access unlocks every location. Without it, Deep Remove scans what it can and tells you plainly what it couldn't.

Homebrew aware

Apps installed through Homebrew Cask and Cellar are discovered too, not just the ones in /Applications.

Native, not a wrapper

Written in Swift and SwiftUI on MVVM and clean architecture. System colours, SF Symbols, full dark mode, real macOS behaviour.

Live progress

Real-time progress while scanning and removing, with a per-app result showing what was removed, failed or skipped.

Always reversible

Deep Remove moves files to the Trash by design — never a blind permanent delete from the app. If a scan gets something wrong, the fix is one drag out of the Trash. That single rule is what makes deep scanning safe to do in the first place.

Specifications

The details.

Platform
macOS — universal build for Apple Silicon (arm64) and Intel (x86_64)
Built with
Swift and SwiftUI, MVVM + clean architecture
Detection signals
Bundle identifier · app & executable name · developer name · container URLs · embedded helpers · Launch Services database
Search coverage
100+ user and system Library locations, plus Homebrew Cask and Cellar
File categories
33 — including Application Support, Preferences, Caches, Containers, Group Containers, Logs, Crash Reports, Launch Agents, Launch Daemons, Saved State, Cookies, HTTP Storage, WebKit, Frameworks, Plug-Ins, Preference Panes, Quick Look, Screen Savers, Services, Privileged Helpers, Receipts, Login Items, Audio Plug-Ins, Spotlight Importers, Dock Tiles and URL Schemes
Confidence tiers
Exact · Strong · Partial · Uncertain
Deletion method
macOS Trash only. No permanent delete, no rm, no shell-out
Privileges
None. No root, no sudo, no admin password
Permissions
Full Disk Access recommended for complete coverage; the app degrades gracefully without it
Price
Free

Questions

Good to know.

Why isn't dragging an app to the Trash enough?
The Trash removes the .app bundle and nothing else. Everything the app wrote outside itself stays exactly where it was: preference plists, caches, Application Support folders, sandbox containers, saved window state, login items, launch agents and crash reports. Those files outlive the app and keep accumulating for as long as you own the Mac.
Can Deep Remove delete something important by accident?
Nothing is ever deleted permanently — every removal is moved to the macOS Trash, so it can be restored. On top of that, Deep Remove refuses to touch protected system locations, Apple-owned bundle identifiers, shared runtimes and generic names, and it requires a match of at least four characters before a file is even considered a candidate.
Does it need my administrator password?
No. Deep Remove performs no root or sudo operations at all — it works entirely through the user-level Trash API. System-level items such as launch daemons and privileged helper tools are shown to you, but they require manual action rather than being silently escalated behind your back.
Why does it ask for Full Disk Access?
Several Library locations are protected by macOS privacy controls. With Full Disk Access, Deep Remove can scan every location it knows about. Without it the app still works — it scans everything it can reach and tells you clearly that some leftovers may not have been detected.
What are the confidence levels for?
They tell you why a file was flagged. Exact means the app's bundle identifier appears in the path. Strong means a normalised name match in a folder where that app's data belongs. Partial is fuzzy. Uncertain is a weak signal — hidden by default and never selected for you. You choose which tiers to include, and nothing is removed without your confirmation.
Is it free, and does it run on Apple Silicon?
Yes to both. Deep Remove is free, requires no account, and ships as a universal build that runs natively on both Apple Silicon and Intel Macs.

Reclaim the space. Keep the Mac.

Free, universal, and reversible by design.