Skip to content

pareshnagore/PhotoCuller-Mac

Repository files navigation

PhotoCuller

A native macOS app for culling photos. Scans folders, detects duplicates via perceptual hashing, scores photo quality, and lets you quickly keep/reject/delete — built for photographers who shoot in bursts or bracketed sets.

Features

  • Duplicate Detection — Perceptual hashing (pHash) groups visually similar photos with adjustable similarity threshold
  • Quality Scoring — Blur/sharpness, exposure, face detection, eye blink, smile, face sharpness, noise penalty
  • Auto-Marking — Best photo in each duplicate group auto-marked as Keep, others as Reject
  • RAW Support — NEF, CR2, CR3, ARW, DNG, ORF, RW2, RAF (plus JPG, PNG, HEIC, WebP, etc.)
  • Fast Scanning — Two-phase: thumbnails appear immediately, quality analysis runs in background
  • Batch Selection — Cmd+Click (toggle), Shift+Click (range) in grid and comparison views
  • Keyboard Shortcuts — Arrow keys to navigate, K/X to keep/reject, Delete to trash
  • File Operations — Move to Trash, move to folder, export JSON for both kept and rejected sets
  • Three Views — Duplicate Groups, Unique Photos, All Photos with sort by name/date/quality/size

System Requirements

  • macOS 15 (Sequoia) or later
  • Apple Silicon or Intel Mac

Download & Install

  1. Go to Releases
  2. Download the latest PhotoCuller-x.x.x-macOS.dmg
  3. Open the DMG and drag PhotoCuller to /Applications
  4. On first launch: right-click the app → Open (required once since the app is not notarized)

Usage

  1. Launch PhotoCuller
  2. Select a folder containing your photos
  3. The app scans for duplicates and scores quality in the background
  4. Use the Duplicate Groups tab to review similar photos side by side
  5. Click any photo to open the comparison view
  6. Mark photos as Keep (K) or Reject (X), then use file operations to move/trash

Keyboard Shortcuts (Comparison View)

Key Action
← → Navigate photos within group
↑ ↓ Navigate between duplicate groups
K Keep current photo
X Reject current photo
Delete Move to Trash
Escape Close comparison view

Trackpad (Comparison View)

Gesture Action
Two-finger scroll up/down Zoom in/out (0.5×–5×), centered on cursor
Click-drag Pan when zoomed in

Build from Source

Requires Swift 6.0+ and macOS 15 SDK.

# Debug build (for development)
bash build_app.sh

# Release build (creates DMG)
bash build_release.sh 1.0.0

Tech Stack

Swift 6, SwiftUI, Core Image, ImageIO — zero external dependencies.

License

Personal use. All rights reserved.

About

Macos native app for free photo culling

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors