AppSweep
Snapshot before you install, snapshot after you uninstall. The difference is the leftovers.
Free right now — no account, no card
Preview
1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.
Free while we’re in preview
Get AppSweep
Snapshot before you install, snapshot after you uninstall. The difference is the leftovers.
The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.
One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.
Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.
- One file — no installer
- Runs on your machine, offline
- Source code published below
Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, AppSweep is included in every plan along with the rest of the range.
No pattern list, on purpose
Most leftover cleaners ship a rulebook: somebody wrote down that AcmeApp leaves a folder in AppData\Roaming\Acme, so the cleaner looks there. That only ever finds leftovers somebody already knew about.
AppSweep has no rulebook. You run appsweep snapshot "C:\Program Files" "%APPDATA%" --out before.json, install the app, use it, uninstall it later, then snapshot the same roots again. diff sorts every file into ADDED, REMOVED, MODIFIED or UNCHANGED. The ADDED list is what the uninstaller orphaned, including the things nobody anticipated.
The catch, stated plainly
You have to have taken the before snapshot. Point AppSweep at a machine that’s already dirty and it has nothing to compare against. This is a tool you run around an installation, deliberately.
What sweep will and won’t move
Only ADDED files. A file present in both snapshots is yours, even if the installer edited it. Before moving anything it re-checks the file against the after snapshot and skips it if size or mtime drifted. Quarantine mirrors the full directory structure and never overwrites. Dry run unless you pass --apply.
Files only. Registry keys and services aren’t diffed yet.
Reading on the job itself
- How to find what an uninstaller left behind Take a record of the filesystem before you install, take another after you uninstall, and compare the two. ...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working CLI prototype of the leftover-detection engine: snapshot the filesystem before an install and again after the uninstall, then diff to find exactly what the uninstaller orphaned — including leftovers no pattern-based cleaner has a rule for. Catches same-size content changes via mtime, and quarantines only the genuinely added files, leaving everything present in both snapshots untouched. Registry and service diffing are on the roadmap.
Recorded session
Naming status
Working name only — brand verdict **AVOID** (Very High). Collision: AppSweep. Rename completely.
What it draws on
Existing paid software whose best ideas shaped this program: Revo Uninstaller Pro, CCleaner Professional, IObit Software Updater Pro, Driver Easy Pro.
Command line
There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.
appsweep: error: no command given
appsweep 1.0.0 — find what an uninstaller left behind, by snapshot diff.
A pattern-based cleaner can only find leftovers somebody wrote a pattern for.
appsweep compares a filesystem snapshot taken BEFORE you installed an app with one
taken AFTER you uninstalled it, so it finds every orphan — including the ones
nobody anticipated.
USAGE
appsweep <command> [flags]
COMMANDS
snapshot record path, size and mtime of every file under one or more roots
diff report ADDED / REMOVED / MODIFIED files between two snapshots
sweep quarantine the ADDED files (the leftovers). Dry run by default.
help show this help, or "help <command>"
version print the version
TYPICAL SESSION
appsweep snapshot ~/AppData /Program\ Files --out before.json
... install the app, use it, then uninstall it ...
appsweep snapshot ~/AppData /Program\ Files --out after.json
appsweep diff --before before.json --after after.json
appsweep sweep --before before.json --after after.json --quarantine ./quarantine
appsweep sweep --before before.json --after after.json --quarantine ./quarantine --apply
SAFETY
sweep is a DRY RUN unless you pass --apply.
sweep only ever touches ADDED files. Anything present in BOTH snapshots is
left alone. Nothing is ever deleted — files are MOVED into the quarantine
directory with their directory structure preserved, so you can move them back.
EXIT STATUS
0 success (including "differences found")
1 bad invocation, unreadable/corrupt snapshot, or a failed move
Flags may appear before or after positional arguments.
Recorded from the shipped binary, not written by hand.
Source
Every file the program is built from:
console.go · console_test.go · guided.go · main.go
SHA-256 checksums · build instructions & scope notes · full build plan