Organize a cluttered Downloads folder — preview, sort by type, and undo with one click.
Download DownLSort.exe from the Releases page and double-click it. If no release is available yet, build the EXE.
The build is unsigned, so SmartScreen may appear: choose More info → Run anyway.
git clone https://github.com/Cosmosynth/DownLSort.git
cd DownLSort
python -m venv .venvActivate the environment:
- Windows:
.\.venv\Scripts\Activate.ps1 - macOS / Linux:
source .venv/bin/activate
Then install and run:
pip install -e .
downlsortOn Linux, Tk may need to be installed separately (sudo apt install python3-tk, or the equivalent for your distro). If downlsort is not recognized, use python -m downlsort.
The app opens your Downloads folder by default. Click the Path: label to choose another folder, review the preview, then press Sort and confirm.
| Button | Action |
|---|---|
| Refresh | Re-scan the current folder |
| Sort | Move files into category subfolders |
| Unsort | Move the last sorted files back |
Path: label |
Choose a different folder |
Command line:
downlsort --path "D:\Temp" # organize another folder
python -m downlsort --path "D:\Temp" # same, without the installed script
downlsort --version- Live preview — nothing moves until you confirm the sort plan.
- Category filters — browse the grid without moving files.
- Safe by design — never overwrites; conflicts become
file (1).pdf. - Robust — locked files are skipped and reported while the rest continue.
- Exact undo — every sort is logged and can be reversed, newest first.
Good to know: only top-level files move; existing subfolders are untouched. Unsort history lives at %APPDATA%\DownLSort\history.json on Windows and ~/.config/downlsort/history.json elsewhere.
| Category | Examples |
|---|---|
| Applications | .exe .msi .bat .dmg .deb .apk |
| Documents | .pdf .docx .txt .md .xlsx .pptx .epub |
| Images | .jpg .png .gif .webp .svg .heic |
| Videos | .mp4 .mkv .avi .mov .webm |
| Audio | .mp3 .wav .flac .m4a .opus |
| Archives | .zip .rar .7z .tar.gz .iso |
| Other | everything else, including extensionless files |
Extend the mapping in src/downlsort/categories.py.
pip install -e ".[dev]"
python -m pytest # 18 testsBuild the Windows EXE (creates dist\DownLSort.exe, which is git-ignored):
powershell -ExecutionPolicy Bypass -File build_exe.ps1To regenerate the icons after editing assets/downlsort-logo.svg:
pip install pillow
python tools/make_icon.py'downlsort' is not recognized— activate.venv, or runpython -m downlsort.ModuleNotFoundError: customtkinter— install into the active environment:pip install -e ..No module named '_tkinter'— install Tk for your OS (see above).- Files fail to sort — close programs using them, then Refresh and retry.
- EXE build can't delete the old file — close the running app first.
MIT — see pyproject.toml.

