downloads-organizer

Automatically organize and clean up downloads folder by categorizing files, removing duplicates, and optimizing storage space

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "downloads-organizer" with this command: npx skills add ttmouse/skills/ttmouse-skills-downloads-organizer

Downloads Organizer

Automatically organize and clean up your downloads folder with intelligent file categorization, duplicate detection, and storage optimization.

Overview

Transform a chaotic downloads folder into a well-organized, searchable archive by:

  • Categorizing files - Organize by type (documents, images, videos, installers, etc.)
  • Removing duplicates - Detect and eliminate duplicate files
  • Cleaning old files - Remove outdated installers and temporary files
  • Generating reports - Provide detailed analysis of storage usage
  • Scheduled cleanup - Set up automated maintenance

Basic Workflow

1. Analyze Downloads Folder

Get current state:

cd ~/Downloads
python scripts/organizer.py --analyze

Output:

📊 Downloads Folder Analysis
Total Size: 45.2 GB
Total Files: 1,234
Total Folders: 87

Largest Files:
1. alma-0.0.204-mac-arm64.dmg (248 MB)
2. Antigravity.Tools_3.3.32_aarch64.dmg (14 MB)

File Distribution:
- Installers: 3.6 GB (8%)
- Documents: 662 MB (1.5%)
- Images: 1.2 GB (2.7%)
- Videos: 5.8 GB (12.8%)

2. Organize Files

Auto-categorize scattered files:

python scripts/organizer.py --organize --dry-run

Preview:

Would move:
- *.dmg → Installers/ (15 files)
- *.png → Images/ (42 files)
- *.pdf → Documents/PDF/ (23 files)
- *.mp4 → Videos/ (8 files)
- *.json → Documents/ (12 files)

Execute:

python scripts/organizer.py --organize

3. Clean Up

Remove old and duplicate files:

python scripts/organizer.py --cleanup

Actions:

  • Remove installers older than 60 days
  • Delete duplicate files
  • Remove empty folders
  • Clean temporary files

4. Generate Report

Get detailed report:

python scripts/organizer.py --report --output report.md

Organization Rules

File Type Categories

Documents:

  • *.pdf, *.doc, *.docx, *.txt, *.md, *.rtf
  • *.xls, *.xlsx, *.csv, *.json, *.yaml, *.yml

Images:

  • *.png, *.jpg, *.jpeg, *.gif, *.svg, *.webp, *.bmp
  • *.tiff, *.ico

Videos:

  • *.mp4, *.mov, *.avi, *.mkv, *.webm, *.flv

Audio:

  • *.mp3, *.wav, *.m4a, *.flac, *.aac, *.ogg

Installers:

  • *.dmg, *.pkg, *.app, *.zip, *.tar.gz, *.rar
  • *.exe, *.msi

Archives:

  • *.zip, *.tar.gz, *.tgz, *.rar, *.7z

Code:

  • *.py, *.js, *.ts, *.java, *.cpp, *.c, *.h
  • *.html, *.css, *.scss, *.json

Data:

  • *.csv, *.tsv, *.sql, *.db, *.sqlite

Folder Structure

~/Downloads/
├── Archives/          # Compressed archives
├── Audio/             # Audio files
├── Backups/           # Backup files and folders
├── Documents/         # Documents and text files
│   ├── PDF/
│   └── Spreadsheets/
├── Images/            # Image files
├── Installers/        # Software installers
├── Projects/          # Project-related folders
├── Videos/            # Video files
├── Software/          # Application bundles
└── Others/           # Miscellaneous files

Cleanup Strategies

Time-Based Cleanup

Installers:

  • Remove *.dmg, *.pkg files older than 60 days
  • Keep only recent installers (last 2 months)

Temporary Files:

  • Remove *.tmp, *.temp, *.cache files
  • Clean ~/.Trash contents

Empty Folders:

  • Remove directories with 0 files
  • Remove directories older than 90 days with < 5 files

Duplicate Detection

Find duplicates by:

  • File name - Exact name match
  • File size - Same size (quick filter)
  • Hash comparison - MD5/SHA256 for exact duplicates

Action:

python scripts/organizer.py --find-duplicates

Keep strategy:

  • Keep newest file
  • Keep file with shortest path
  • Ask user for conflicts

Large File Analysis

Identify space hogs:

python scripts/organizer.py --large-files --min-size 100MB

Output:

📦 Large Files (>100MB):
1. alma-0.0.204-mac-arm64.dmg - 248 MB
2. recording_2026-01-10_23-22-53.mp4 - 12 MB
3. generated-1768282547017.png - 25 MB

Automated Maintenance

Schedule Cleanup

Set up cron job for automatic cleanup:

# Run cleanup every Sunday at 2 AM
0 2 * * 0 cd ~/Downloads && python scripts/organizer.py --cleanup

# Run organization daily at 9 AM
0 9 * * * cd ~/Downloads && python scripts/organizer.py --organize

Automated Rules

Define custom rules in config/rules.yaml:

patterns:
  - pattern: "*_recording_*.mp4"
    destination: Videos/Recordings/
    keep_days: 30

  - pattern: "generated-*.png"
    destination: Images/Generated/
    keep_days: 7

  - pattern: "Screenshot*.png"
    destination: Images/Screenshots/
    keep_days: 30

Configuration

Settings File

Create ~/.downloads-organizer/config.yaml:

downloads_dir: ~/Downloads
dry_run: false
verbose: true

cleanup:
  installer_age_days: 60
  temp_age_days: 7
  duplicate_action: keep_newest

organization:
  auto_categorize: true
  respect_existing_folders: true
  create_missing_folders: true

exclusions:
  - "*.locked"
  - ".*"
  - "node_modules"
  - ".git"

Custom Categories

Add custom file types to categories:

custom_categories:
  design:
    extensions: [".sketch", ".fig", ".psd", ".ai"]
    folder: "Design/"

  data_science:
    extensions: [".ipynb", ".r", ".mat", ".h5"]
    folder: "DataScience/"

Usage Examples

Example 1: Weekly Maintenance

# Full cleanup cycle
python scripts/organizer.py \
  --organize \
  --cleanup \
  --report \
  --output ~/Downloads/weekly-report.md

Example 2: Quick Organize

# Just organize new files
python scripts/organizer.py --organize --new-only

Example 3: Deep Clean

# Aggressive cleanup with confirmation
python scripts/organizer.py \
  --cleanup \
  --installer-age 30 \
  --remove-duplicates \
  --remove-empty-folders \
  --confirm

Example 4: Project Cleanup

# Move project files to Projects/ folder
python scripts/organizer.py \
  --move-projects \
  --project-pattern "*-project*" \
  --destination Projects/

Integration

Obsidian Integration

Link organized files to Obsidian vault:

python scripts/organizer.py --link-obsidian --vault ~/Documents/ObsidianVault

Creates:

  • [[Downloads/Images/file.png]] links in Obsidian
  • Daily notes with new files
  • Mappings for easy searching

Cloud Sync Integration

Sync organized folders to cloud:

python scripts/organizer.py --sync-cloud \
  --provider icloud \
  --folders Documents,Images \
  --exclude-backups

Notification Integration

Send cleanup notifications:

python scripts/organizer.py --cleanup --notify \
  --method slack \
  --channel #downloads

Best Practices

Organization

DO:

  • Organize regularly (daily or weekly)
  • Use consistent folder structure
  • Keep recent installers accessible
  • Archive important files to permanent locations

DON'T:

  • Wait until downloads folder is huge
  • Mix unrelated file types
  • Delete files without reviewing
  • Keep old installers "just in case"

Cleanup

DO:

  • Set appropriate age thresholds
  • Review duplicates before deleting
  • Check large files before cleanup
  • Backup important files first

DON'T::

  • Delete files blindly
  • Set too aggressive cleanup
  • Ignore duplicate warnings
  • Skip backup checks

Performance

DO:

  • Schedule cleanup during low activity
  • Use dry-run first
  • Monitor disk space after cleanup
  • Keep logs for troubleshooting

DON'T:

  • Run cleanup while downloading
  • Organize during file transfers
  • Disable safety checks
  • Ignore error messages

Troubleshooting

File Move Conflicts

Problem: "File already exists" error

Solution:

python scripts/organizer.py --organize --handle-conflicts ask

Options:

  • ask - Prompt for each conflict
  • skip - Skip conflicting files
  • overwrite - Overwrite existing files
  • rename - Add timestamp to new files

Permission Errors

Problem: "Permission denied" when moving files

Solution:

# Fix permissions
chmod -R u+rw ~/Downloads

# Run with sudo (last resort)
sudo python scripts/organizer.py --cleanup

Slow Performance

Problem: Organization takes too long

Solution:

# Exclude large directories
python scripts/organizer.py --exclude "Projects/,Backups/"

# Use parallel processing
python scripts/organizer.py --parallel --workers 4

# Skip hash comparison for duplicates
python scripts/organizer.py --find-duplicates --quick

Resources

  • Main script: scripts/organizer.py
  • Configuration guide: references/configuration.md
  • File type mappings: references/file-types.yaml
  • Troubleshooting: references/troubleshooting.md

Safety Features

Backup Before Cleanup

Always create backup before major cleanup:

python scripts/organizer.py --backup --dest ~/Downloads-backup

Undo Functionality

Roll back changes:

python scripts/organizer.py --undo --from ~/Downloads-backup

Confirmation Prompts

Confirm destructive actions:

python scripts/organizer.py --cleanup --confirm

Logging

Detailed logging for audit:

python scripts/organizer.py --organize --log-level debug --log-file organizer.log

Last Updated: 2026-01-15 Version: 1.0.0

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

twitter-image-downloader

No summary provided by upstream source.

Repository SourceNeeds Review
General

universal-writer

No summary provided by upstream source.

Repository SourceNeeds Review
General

requirements-clarifier

No summary provided by upstream source.

Repository SourceNeeds Review
General

intelligent-prompt-generator

No summary provided by upstream source.

Repository SourceNeeds Review