A fast, native macOS app for comparing images, detecting duplicates, and organizing your photo library.
- Exact duplicate detection — SHA-256 hash comparison for pixel-perfect duplicates
- Visual comparison — Side-by-side image grid with file metadata
- Smart keep suggestion — Automatically marks the highest-quality file to keep (largest size / newest)
- Safe deletion — Moves files to Trash (recoverable), never hard-deletes
- Broad format support — JPEG, PNG, HEIC, WebP, RAW (CR2/CR3/NEF/ARW/DNG), and more
- Keyboard-driven workflow — ⌘O to open folder
- Perceptual hashing for near-duplicate / similar image detection
- Bulk actions (delete all in group, keep newest/largest)
- Keyboard shortcuts for rapid culling (Keep: ←→ arrows, Delete: D)
- Folder organization (move files to dated subfolders)
- Lightroom / Apple Photos library integration
- Export report (CSV of duplicate groups)
- macOS 14 (Sonoma) or later
- Xcode 15+
git clone https://github.com/itchi3D/ImageCull.git
cd ImageCull
open Package.swift # Opens in Xcode automaticallyThen press ⌘R in Xcode to build and run.
Sources/ImageCull/
├── ImageCullApp.swift # App entry point
├── AppState.swift # Central ObservableObject state
├── Models/
│ ├── ImageFile.swift # Image file representation
│ └── DuplicateGroup.swift # Group of duplicate images
├── Services/
│ ├── ImageScanner.swift # Recursively scans folders for images
│ ├── DuplicateDetector.swift # SHA-256 exact match + (TODO) perceptual hash
│ └── FileOrganizer.swift # Move / copy / trash file operations
└── Views/
├── ContentView.swift # Root view (state machine switcher)
├── WelcomeView.swift # Landing screen
├── ScanProgressView.swift
├── ResultsView.swift # NavigationSplitView: group list + detail
├── ComparisonView.swift # Image tile grid for a single group
└── ErrorView.swift
| App | Price | Notes |
|---|---|---|
| PhotoSweeper | $9.99 | Side-by-side comparison, RAW support |
| Gemini 2 | Subscription | No side-by-side, no zoom |
| Duplicate Photo Cleaner | Paid | Lightroom integration |
| Apple Photos (built-in) | Free | Exact match only, Photos library only |
ImageCull aims to be a free, open-source alternative with a modern SwiftUI interface and flexible folder-based workflow.
MIT