Getting started.
From zero to your first cull. SpeedCull is a single macOS app — no external services, no accounts, no cloud sync.
On this page
System requirements
| macOS | 14.0 (Sonoma) or later |
|---|---|
| CPU | Apple Silicon or Intel |
| Disk | Plan for ~4 GB of preview cache per 5 000 24 MP RAWs (Compare + Screen). Optional Native tier adds ~25 GB. |
| RAM | 8 GB minimum, 16 GB recommended for large shoots |
| Optional | ExifTool — required only for AF point parsing in Focus Monitor |
Install
SpeedCull is in pre-release. The bundled SpeedCull.app isn’t signed or notarized yet,
so during this period you’ll need to build from source or accept an unsigned build.
From source
git clone https://github.com/rawexp/SpeedCull.git
cd SpeedCull
xcodegen generate
xcodebuild -project SpeedCull.xcodeproj -scheme SpeedCull -configuration Debug build
The resulting SpeedCull.app lands in
~/Library/Developer/Xcode/DerivedData/SpeedCull-*/Build/Products/Debug/.
Drag it to /Applications if you want.
You’ll need XcodeGen:
brew install xcodegen
ExifTool (for AF metadata)
Focus Monitor uses ExifTool to read autofocus metadata from your RAW files. Without it, Focus Monitor falls back to a centre crop instead of an AF-aware crop.
brew install exiftool
For distribution. A future build will bundle ExifTool inside
SpeedCull.app/Contents/Resources/exiftool/ so users won’t need Homebrew.
For 0.1, install via Homebrew if you want AF-point crops.
Open a folder
Launch SpeedCull and click Open Folder. Choose the directory containing your RAW files — this could be:
- A single shoot folder (e.g.
~/Pictures/2026-04-25 Wedding/) - A card backup that contains multiple sub-folders
- The top-level
~/Pictures/if you want to scan everything (slower; fine for a one-off)
SpeedCull recurses into subdirectories but skips:
- Hidden folders (anything starting with
.) - The
.SpeedCull/directory it manages itself
The .SpeedCull/ folder
When you open a folder for the first time, SpeedCull creates a hidden directory next to your RAWs. This is where it keeps everything project-related, so each shoot is fully self-contained:
your-shoot/
├── DSC0001.ARW
├── DSC0002.ARW
├── …
└── .SpeedCull/
├── project.sqlite ← the catalogue
├── previews/
│ ├── compare/ ← 1 920 px JPEGs
│ ├── full/ ← 3 840 px JPEGs (called "screen" in the UI)
│ ├── native/ ← optional, off by default
│ └── focus-crops/ ← AF-aware 100% crops
├── backups/
│ └── xmp-before-sync/ ← every XMP we touched, timestamped
└── logs/
Self-contained & portable. Everything SpeedCull knows about a shoot lives in
this folder. Move the shoot to another drive and the project moves with it.
Delete the .SpeedCull/ folder and you’ve fully reset SpeedCull for that shoot —
your RAW files and any XMP sidecars are untouched.
Your first scan
With a folder open, SpeedCull lands you in Scan (the first workflow phase). Click Start scan. SpeedCull walks the folder tree and indexes every supported RAW file. On a typical SSD, ~5 000 RAWs takes a minute or two.
The Scan summary reports:
- RAW files found — what SpeedCull will work on
- Folders scanned — useful when you point at a card backup with many sub-folders
- Existing XMP sidecars — Lightroom-style sidecars we’ll back up before touching
- JPEG companions — RAW+JPEG pairs (detected, not yet synced to)
- Changed since last scan — files where bytes or modified-time moved, queued for re-preview
What next
After your first scan:
- Move to Generate Previews in the sidebar to render JPEG previews — this is where the time goes; subsequent culling is fast because previews are pre-rendered. See Preview tiers for sizing, quality, and storage trade-offs.
- Once previews are ready, use Cull to make rating decisions. Start with the Loupe view for a single image at a time, or jump straight into Pass 1 from the pass control bar.
- When you’re happy with the ratings, Sync to XMP writes them to sidecar files that Lightroom Classic and Bridge will pick up. See Lightroom sync.