Organize Downloads
Scan the Downloads folder and organize files into their designated folders based on the rules below.
Target Structure
~/Pictures/
├── ORG_Banners
├── ORG_Cards
├── ORG_Posters
├── ORG_Infographics
├── ORG_Screenshots (CleanShot screenshots)
├── ORG_AI_Generated (ChatGPT, Gemini images)
├── ORG_YouTube_Thumbnails
├── ORG_WhatsApp
├── ORG_UUID (UUID-named images)
├── ORG_Selfies
└── ORG_Other_Images
~/Documents/
├── ORG_PDF
├── ORG_Office (docx, xlsx, pptx)
├── ORG_Text (txt, md, rtf)
└── ORG_Ebooks (epub, mobi, azw3)
~/Media/
├── ORG_Video (mp4, mov, mkv, avi, webm)
├── ORG_Audio (mp3, m4a, wav, flac, aac)
└── ORG_Subtitles (srt, sub, ass, vtt, subtitle folders)
~/DevSys/
├── ORG_Archives (zip, rar, dmg, 7z, tar.gz)
├── ORG_Data (json, csv, xml, yaml)
├── ORG_Web (html, css, js)
├── ORG_Projects (directories, keep original names)
└── ORG_Other_Sys (unmatched files)
~/Downloads/
└── (only .app folders remain here)
File Routing Rules (First Match Wins)
Images → ~/Pictures/
| Pattern |
Target |
banner-* |
ORG_Banners |
card-* |
ORG_Cards |
poster-* |
ORG_Posters |
infographic-* |
ORG_Infographics |
CleanShot* |
ORG_Screenshots |
Screenshot* |
ORG_Screenshots |
ChatGPT Image* |
ORG_AI_Generated |
Gemini_Generated_Image* |
ORG_AI_Generated |
*[*-*x*-*m*s]* (YouTube thumbnail pattern) |
ORG_YouTube_Thumbnails |
WhatsApp Image* |
ORG_WhatsApp |
Selfie* |
ORG_Selfies |
UUID pattern xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx* |
ORG_UUID |
| Other images (jpg, jpeg, png, gif, webp, heic, svg, avif, ico) |
ORG_Other_Images |
Documents → ~/Documents/
| Extension |
Target |
.pdf |
ORG_PDF |
.docx, .doc, .xlsx, .xls, .pptx, .ppt |
ORG_Office |
.txt, .md, .rtf |
ORG_Text |
.epub, .mobi, .azw3, .azw, .fb2, .cbr, .cbz |
ORG_Ebooks |
Media → ~/Media/
| Extension/Pattern |
Target |
.mp4, .mov, .mkv, .avi, .webm, .m4v |
ORG_Video |
.mp3, .m4a, .wav, .flac, .aac, .ogg, .wma |
ORG_Audio |
.srt, .sub, .ass, .ssa, .vtt |
ORG_Subtitles |
Folders matching *.(*).*.1cd.(*) pattern |
ORG_Subtitles |
DevSys → ~/DevSys/
| Extension/Type |
Target |
.zip, .rar, .7z, .tar, .tar.gz, .tgz, .gz, .dmg, .pkg, .deb |
ORG_Archives |
.json, .csv, .xml, .yaml, .yml, .tsv, .sql, .ndjson |
ORG_Data |
.html, .htm, .css, .js, .mhtml, .php |
ORG_Web |
| Directories (not .app) |
ORG_Projects (keep original name) |
| Unmatched files |
ORG_Other_Sys |
Stays in Downloads
| Type |
Action |
.app folders |
Do not move |
Execution Instructions
- Scan
~/Downloads/ (root level only, not recursive into subfolders)
- Create target folders if they don't exist
- Match each file/folder against rules (first match wins)
- Move to appropriate target folder
- Report summary: number of files moved to each target
Report Format
After organizing, provide a summary like:
Organization Complete
Pictures:
- ORG_Banners: X files
- ORG_Cards: X files
- ORG_Posters: X files
- ORG_Infographics: X files
- ORG_Screenshots: X files
- ORG_AI_Generated: X files
...
Documents:
- ORG_PDF: X files
...
Media:
- ORG_Video: X files
...
DevSys:
- ORG_Archives: X files
- ORG_Projects: X directories
...
Skipped:
- X .app folders (remain in Downloads)
Important Notes
- First match wins - stop checking rules after a match
- Create target folders automatically if they don't exist
- Preserve original filenames
- For ORG_Projects: move entire directory, keep original directory name
- Only scan Downloads root level, don't reorganize files already in subfolders
1---2name: organize-downloads3description: Scan Downloads folder and organize files into designated ORG_* folders based on file type and naming patterns4---56# Organize Downloads78Scan the Downloads folder and organize files into their designated folders based on the rules below.910## Target Structure1112```13~/Pictures/14 ├── ORG_Banners15 ├── ORG_Cards16 ├── ORG_Posters17 ├── ORG_Infographics18 ├── ORG_Screenshots (CleanShot screenshots)19 ├── ORG_AI_Generated (ChatGPT, Gemini images)20 ├── ORG_YouTube_Thumbnails21 ├── ORG_WhatsApp22 ├── ORG_UUID (UUID-named images)23 ├── ORG_Selfies24 └── ORG_Other_Images2526~/Documents/27 ├── ORG_PDF28 ├── ORG_Office (docx, xlsx, pptx)29 ├── ORG_Text (txt, md, rtf)30 └── ORG_Ebooks (epub, mobi, azw3)3132~/Media/33 ├── ORG_Video (mp4, mov, mkv, avi, webm)34 ├── ORG_Audio (mp3, m4a, wav, flac, aac)35 └── ORG_Subtitles (srt, sub, ass, vtt, subtitle folders)3637~/DevSys/38 ├── ORG_Archives (zip, rar, dmg, 7z, tar.gz)39 ├── ORG_Data (json, csv, xml, yaml)40 ├── ORG_Web (html, css, js)41 ├── ORG_Projects (directories, keep original names)42 └── ORG_Other_Sys (unmatched files)4344~/Downloads/45 └── (only .app folders remain here)46```4748## File Routing Rules (First Match Wins)4950### Images → ~/Pictures/5152| Pattern | Target |53| -------------------------------------------------------------- | ---------------------- |54| `banner-*` | ORG_Banners |55| `card-*` | ORG_Cards |56| `poster-*` | ORG_Posters |57| `infographic-*` | ORG_Infographics |58| `CleanShot*` | ORG_Screenshots |59| `Screenshot*` | ORG_Screenshots |60| `ChatGPT Image*` | ORG_AI_Generated |61| `Gemini_Generated_Image*` | ORG_AI_Generated |62| `*[*-*x*-*m*s]*` (YouTube thumbnail pattern) | ORG_YouTube_Thumbnails |63| `WhatsApp Image*` | ORG_WhatsApp |64| `Selfie*` | ORG_Selfies |65| UUID pattern `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx*` | ORG_UUID |66| Other images (jpg, jpeg, png, gif, webp, heic, svg, avif, ico) | ORG_Other_Images |6768### Documents → ~/Documents/6970| Extension | Target |71| --------------------------------------------------------- | ---------- |72| `.pdf` | ORG_PDF |73| `.docx`, `.doc`, `.xlsx`, `.xls`, `.pptx`, `.ppt` | ORG_Office |74| `.txt`, `.md`, `.rtf` | ORG_Text |75| `.epub`, `.mobi`, `.azw3`, `.azw`, `.fb2`, `.cbr`, `.cbz` | ORG_Ebooks |7677### Media → ~/Media/7879| Extension/Pattern | Target |80| ------------------------------------------------------- | ------------- |81| `.mp4`, `.mov`, `.mkv`, `.avi`, `.webm`, `.m4v` | ORG_Video |82| `.mp3`, `.m4a`, `.wav`, `.flac`, `.aac`, `.ogg`, `.wma` | ORG_Audio |83| `.srt`, `.sub`, `.ass`, `.ssa`, `.vtt` | ORG_Subtitles |84| Folders matching `*.(*).*.1cd.(*)` pattern | ORG_Subtitles |8586### DevSys → ~/DevSys/8788| Extension/Type | Target |89| ------------------------------------------------------------------------------- | --------------------------------- |90| `.zip`, `.rar`, `.7z`, `.tar`, `.tar.gz`, `.tgz`, `.gz`, `.dmg`, `.pkg`, `.deb` | ORG_Archives |91| `.json`, `.csv`, `.xml`, `.yaml`, `.yml`, `.tsv`, `.sql`, `.ndjson` | ORG_Data |92| `.html`, `.htm`, `.css`, `.js`, `.mhtml`, `.php` | ORG_Web |93| Directories (not .app) | ORG_Projects (keep original name) |94| Unmatched files | ORG_Other_Sys |9596### Stays in Downloads9798| Type | Action |99| -------------- | ----------- |100| `.app` folders | Do not move |101102## Execution Instructions1031041. **Scan** `~/Downloads/` (root level only, not recursive into subfolders)1052. **Create** target folders if they don't exist1063. **Match** each file/folder against rules (first match wins)1074. **Move** to appropriate target folder1085. **Report** summary: number of files moved to each target109110## Report Format111112After organizing, provide a summary like:113114```115Organization Complete116117Pictures:118 - ORG_Banners: X files119 - ORG_Cards: X files120 - ORG_Posters: X files121 - ORG_Infographics: X files122 - ORG_Screenshots: X files123 - ORG_AI_Generated: X files124 ...125126Documents:127 - ORG_PDF: X files128 ...129130Media:131 - ORG_Video: X files132 ...133134DevSys:135 - ORG_Archives: X files136 - ORG_Projects: X directories137 ...138139Skipped:140 - X .app folders (remain in Downloads)141```142143## Important Notes144145- First match wins - stop checking rules after a match146- Create target folders automatically if they don't exist147- Preserve original filenames148- For ORG_Projects: move entire directory, keep original directory name149- Only scan Downloads root level, don't reorganize files already in subfolders