
A smart file organization tool with AI-powered categorization

Installation • Features • User Guide • Technical Details • Contributing
Sortify is an intelligent file organization tool that automatically categorizes and organizes your files based on their formats, content, and metadata. It leverages AI and machine learning to understand file content and context, going beyond simple extension-based sorting.
- Save Time: Automate tedious file organization tasks
- Reduce Clutter: Keep your digital workspace organized automatically
- Smart Categorization: Files are sorted based on what they actually contain, not just their extension
- Flexible Rules: Create custom organization rules using natural language
- Set & Forget: Configure once and let Sortify handle organization in the background
Automatically monitor folders and sort new files as they arrive.
- Uses the watchdog library to detect file system changes
- Configurable watched folders with recursive monitoring
- Background processing that works even when the app is minimized
Easily revert file operations with a comprehensive undo system.
- One-click undo for the most recent operation
- Detailed history tracking of all file movements
- Ability to undo specific operations from the history
Simply drag files directly into the application window.
- Intuitive interface for adding files
- Support for multiple files at once
- Visual feedback during drag operations
Set up automatic sorting to run on a schedule.
- Daily, weekly, or monthly scheduling options
- Multiple scheduled jobs for different folders
- Configurable time settings
Intelligent categorization beyond simple file extensions.
- Machine learning model to categorize files based on content and name
- Trainable classifier that improves over time
- Detects document types like resumes, invoices, etc.
Automatically categorize images based on their visual content.
- Detects faces for sorting photos of people
- Identifies screenshots vs. photographs
- Recognizes document images
Automatically categorize media files from popular social platforms.
- Detects and sorts media from WhatsApp, Telegram, Instagram, Facebook, and YouTube
- Organizes videos into platform-specific folders (videos/whatsapp, videos/telegram, etc.)
- Categorizes images by source platform (images/instagram, images/facebook, etc.)
Define sorting rules using plain English commands.
- Process commands like "Move all PDFs older than 30 days to Archive folder"
- Intuitive interface with example commands
- Support for time-based, extension-based, and location-based rules
- Operating System: Windows 10/11, macOS 10.14+, or Linux (Ubuntu 18.04+, Fedora 30+)
- Python: Version 3.8 or higher
- Disk Space: ~150MB for installation (including dependencies)
- RAM: Minimum 4GB recommended (8GB+ for optimal performance with AI features)
- Additional: Internet connection required for initial setup and AI model downloads
- Download the latest installer from the Releases page
- Run the installer and follow the on-screen instructions
- Launch Sortify from the Start menu or desktop shortcut
Note: If Windows Defender flags the installer, please see DEFENDER_SOLUTIONS.md for solutions.
-
Clone the repository:
git clone https://github.com/Mrtracker-new/Sortify.git cd Sortify
-
Create and activate a virtual environment:
python -m venv venv # Linux/macOS source venv/bin/activate # Windows venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python main.py
For instructions on building your own installer, see INSTALLER_README.md.
Sortify offers multiple ways to organize your files. Here's how to use each feature:
🔄 Real-time Auto Sort
- Click the "Auto-Sort" toggle in the toolbar
- Select a folder to watch
- Choose a destination for sorted files
- Files added to the watched folder will be automatically sorted
🖱️ Drag & Drop
- Simply drag files from your file explorer
- Drop them into the main window
- Use the organize button to sort them
⏰ Scheduled Sorting
- Open Settings from the toolbar
- Go to the "Scheduled Sorting" tab
- Configure your schedule and select folders
- Add the job to the scheduler
📱 Social Media Content Organization
- No additional setup required - works automatically
- Media files with names containing platform identifiers (e.g., "whatsapp", "telegram", "instagram") will be sorted into dedicated folders
- Supports common video formats (mp4, avi, 3gp, mov) and image formats (jpg, jpeg, png)
💬 Natural Language Commands
- Go to the "Commands" tab
- Enter a command like "Move all PDFs to Archive folder"
- Click "Execute Command"
- You can also use the example commands provided
Example Commands:
- "Move all images to Pictures folder"
- "Sort PDFs older than 30 days into Archive folder"
- "Organize downloads by file type"
- "Move videos larger than 1GB to External Drive"
- "Find duplicate files in Documents folder"
Application Won't Start
- Ensure you have Python 3.8+ installed
- Verify all dependencies are installed:
pip install -r requirements.txt
- Check for error messages in the console
- Try running with administrator privileges
Files Not Being Sorted
- Verify the source and destination folders exist and are accessible
- Check if you have write permissions for the destination folder
- Ensure the file types you're trying to sort are supported
- Check if any other application has locked the files
AI Categorization Not Working
- Ensure you have an internet connection for the initial model download
- Verify that the AI model files exist in the application directory
- Try restarting the application
- Check if your system meets the minimum RAM requirements (4GB+)
Windows Defender Warnings
- See DEFENDER_SOLUTIONS.md for detailed solutions
- Consider using the signed installer from the releases page
- Add an exclusion for the Sortify executable in Windows Defender
Architecture
The application uses a modular architecture with these key components:
-
Core Modules:
watcher.py
: Implements real-time folder monitoringscheduler.py
: Manages scheduled sorting tasksai_categorizer.py
: Provides machine learning-based file classificationimage_analyzer.py
: Analyzes image content and detects social media sourcescategorization.py
: Handles file categorization including social media detectionfile_operations.py
: Manages file sorting and organization with platform-specific rulesnlp_parser.py
: Parses natural language commands
-
UI Components:
main_window.py
: Main interface with tabssettings_window.py
: Configuration interface for all features
Dependencies
-
watchdog: Real-time file system monitoring
- Detects file system events (creation, modification, deletion)
- Provides event handlers for custom actions
- Used in the watcher module for auto-sorting
-
apscheduler: Advanced Python scheduler
- Supports cron-like scheduling
- Persists jobs between application restarts
- Handles background task execution
-
scikit-learn: Machine learning library
- Powers the AI-based file categorization
- Provides classification algorithms for file type prediction
- Used for training custom categorization models
-
opencv-python: Computer vision library
- Analyzes image content for intelligent sorting
- Detects faces, documents, and screenshots
- Extracts visual features for categorization
-
nltk: Natural Language Toolkit
- Processes natural language commands
- Performs text tokenization and parsing
- Extracts meaning from user instructions
-
spaCy: Advanced NLP library
- Provides named entity recognition
- Understands semantic relationships in commands
- Enhances natural language command parsing
-
PyQt5: GUI framework
- Creates the modern user interface
- Handles drag & drop functionality
- Manages application windows and dialogs
See requirements.txt for a complete list of dependencies and version requirements.
Contributions are welcome! Here's how you can help:
- 🐛 Report bugs and issues: Use the GitHub Issues page to report bugs
- 💡 Suggest new features: Have an idea? Share it in the Discussions section
- 🧪 Add tests: Help improve reliability by adding tests for existing functionality
- 📝 Improve documentation: Fix typos, clarify explanations, or add examples
- 🔧 Submit code: Fix bugs or implement new features through pull requests
- 🌐 Localization: Help translate the application to other languages
- Fork the repository on GitHub
- Clone your fork locally
- Set up the development environment as described in the Installation section
- Create a new branch for your feature or bugfix
- Make your changes and add appropriate tests
- Run the test suite to ensure everything works
- Submit a pull request with a clear description of the changes
- Follow PEP 8 style guidelines for Python code
- Write meaningful commit messages
- Include docstrings for all functions, classes, and modules
- Add unit tests for new functionality
- Update documentation to reflect your changes
Distributed under the MIT License. See LICENSE for more details.
👤 Author: Rolan Lobo
📧 Email: rolanlobo901@gmail.com
🐞 Issues: GitHub Issues