macOS only: this project uses AppleScript and Finder automation, so it is designed to run only on Mac.
Automatically organizes files in your Downloads folder into:
- Images:
jpg,jpeg,png,gif,bmp,svg,ico,webp,tiff,heic - Documents:
pdf,doc,docx,txt,xlsx,xls,ppt,pptx,rtf,odt,pages,numbers,keynote - Archives:
zip,dmg,pkg,rar,7z,tar,gz - Videos:
mp4,mov,avi,mkv,flv,wmv,webm,m4v - Music:
mp3,wav,aac,flac,m4a,opus,alac,ogg - Other: Any files that don't match the above categories
Also includes:
- Log file:
~/Desktop/OrganizerLog.txt - Cache file:
~/Library/Preferences/OrganizerCache.txt
DownloadsFolderOrganizerPro.app is a macOS application that automatically tidies your Downloads folder by sorting files into category-specific subfolders. Instead of having hundreds of mixed files cluttering your Downloads, the app creates organized folders and moves files into them.
- Scans your Downloads folder for files
- Creates category folders (Images, Documents, Archives, Videos, Music, Other) if they don't exist
- Moves files into the appropriate category folder based on file type
- Files with unrecognized extensions are moved to the "Other" folder
- Logs all actions so you know what was organized
- Caches processed files to avoid redundant moves on future runs
The "Other" category captures any file with an unrecognized or non-standard file extension that doesn't match the predefined categories. Two specialized handlers manage these files:
moveOther(): Used in batch mode without caching. Scans all files, identifies those with unknown extensions, and moves them to the "Other" folder.moveOtherCached(): Used in cache mode. Same behavior as moveOther, but also maintains cache entries for "Other" files to prevent re-processing on subsequent runs. Files already in cache are skipped automatically.
This ensures no files are left behind in Downloads, regardless of their file type or how obscure the extension.
- Your Downloads folder is getting messy and hard to navigate
- You want a hands-off way to auto-organize files as they download
- You need to clean up an existing Downloads folder (run once, or keep it open)
- One-time cleanup: Open the app, let it run, and close it when done
- Ongoing auto-organization: Open the app and leave it running—it automatically organizes every 5 minutes
- Check results: Open
~/Desktop/OrganizerLog.txtto see what files were moved and where
If you want to modify file types or category names, edit OrganizerBaseline.scpt in Script Editor before running the app.
- Open
DownloadsFolderOrganizerPro.app. - The app runs and organizes your Downloads folder.
- Keep it open if you want auto-runs every 5 minutes (stay-open mode).
- Check
~/Desktop/OrganizerLog.txtto see what was moved.
Because this is a shared AppleScript app bundle and may not be notarized, macOS Gatekeeper can block it on other devices.
Run this in Terminal (replace the path with your real app path):
xattr -cr "/path/to/DownloadsFolderOrganizerPro.app"eg:
xattr -cr "$HOME/Downloads/DownloadsFolderOrganizerPro.app"Then try opening the app again.
- Go to
System Settings-> t;Privacy & Securityrity. - In the Security section, find the blocked app message.
- Click
Open Anyway, then confirm.
- Right-click
DownloadsFolderOrganizerPro.app. - Click
Open. - Click
Openagain in the warning dialog.
If the app still fails to open, use Script Editor directly:
- Open
OrganizerBaseline.scptin Script Editor. - Click the
Runbutton. - Grant Finder/Desktop/Downloads permissions if prompted.
This runs the organizer logic even if the .app wrapper is blocked.
If needed, re-download or re-copy the .app bundle and run xattr -cr again.
Screen.Recording.2026-04-28.at.3.02.59.PM.mp4
If you open OrganizerBaseline.scpt, there are three modes:
organizeBaseline: slow baseline (file-by-file loop), includes Other files via destinationForFileorganizeBatchNoCache: optimized batch moves, processes Other files via moveOther handlerorganizeBatchWithCache: batch + cache (default mode), processes Other files via moveOtherCached handler
Note: In all modes, the "Other" category captures any files with unrecognized extensions. In cache mode, Other files are tracked and skipped on future runs.
- Before: move files one by one inside a repeat loop.
- After: move grouped file lists per category.
- Before: every run re-processes the same files, including unrecognized file types.
- After: previously processed filenames (including Other files) are skipped using cache on subsequent runs.
| Mode | Runtime | Finder/Event Behavior | Memory (RSS) |
|---|---|---|---|
| Baseline (loop, no cache) | 8.4s | many per-file operations | 39 MB |
| Batch only | 3.1s | fewer grouped operations | 31 MB |
| Batch + cache (second run) | 0.9s | near-zero move operations | 24 MB |
Run each mode on the same test data set and record the time from dialog/log:
organizeBaselineorganizeBatchNoCacheorganizeBatchWithCache(run twice; record second run)
Use Script Editor event log, or monitor Finder activity:
log stream --style compact --predicate 'process == "Finder"'ps -axo pid,comm,rss | grep -i "DownloadsFolderOrganizerPro\|OrganizerBaseline\|osascript"rss is in KB. Divide by 1024 to get MB.
- Open
OrganizerBaseline.scptin Script Editor. - Click File -> Export.rt.
- Set File Format to
Application. - Enable
Stay open after run handler. - Save as
DownloadsFolderOrganizerPro.app.
If you distribute the app to other Macs, signing helps reduce launch warnings.
codesign --force --deep --sign - "/path/to/DownloadsFolderOrganizerPro.app"Notes:
--sign -uses ad-hoc signing (no paid certificate required).- For best trust on external machines, use a Developer ID certificate and notarization.
Reference and credits: Applescript examples