Smart File Duplicate Manager is an app for finding and managing duplicate files. It's written on Python using PyQt6.
By using this software, you agree to the full disclaimer terms.
Summary: Software provided "AS IS" without warranty. You assume all risks.
Full legal disclaimer: See DISCLAIMER.md
- Scan the selected folder and all subfolders
- Compare files by size, then by hash (xxHash, or MD5 if none)
- Multi-threaded scanning (uses all available processor cores)
- Filters by file size and extension
- Automatically determines the primary file in each group based on the following strategy:
- Oldest / Newest
- Smallest / Largest
- Shortest / Longest Path
- All other files in the group are automatically marked as duplicates
- Manually select files in each group (checkboxes)
- Ability to change the primary file in a group
- Globally select all duplicates / deselect all
- Move — duplicates are moved to the destination folder in a subfolder with the date and time. A JSON log with all information about the moved files is saved in the folder.
- Test Mode — simulates actions without actually moving
- View all previously moved files from JSON logs
- Selective file restore to their original folders
- Automatic log update and deletion of empty folders
- Three main panels:
- Left — scan settings
- Center — list of duplicate groups with statistics
- Right — group details and file list with checkboxes
- Search by file name
- Progress bar and status bar
- Confirmation of all important actions
- Hotkeys for basic operations
- Dark theme
# Cloning the repository
git clone https://github.com/smartlegionlab/smart-file-duplicate-manager.git
cd smart-file-duplicate-manager
python -m venv venv
source venv/bin/activate
# Installing dependencies
pip install -r requirements.txt
# Running
python app.py- Python 3.8 or higher
- Windows / Linux / macOS
- PyQt6 — GUI
- xxhash — fast hashing (optional)
- In the left panel, specify the scan folder and the duplicates folder.
- If necessary, adjust filters and select a strategy.
- Click "Start Scan."
- After scanning is complete, select the desired files (or use "Select All").
- To restore previously moved files, use the "Tools" → "Restore Files" menu.
Creating Application Shortcuts:
The application allows you to create desktop entries directly from the menu:
- Go to File → Create Desktop Entry
- Choose locations:
- ✓ Application Menu (
~/.local/share/applications/) - adds to system app menu - □ Desktop (
~/Desktop/) - creates shortcut on desktop
- ✓ Application Menu (
- Click "Create Entry"
What happens:
- Creates
.desktopfile(s) with proper configuration - Sets executable permissions automatically
- Uses application icon if available
After creation:
- Application Menu: Log out and back in (or restart desktop) for entry to appear
- Desktop shortcut: May show "Unsecured Application Launcher" warning
- Right-click on shortcut → "Allow Launching" or "Trust"
- This is a one-time security confirmation
Note: This feature is only available on Linux systems with desktop environments that support .desktop files (GNOME, KDE, XFCE, etc.).
| Action | Keys |
|---|---|
| Select Scan Folder | Ctrl+Shift+O |
| Select Duplicates Folder | Ctrl+Shift+D |
| Start scan | Ctrl+R |
| Cancel scan | Ctrl+Shift+C |
| Reset | Ctrl+X |
| Exit | Ctrl+Q |
| Select all duplicates | Ctrl+A |
| Deselect all | Ctrl+Shift+A |
| Test mode | Ctrl+T |
| Show statistics | Ctrl+I |
| Clear search | Ctrl+L |
| Move selected files | Ctrl+M |
| Restore files | Ctrl+Shift+R |
| Open duplicates folder | Ctrl+Shift+F |
| Keyboard Shortcuts | Ctrl+/ |
| About | Ctrl+H |
| Documentation | F1 |
| Report Issue | Ctrl+Shift+I |
| License | Ctrl+Alt+L |
Alexander Suvorov
- GitHub: @smartlegionlab
If you find this tool useful, please consider giving it a star on GitHub!
BSD 3-Clause License. See the LICENSE file for more details.
Made with ❤️ for the open-source community
