Skip to content

itchi3D/ImageCull

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ImageCull

A fast, native macOS app for comparing images, detecting duplicates, and organizing your photo library.

Features

  • 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

Roadmap

  • 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)

Requirements

  • macOS 14 (Sonoma) or later
  • Xcode 15+

Getting Started

git clone https://github.com/itchi3D/ImageCull.git
cd ImageCull
open Package.swift   # Opens in Xcode automatically

Then press ⌘R in Xcode to build and run.

Architecture

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

Existing Alternatives

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.

License

MIT

About

macOS app for fast image culling, duplicate detection, and photo organization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages