93 cleaner rules Β· 32 categories Β· 40 languages Β· 0 telemetry Β· 100% local
β¬οΈ Download for Windows Β Β·Β Quick start Β Β·Β What sets it apart Β Β·Β Report a bug
Windows' own "Apps & features" runs an uninstaller and stops there. What the uninstaller forgets β a folder in
AppData, aRunkey, a scheduled task β stays on your disk forever, and nothing in Windows will ever mention it again. Prune runs the uninstaller, then goes looking for the rest.
It replaces four tools with one: an uninstaller, a disk visualiser, a cache cleaner and a drive-health monitor. Every number it shows is measured on your machine rather than estimated, and when it cannot measure something it says so instead of printing a confident zero.
| Windows "Apps & features" | Typical cleaner | Prune | |
|---|---|---|---|
| Runs the program's own uninstaller | β | β | β |
| Finds leftover files, registry keys and tasks | β | β scanned per program | |
| Removes leftovers recoverably | β | β deletes outright | β quarantined first |
| Batch uninstall without a wizard per program | β | β | β silent where safe |
| Shows what a cleaner rule would actually free | β | β measured on disk | |
| Hides cleaners for software you don't have | β | β | β on by default |
| Real SMART drive health | β | β from the drive | |
| Sends data anywhere | β | often | never (update check is opt-in) |
A bad match is recoverable by design: by default nothing is deleted outright β it is moved to Quarantine first.
|
Every installed program from all three registry Uninstall hives, plus the Store apps and browser extensions no uninstall list mentions. Real icons, measured sizes, and a warning before removing something that is running. Batches run without a wizard per program β the vendor's own silent command where one is published, and the right flag for MSI, NSIS, Squirrel and closed Chromium browsers otherwise β and a game is removed before the launcher it uninstalls through. Optional: a restore point or a full registry backup before each uninstall, and a choice of where leftover files go. A leftover scan in three depths β Safe, Moderate and Advanced β with results tiered certain / likely / possible and never offering Windows, Microsoft components or another program's folder. Forced uninstall for software that isn't listed, Hunter (drag a crosshair onto a window to identify its program), Install with monitoring so a later uninstall is exact, a Backups tab to restore registry and task backups, and a full History. |
129 rules across 44 categories, scanned one at a time so the tree fills
in as it goes. A rule that cannot be measured says whether the software is
missing or the read needs admin β never Cleaners for software that isn't installed are hidden, and rules that lose something (history, cookies, sessions) are marked and never ticked by default. Includes Windows Defender and WinRAR cleaners. Two removal modes, on purpose. By default Clean moves files into Quarantine so you can put them back, which frees no space until you empty it; Prune says Moved, not Freed, when that is what happened. Settings βΊ Cleanup can switch Deep Clean to Delete now, which removes files outright and frees the space at once, plus deep-scan patterns for backup, Office temp, Vim swap, .DS_Store and Thumbs.db files. A Free disk space wipe is there too, off by default and asking every time: it frees nothing, it does nothing useful on an SSD with TRIM, and it adds write wear. Also: an opt-in overwrite before deleting (1 or 3 passes), a Shred
files⦠tool, a free-space wipe on any local drive, locked files deleted at
the next restart, a per-rule list of the biggest files in Preview, your own
Custom locations, a cleaner rule import for lists written in a common
external format, and a |
|
An interactive treemap of what is actually using the disk, from a full-drive scan that reads the NTFS MFT directly. Largest files, a folder table and a breakdown by type beside the map. Scans show real progress and time left: files scanned and bytes processed
as they happen, and β for a whole-drive walk of Scan any local drive (several NTFS drives in one administrator prompt, or no prompt at all when Prune runs as administrator), see size and size on disk with hard links counted once, modified dates, search by text, wildcard or regex, export CSV and PNG, and save scans to compare later. |
The dashboard's health score is about your drive and nothing else: real SMART data β wear, power-on hours, media and uncorrected errors β read from the drive itself. A drive that reports errors lands in the red whatever its wear life. Free space and broken apps have their own cards; they don't dilute the score. |
|
Everything Windows launches at sign-in β Run keys, Startup folders, scheduled tasks, automatic services and Store startup tasks. The switch writes the same record Task Manager does. |
Files are moved and registry keys exported before removal, browsable and restorable β nothing is gone for good until you say so twice. Leftover files can go to the Recycle Bin or be deleted outright instead, if you choose that in Settings; registry keys are backed up either way. |
|
Duplicate files under a folder you choose, found by size, then a 64 KB sample, then a full hash β so almost nothing is read completely. |
A button in the side bar and in Settings β About opens a prefilled GitHub issue. You see exactly what will be included β your words plus Prune's version, Windows' version and the architecture, nothing else β before anything leaves the app. |
No telemetry, no crash reporting, no analytics, and no update check unless
you turn one on. The only HTTP in the app is the window talking to its own
backend on 127.0.0.1, behind a guard that checks the Host header before a
request body is ever parsed β because loopback is not the protection it
sounds like, and every web page you have open can reach it too.
The one exception is opt-in: Settings β Check for updates, off by
default. Turned on, Prune asks api.github.com once a day whether a newer
release exists, sending a User-Agent and nothing else. If there is one, a
button appears at the bottom of the side bar, and only clicking it downloads
the new installer from the GitHub release and installs it.
That is checkable rather than a promise: the only code that opens a
connection to a host that is not loopback is
backend/src/services/updateCheck.js and the updater in
electron/updater.cjs, and neither does anything while the update check is
off. SECURITY.md says exactly what the updater trusts.
- The sidebar is icons only until you point at it, then widens over the page.
- Disk Map, reimagined β any drive, size on disk, modified dates, search, export, saved scans and compare.
- Deep Clean, taken further β overwrite and shred, any-drive free-space wipe, a command line, custom locations and a cleaner rule import, plus 16 new rules.
- Uninstaller, done properly β Safe / Moderate / Advanced scans, confidence tiers, Forced uninstall, Hunter, install monitoring, Backups and History.
- Fixes β Quick Access pins are no longer deleted, Stop keeps your ticks, the window controls stay aligned at any zoom, and Prune no longer sometimes opens in English.
- Two Deep Clean removal modes β an opt-in Delete now mode that frees space straight away (Quarantine stays the default), Deep scan rules for backup, Office temp, Vim swap,
.DS_StoreandThumbs.dbfiles, and an opt-in free-space wipe. - A Dashboard that answers one question β where is my space going? One bar, your five largest programs, and drive health on demand.
- Safer by default β Clean waits for a Preview, leftovers start unticked, and the right-click menu no longer opens on Uninstall.
- All 39 translations reviewed for consistent terms.
Full notes: CHANGELOG.md.
- Remembers where you left it β window size and position, the Settings tab, Deep Clean's ticks and collapsed groups.
- Batch uninstall that actually uninstalls β a paths-with-spaces quoting bug made some uninstallers never open; fixed, with a single "ready to scan" gate.
- Disk Map with real progress β percent, time left and a Stop button.
- Drive health only on the dashboard; the CPU/memory gauges are gone. Prune is a storage tool.
- Deep Clean hides software you don't have, and gains Windows Defender and WinRAR cleaners.
- Every screen reviewed against Apple's Human Interface Guidelines β legible text, keyboard and screen-reader access, high-contrast support, zoom, System/Light/Dark theme.
- Report a bug button with a prefilled GitHub issue.
Full notes: CHANGELOG.md.
- Download
Prune-Setup-<version>.exefrom the latest release. - Run it. The installer opens in Windows' own language (40 are included) and, on a fresh install, asks whether Prune should check for updates β unticked unless you tick it.
- Open Prune and pick a program under Applications.
The -win.zip beside the installer is the same application without an
installer: unzip it anywhere and run Prune.exe. Requires Windows 10 or 11.
From 2.5.0 on, that is the last installer you run by hand: with the update check on, one click installs a new version and reopens Prune.
π‘οΈ Windows will warn you β here is why, and how to verify the download
Prune is not code-signed, so the first time you run the installer Windows shows:
Windows protected your PC β Microsoft Defender SmartScreen prevented an unrecognised app from starting.
Click More info, then Run anyway.
This warning is about the absence of a certificate, not about anything found in the file. SmartScreen flags every unsigned installer it has not seen before, and unlike a reputation warning it does not go away as more people download it. A code-signing certificate is a paid, identity-verified purchase, and Prune does not have one.
You do not have to take that on trust. Every release lists the SHA-256 of both files:
Get-FileHash .\Prune-Setup-*.exe -Algorithm SHA256Compare the result with SHA256SUMS.txt on the release page.
Get-FileHash prints the digest in uppercase and the file lists it in
lowercase β same hash, compare them case-insensitively.
That confirms the file reached you byte-for-byte as it was built. It does not prove who built it. For that, releases are built by GitHub Actions and each file carries an attestation: a signed record of the repository, the commit and the workflow that produced it. With the GitHub CLI:
gh attestation verify .\Prune-Setup-<version>.exe --repo jimman0I/pruneA file that passes was built by this repository's own workflow from its
public source; anything else fails. It is still not a code signature β
Windows does not read it, so SmartScreen warns all the same β but it answers
who built the file, which a checksum cannot. Releases before 2.4.1 were built
locally and have no attestation; releases before 2.5.0 named the installer
Prune.Setup.<version>.exe and cannot update themselves.
If you would rather not run an unsigned binary, build it yourself from source: see Build it yourself. The result is the same application.
| Layer | What it is |
|---|---|
| Shell | Electron β quarantine data and settings live under app.getPath('userData'), never inside the install directory, so an upgrade never touches them |
| Backend | Express (ESM), in-process inside Electron when packaged. Zero native dependencies: the registry reader and Recycle Bin sizing shell out to reg.exe and powershell.exe, which every Windows machine already has |
| Frontend | React + Vite + Tailwind β the Aurora Deck design system (obsidian ground, cyan accent, glass panels), dark and light, every text tier measured against the surfaces it sits on |
| Tests | 3,000+ tests across backend, frontend and electron, run by GitHub Actions on every push and pull request |
| Releases | Built by GitHub Actions with build attestations β see RELEASING.md |
Requires Node.js 18+ (development only β the packaged app bundles its own runtime via Electron).
# Backend (Express, port 3101)
cd backend && npm install && npm run dev
# Frontend (Vite, port 5174) β in a second terminal
cd frontend && npm install && npm run dev
# Electron shell β in a third terminal, once both of the above are running
cd electron && npm install && npm startRun the tests, one suite at a time (see CONTRIBUTING.md for why):
cd backend && npm test
cd frontend && npm test
cd electron && npm testBuild an installer:
cd electron && npm run distProduces an NSIS installer (.exe), a portable .zip and a generated
SHA256SUMS.txt in electron/dist/. See
electron/README.md for the build pipeline and
RELEASING.md for the checklist around it.
What Prune deliberately does not do, or cannot
- Windows only.
- Removing a Store app cannot be undone from Quarantine, unlike everything
else Prune removes:
Remove-AppxPackagetakes the app and its data, and the way back is reinstalling from the Store. The dialog says so before you confirm. - Store apps Windows marks as part of the system β the Security interface, the app installer β cannot be removed, and their rows open Windows' own page instead.
- About one program in ten still uninstalls with its own wizard: anything whose installer Prune cannot positively identify runs exactly as registered, because a wrong silent flag is worse than a visible dialog.
- A Chromium browser that is open when its uninstall runs shows its own dialog rather than being closed for you. Microsoft Edge and the WebView2 runtime always show Microsoft's dialog: other programs, Windows Search among them, depend on WebView2.
- Leftover scanning is heuristic (name and publisher matching), not a full before/after filesystem snapshot.
- Delete permanently, if you choose it for leftover files in Settings, means exactly that: they cannot be restored. It is off by default, the review says so before you confirm, and a guard refuses Windows, a drive root, Program Files itself, your profile's own folders and Prune's quarantine whatever the scan found.
- A full registry backup before uninstalling covers
HKLM\SOFTWAREandHKCU\Softwareβ about 140 MB here β and only the newest three are kept. - The installer is unsigned, so SmartScreen warns on first run and keeps warning.
| Doc | What's in it |
|---|---|
| CHANGELOG.md | Release notes, newest first |
| CONTRIBUTING.md | How to run it, how code is written here, and how to work on the parts that delete things without deleting your own |
| SECURITY.md | Where to report a vulnerability privately, and what is in scope |
| RELEASING.md | The release checklist |
| electron/README.md | How the build pipeline works |
- π Found a bug? Use Report a bug inside Prune, or open an issue.
- π‘ Want a feature or a new cleaner rule? Open an issue β rules live in
backend/src/data/cleaners.json. - π§ Want to send a fix? Read CONTRIBUTING.md first.
- π Security issue? Follow SECURITY.md β please don't post it publicly.
MIT β see LICENSE. Use it, fork it, sell it; keep the copyright notice. It comes with no warranty, which is worth reading rather than skipping for a program whose job is deleting things.




