# Organize Downloads

> Scan Downloads folder and organize files into designated ORG_* folders based on file type and naming patterns

- Skill: `hasanyilmaz/organize-downloads` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add hasanyilmaz/organize-downloads`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hasanyilmaz/organize-downloads/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: hasanyilmaz (https://skillmd.com/u/hasanyilmaz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hasanyilmaz/organize-downloads

---


# 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

1. **Scan** `~/Downloads/` (root level only, not recursive into subfolders)
2. **Create** target folders if they don't exist
3. **Match** each file/folder against rules (first match wins)
4. **Move** to appropriate target folder
5. **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

