Reference

Safety guarantees.

SpeedCull touches your photos. These are the rules we’ve built the app around — what we never do, what we always back up, and how to recover if something goes wrong. Each rule is enforced in code, not just policy.

The hard rules

RAW files are never modified

Ratings live in XMP sidecars only. The Sync screen displays RAW files to modify: 0 as a permanent reminder.

Existing XMP is backed up first

Before SpeedCull updates a sidecar, a copy lands in .SpeedCull/backups/xmp-before-sync/ with a timestamp.

Only xmp:Rating is touched

Every other namespace, attribute, and child element is preserved. Locked in by an automated round-trip test.

Read-only handling

If a RAW or its XMP sidecar is read-only — common for archived shoots or files on a locked SD card — SpeedCull does not silently skip past it. The sync action is recorded as skipped with a separate read-only count visible on the Sync screen. Nothing is overwritten without permission, and you’re not left wondering why a rating didn’t propagate.

What SpeedCull writes (and where)

WhereWhatWhen
.SpeedCull/project.sqlite The catalogue: image records, ratings, preview status, sync log, focus metadata cache Continuously, as you scan, generate, and rate
.SpeedCull/previews/{compare,full,native,focus-crops}/ JPEG previews and AF crops During Generate Previews; AF crops on demand from Loupe
.SpeedCull/backups/xmp-before-sync/ Pre-sync XMP backups, one per modified sidecar per sync run During Sync to XMP, before any modification
.SpeedCull/logs/ Sync logs and diagnostics During sync runs and other long operations
Sibling <name>.xmp next to each RAW Standard XMP sidecar with xmp:Rating and xmp:CreatorTool Only during Sync to XMP, only after you confirm

What SpeedCull never writes

How to undo a sync

Every modification to an existing XMP file is preceded by a backup. The Sync screen has a Restore from backup action that walks the backup directory and lets you return any sidecar to its pre-SpeedCull state. Restore actions are themselves logged with action restored, so you have a full audit trail.

How to fully reset

To remove SpeedCull from a shoot completely:

  1. Cleanup screen → Delete everything nukes the entire .SpeedCull/ folder
  2. Or simply rm -rf .SpeedCull/ from the shoot directory in Terminal

Your RAW files and any XMP sidecars (whether SpeedCull wrote them or not) remain exactly where they were. SpeedCull leaves no other artifacts on your system — there’s no central database, no preferences file linking back to your shoots, nothing in Application Support.

Things that aren’t guaranteed

For honesty:

One more sanity check. Every claim on this page is backed by an automated test in the SpeedCull repository (see Tests/SpeedCullTests/). If anything described here doesn’t match the app’s behaviour, it’s a bug — file an issue.