A fast, minimal disk analyzer with a modern dark UI
Scan your drives, find the biggest files, detect junk — all in a clean native interface.
DiskLens is a lightweight desktop app that helps you understand what's eating your disk space. It scans any folder in seconds, ranks files by size, flags junk automatically, and lets you delete what you don't need — all without leaving the app.
No Electron. No browser. Pure Python.
![]() |
![]() |
| Files tab — sortable table with junk detection | Chart tab — top 12 files visualized by size |
- Multi-threaded scan — 8 parallel workers process thousands of files in seconds
- Junk detection — automatically flags temp, cache, log, and throwaway files
- Visual chart — horizontal bar chart of the top 12 largest files, resizes with the window
- File type filters — quickly narrow results by Video, Audio, Image, Archive, Document, or Code
- Safe delete — sends files to the system Trash via
send2trash(fully recoverable) - Live progress — single-line log shows what's being scanned without cluttering the UI
- Export — save a plain-text report of any filtered view to disk
- Docs tab — built-in documentation panel reads from
docs.txtat startup - Cross-platform — works on Windows, macOS, and Linux
git clone https://github.com/xoxxel/disklens.git
cd disklens
pip install -r requirements.txt
python app.pyhumanize # human-readable file sizes (required)
send2trash # safe delete to Trash (optional — falls back to permanent delete)
pip install -r requirements.txt| Step | Action |
|---|---|
| 1 | Type a folder path in the PATH bar or click Browse… |
| 2 | Press SCAN — progress shows in the log line below the button |
| 3 | Browse the Files tab — click ✓ column to select files |
| 4 | Use Select All Junk to mark detected junk in one click |
| 5 | Press Delete Selected to move files to Trash |
| 6 | Switch to Chart for a visual size breakdown |
| 7 | Click Export Report to save results as a .txt file |
A file is flagged JUNK when its name contains any of:
cache temp tmp bak log old dmp swp thumbs crash
or when its extension is one of:
.tmp .log .bak .old .dmp .swp .chk .crdownload .ds_store
disklens/
├── app.py # Application — all UI and logic
├── docs.txt # Documentation shown in the Docs tab
├── requirements.txt # Python dependencies
├── icon.png # Window icon
├── icon.svg # Vector icon source
├── hero.png # Hero image (README)
├── file_lens.png # Screenshot — Files tab
├── chart.png # Screenshot — Chart tab
├── LICENSE # MIT License
└── README.md # This file
pip install pyinstaller
pyinstaller --onefile --windowed --icon=icon.png app.py
# output → dist/app.exe (Windows) | dist/app (macOS / Linux)MIT — free to use, modify, and distribute.

