$ sifty checkup
One read-only scan across everything, without touching a single file.
sift the junk from the keep
An open source cleanup tool for Windows that lives in your terminal. It finds junk files, duplicates, leftover apps and dev clutter, previews everything before touching it, and only ever deletes to the Recycle Bin, so a clean can always be undone.
pipx install sifty
Works on Windows 10 and 11 with Python 3.11+, or grab the standalone exe. MIT licensed.
Junk scan ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┓ ┃ Category ┃ Key ┃ Files ┃ Size ┃ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━┩ │ User temp files │ user-temp │ 12,136 │ 537.0 MB │ │ Windows temp files (admin) │ windows-temp │ 0 │ 0 B │ │ Thumbnail & icon cache │ thumbnail-cache │ 30 │ 13.1 MB │ │ Browser caches │ browser-cache │ 15,366 │ 1.2 GB │ │ Windows Update cache (admin) │ windows-update-cache │ 0 │ 0 B │ │ WinGet download cache │ winget-cache │ 72 │ 189.2 KB │ │ Archived event logs (admin) │ event-log-archives │ 0 │ 0 B │ │ Defender detection history (admin) │ defender-history │ 0 │ 0 B │ │ OneDrive sync logs │ onedrive-logs │ 199 │ 83.1 MB │ │ App crash dumps │ crash-dumps │ 0 │ 0 B │ │ System crash reports (admin) │ system-crash-reports │ 0 │ 0 B │ ├────────────────────────────────────┼──────────────────────┼────────┼──────────┤ │ Total reclaimable │ │ │ 1.8 GB │ └────────────────────────────────────┴──────────────────────┴────────┴──────────┘ Run sifty junk clean to preview removal (dry-run by default).
Junk scan ┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓ ┃ Category ┃ Size ┃ ┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩ │ User temp files │ 537.0 MB │ │ Thumbnail cache │ 13.1 MB │ │ Browser caches │ 1.2 GB │ │ WinGet cache │ 189.2 KB │ │ OneDrive logs │ 83.1 MB │ ├───────────────────┼──────────┤ │ Total reclaimable │ 1.8 GB │ └───────────────────┴──────────┘ Run sifty junk clean to preview removal.
Found 27,803 items totalling 1.8 GB. Move 27,803 items (1.8 GB) to the Recycle Bin? [y/N]: y ✓ Sent 27,803 items (1.8 GB) to the Recycle Bin. ! 41 item(s) skipped (in use or protected).
Restore 27762 item(s) from the junk clean at 2026-06-12 14:21:45? [y/N]: y
✓ Restored 27762 item(s).
One read-only scan across everything, without touching a single file.
Clears temp files, browser caches, crash dumps and more than ten other categories.
Shows how full each volume is, lists your biggest files and runs an NTFS-aware duplicate scan.
Uninstalls through winget, then sweeps up whatever the uninstaller forgot.
Reclaims space from node_modules, __pycache__, orphaned worktrees and WSL2 disks.
Trims boot bloat and safe-to-disable services, and everything can be turned back on.
Real output, straight from the terminal.
Volumes ┏━━━━━━━┳━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┓ ┃ Drive ┃ FS ┃ Used ┃ Free ┃ Total ┃ Used % ┃ ┡━━━━━━━╇━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━┩ │ C:\ │ NTFS │ 177.4 GB │ 44.7 GB │ 222.0 GB │ 80% │ │ E:\ │ NTFS │ 847.6 GB │ 83.9 GB │ 931.5 GB │ 91% │ └───────┴──────┴──────────┴─────────┴──────────┴────────┘
Volumes ┏━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┓ ┃ Drive ┃ Free ┃ Total ┃ Used % ┃ ┡━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━┩ │ C:\ │ 44.7 GB │ 222.0 GB │ 80% │ │ E:\ │ 83.9 GB │ 931.5 GB │ 91% │ └───────┴─────────┴──────────┴────────┘
Found 316 duplicate groups. Reclaimable by de-duplicating: 6.4 GB
Found 27,803 items totalling 1.8 GB. Move 27,803 items (1.8 GB) to the Recycle Bin? [y/N]: y ✓ Sent 27,803 items (1.8 GB) to the Recycle Bin.
2026-06-12T13:21:45+00:00 TRASH C:\Users\amine\AppData\Local\Temp\wct8A3.tmp 2026-06-12T13:21:45+00:00 TRASH C:\Users\amine\AppData\Local\...\thumbcache_96.db
Restore 27762 item(s) from the junk clean at 2026-06-12 14:21:45? [y/N]: y
✓ Restored 27762 item(s).
Protected paths like C:\Windows are refused outright. There is no --force flag.
1940603039
{
"drive": "C:\\",
"percent": 79.9
}
{
"drive": "E:\\",
"percent": 91
}
Read-only commands emit JSON when piped, or with --json.
Most cleaners ask for your trust. Sifty is built so it doesn't need much.
Nothing changes without an explicit --apply, then a confirm.
Permanent delete is not a code path, and sifty undo brings things back.
Windows, Program Files and your profile root are refused outright. No override exists.
Every applied deletion is logged with a timestamp, so you always have receipts.
Every removal funnels through this one function, and CI fails if a stray
os.remove sneaks in anywhere else. Don't take our word for it, it's nine lines.
def trash(path, allow_subtrees=(), extra_protected=(), *, dry_run=True): """Send path to the Recycle Bin after a safety check.""" assert_safe(path, allow_subtrees, extra_protected) if dry_run: return True send_to_trash(path) # Recycle Bin, never permanent audit(f"TRASH {path}") return True
The same engine, full screen.
Entirely optional, and deliberately limited in what it can see and do.
Talks to Ollama over local HTTP, so nothing ever leaves your computer.
It gets names, sizes and paths, never the contents of your files.
It can suggest a cleanup, but you decide whether to run or skip it.
pipx install siftyIsolated, and easy to update later with sifty selfupdate.
A single file from the latest release, no Python needed.
scoop bucket add sifty https://github.com/Vortrix5/scoop-bucketscoop install siftyThe copy button grabs both lines.
winget install Vortrix5.SiftyOn first run, try sifty doctor and then sifty checkup. Both are read-only.
Junk scan ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┓ ┃ Category ┃ Key ┃ Files ┃ Size ┃ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━┩ │ User temp files │ user-temp │ 12,136 │ 537.0 MB │ │ Windows temp files (admin) │ windows-temp │ 0 │ 0 B │ │ Thumbnail & icon cache │ thumbnail-cache │ 30 │ 13.1 MB │ │ Browser caches │ browser-cache │ 15,366 │ 1.2 GB │ │ Windows Update cache (admin) │ windows-update-cache │ 0 │ 0 B │ │ WinGet download cache │ winget-cache │ 72 │ 189.2 KB │ │ Archived event logs (admin) │ event-log-archives │ 0 │ 0 B │ │ Defender detection history (admin) │ defender-history │ 0 │ 0 B │ │ OneDrive sync logs │ onedrive-logs │ 199 │ 83.1 MB │ │ App crash dumps │ crash-dumps │ 0 │ 0 B │ │ System crash reports (admin) │ system-crash-reports │ 0 │ 0 B │ ├────────────────────────────────────┼──────────────────────┼────────┼──────────┤ │ Total reclaimable │ │ │ 1.8 GB │ └────────────────────────────────────┴──────────────────────┴────────┴──────────┘ Run sifty junk clean to preview removal (dry-run by default).
Junk scan ┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓ ┃ Category ┃ Size ┃ ┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩ │ User temp files │ 537.0 MB │ │ Thumbnail cache │ 13.1 MB │ │ Browser caches │ 1.2 GB │ │ WinGet cache │ 189.2 KB │ │ OneDrive logs │ 83.1 MB │ ├───────────────────┼──────────┤ │ Total reclaimable │ 1.8 GB │ └───────────────────┴──────────┘ Run sifty junk clean to preview removal.
Found 27,803 items totalling 1.8 GB.
✓ Sent 27,803 items (1.8 GB) to the Recycle Bin. ! 41 item(s) skipped (in use or protected).
✓ Restored 27762 item(s).