Set rules once. Stay organized forever.
SortDrop is a free, open source macOS menu bar app that automatically organizes files in your Downloads folder using simple rules you define. Everything stays on your Mac.
It's a hobby project I work on in my spare time. No commercial support, no SLAs. If it helps you, great.
Repository: github.com/ozardali/SortDrop
- Native Downloads watching: FSEvents with debounce, no polling
- Flexible rules: extension, file name contains, file kind, older than N days
- Preview mode: see what would move before you commit
- Activity log: a running history of what happened
- App Sandbox: Mac App Store ready
- Launch at login: optional, off by default
- Export / import rules: back up your rules as JSON (replace or merge)
- Bookmark health checks: warns you if a destination folder goes stale
- No accounts, no cloud, no analytics
- Open Releases
- Download
SortDrop.dmg - Drag SortDrop to Applications
- Open it from Applications and let macOS run the app when it asks
Maintainers: see docs/RELEASING.md for how to ship a release.
git clone https://github.com/ozardali/SortDrop.git
cd SortDrop
open SortDrop.xcodeprojPress ⌘R in Xcode, or:
xcodebuild -scheme SortDrop -configuration Release build CODE_SIGNING_ALLOWED=NOThen:
- Open Rules… from the menu bar
- Add a rule (e.g. extension
pdf→Downloads/PDFs) - Turn on Watch Downloads (it's on by default)
- Drop a file into Downloads and SortDrop will sort it for you
For folders outside Downloads, hit Choose Folder… in the rule editor so macOS can grant access (sandbox thing).
- macOS 14.0 (Sonoma) or later
- Xcode 16+ / Swift 6 (only if you're building from source)
| Access | How |
|---|---|
~/Downloads |
Automatic (downloads.read-write entitlement) |
| Subfolders of Downloads | Automatic (e.g. Downloads/PDFs) |
| Other folders | Choose Folder… in the rule editor |
Incomplete downloads (.download, .part, .crdownload) are skipped by default. Flip the toggle in Settings if you want otherwise.
Run unit tests:
xcodebuild test -scheme SortDrop -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NOGenerate sample files in Downloads:
cd ~/Downloads
/path/to/SortDrop/scripts/generate-test-files.shSortDrop/
├── SortDrop/App/ # App entry, AppDelegate
├── SortDrop/Models/ # FileRule, AppController, AppSettings
├── SortDrop/Services/ # RuleEngine, FolderWatcher, RuleStore
├── SortDrop/Views/ # SwiftUI UI
├── SortDropTests/ # Unit tests
├── docs/ # Screenshots, release notes
└── scripts/ # Test file generator, DMG helper
SortDrop moves files on your Mac based on rules you set up. You're on the hook for your rules, destinations, and anything that goes wrong. The authors aren't liable for misplaced, lost, or damaged files.
Full details in DISCLAIMER.md.
Found a bug? Open an issue on GitHub.
SortDrop runs entirely on your Mac. See PRIVACY.md.
MIT. See LICENSE.
Made by Göksel ÖZARDALI · hobby project, MIT licensed.


