Sortify is a production-ready, thread-safe desktop application built with Python 3.12+ and PySide6 (Qt6). It automatically organizes files into dynamic, categorized directory trees based on file type, extension, metadata, and optional AI classification.
Sortify is designed to be fast, private, offline-first, and extensible, with features such as duplicate detection, instant search, real-time folder monitoring, operation history, and an extensible AI plugin architecture.
For in-depth documentation on architecture, design tokens, operational mechanics, and contributing guidelines:
- π HOW_IT_WORKS.md β Detailed User Guide covering File Scanning, Categorization Rules, SHA-256 Duplicate Hashing, Instant Search, 1-Click Undo, Real-time Watchdog, and Settings.
- π DESIGN.md β System Architecture, Layered N-Tier Design, Multi-Threading Concurrency, SQLite Schema, and Path Traversal Security.
- π¨ LAYOUT.md β UI Layout Hierarchy, Windows 11 Fluent HSL Design Tokens, QSS Stylesheets, Dark & Light Theme Engine, and Visual Design Principles.
- π€ CONTRIBUTING.md β Developer Guide for extending file categories, building AI plugins, and running automated tests.
- Multi-File & Folder Organization β Automatically sort files into category subdirectories such as
Programming/Python,Images/PNG, andDocuments/PDF. - Move or Copy Mode β Choose whether files should be moved or copied.
- Modern Windows 11 Fluent UI β Dark & Light themes with responsive layouts and smooth interactions.
- Instant Search Engine β Search files by name, category, extension, and fuzzy matching using RapidFuzz.
- SHA-256 Duplicate Finder β Efficient two-pass duplicate detection using file size filtering followed by chunked SHA-256 hashing.
- Safe Duplicate Cleanup β Delete duplicate files using the system recycle bin through
send2trash. - Operation History & 1-Click Undo β Restore previously organized files through the built-in history system.
- Real-Time Folder Monitoring β Automatically organize newly created files using Watchdog.
- Extensible AI Plugin Architecture β Architecture ready for OCR, image classification, automatic tagging, and LLM-powered naming.
- 100% Offline & Private β No cloud dependency. Files and metadata remain on the user's device.
Make sure you have:
- Python 3.12 or newer
- Git
- Windows / Linux / macOS
Check your Python version:
python --versionClone Sortify directly from GitHub:
git clone https://github.com/Prajapatidax/sortify.gitMove into the project directory:
cd sortifyIt is recommended to use a virtual environment.
python -m venv venv
venv\Scripts\activatepython3 -m venv venv
source venv/bin/activatepip install -r requirements.txtpython app.pySortify should now launch on your desktop.
Suppose you have:
Downloads/
index.html
style.css
script.py
app.php
photo.jpg
logo.png
resume.pdf
song.mp3
video.mp4
Sortify automatically organizes them into:
Downloads/
βββ Programming/
β βββ HTML/
β β βββ index.html
β β
β βββ CSS/
β β βββ style.css
β β
β βββ Python/
β β βββ script.py
β β
β βββ PHP/
β βββ app.php
β
βββ Images/
β βββ JPG/
β β βββ photo.jpg
β β
β βββ PNG/
β βββ logo.png
β
βββ Documents/
β βββ PDF/
β βββ resume.pdf
β
βββ Audio/
β βββ MP3/
β βββ song.mp3
β
βββ Videos/
βββ MP4/
βββ video.mp4
The folder structure is created automatically when required.
Python
Java
C
C++
C#
HTML
CSS
JavaScript
TypeScript
PHP
React
Vue
Go
Rust
Swift
Kotlin
Dart
PNG
JPG
JPEG
GIF
WEBP
SVG
BMP
ICO
TIFF
RAW
MP4
AVI
MOV
MKV
WMV
FLV
MP3
AAC
WAV
FLAC
OGG
PDF
DOC
DOCX
TXT
RTF
ODT
XLSX
CSV
ODS
PPT
PPTX
ZIP
RAR
7Z
TAR
GZ
EXE
MSI
APK
ISO
TTF
OTF
JSON
XML
YAML
SQL
ENV
LOG
MD
sortify/
β
βββ .gitignore
βββ README.md
βββ HOW_IT_WORKS.md
βββ DESIGN.md
βββ LAYOUT.md
βββ CONTRIBUTING.md
β
βββ app.py
βββ config.py
βββ requirements.txt
β
βββ database.db
βββ settings.json
β
βββ logs/
β βββ application.log
β
βββ history/
β
βββ assets/
β
βββ core/
β βββ models.py
β βββ database.py
β βββ settings.py
β βββ utils.py
β βββ organizer.py
β βββ duplicates.py
β βββ search.py
β βββ watchdog_engine.py
β βββ plugins.py
β
βββ ui/
βββ main_window.py
βββ sidebar.py
βββ toolbar.py
βββ theme.py
βββ dashboard.py
βββ pages.py
Sortify is designed with a local-first architecture.
Your files are not uploaded to a remote server.
The application performs:
- File scanning locally
- Searching locally
- Duplicate detection locally
- File organization locally
- SQLite operations locally
- Watchdog monitoring locally
No cloud account is required.
The current core system does not require AI.
However, Sortify includes an extensible plugin architecture for future AI functionality.
Planned possibilities include:
- πΌοΈ AI Image Classification
- π Semantic File Search
- π OCR
- π·οΈ Automatic File Tagging
- π AI File Naming
- π€ Face-based Image Organization
- π Document Classification
- π§ LLM-powered Organization Suggestions
These capabilities can be added as independent plugins without rewriting the core organizer.
Clone the repository:
git clone https://github.com/Prajapatidax/sortify.git
cd sortifyCreate the virtual environment:
python -m venv venvActivate it:
venv\Scripts\activateInstall dependencies:
pip install -r requirements.txtRun:
python app.pyRun the test suite:
pytestFor verbose output:
pytest -vContributions are welcome!
If you want to improve Sortify:
- Fork the repository.
- Create a new branch.
- Make your changes.
- Add or update tests.
- Commit your changes.
- Push your branch.
- Create a Pull Request.
For detailed contribution guidelines, see:
This project is open source. See the repository license for details.
Computer Engineering Student & Developer
π Website: https://prajapatidax.co.in
πΌ LinkedIn: https://www.linkedin.com/in/dax-prajapati1707
π GitHub: https://github.com/Prajapatidax
π¦ Sortify Repository: https://github.com/Prajapatidax/sortify
If you find Sortify useful, consider giving the repository a β on GitHub.
Your support helps the project grow and motivates further development.
Organize everything. Automatically. ποΈ