GoodEye PitStop
Card to archive. Named, verified, done.
The fastest way to offload photos to your computer — from a single person to multiple photographers with multiple cameras over a multi-day shoot. Plug in a card and the window opens itself, with every shoot on the card already separated and whose camera shot it already known. Tick the ones you want, type a name once, and they land in your archive renamed your way, every file verified byte for byte against the card.
- Opens itself when a card goes inEven when the app is not running
- Sees shoots, not filesA month of backlog separates into jobs instantly
- Two cameras, one shootBoth bodies' cards — and the drone — pool together
- Several photographers, one dayWhose camera took what is read off the camera itself
- Knows what you already haveShoots in your archive show a ✓, not a work list
- Renames your wayFolder + filenames, with the camera's numbering kept
- Verified byte for byteEvery file hashed, written, read back and compared
- Never touches the cardRead-only, always — it stays your second copy
- Writes down every ejectWhat each card left with, in a file you can read later
- Optional second copyArchive + backup drive in one verified pass
Lightroom makes you wait to find out what's new
If your cards are like ours, they carry more than today’s work — last week’s jobs, sometimes last month’s. Lightroom’s Import starts showing thumbnails soon enough, but before you can act on just the new photos — the ones not already in your catalog — it has to churn through everything on the card. With a few thousand RAWs aboard, that is many minutes of waiting to answer a question the timestamps already answer: which shoots are on this card, and which do I already have?
That is the entire trick here. Your camera stamps every file with the moment it was shot, and shoots separate cleanly by hours of silence between them. Reading timestamps needs no photo decoding at all, so a card that takes Lightroom minutes takes this app a quarter of a second — measured on a real card holding 4,441 photos across eleven shoots.
| See every shoot on a full card with the new ones flagged | a quarter of a second | Lightroom: many minutes before you can act on what's new |
| Copy + verify a 1,049-photo job (34 GB) | about 35 seconds | at ~1 GB/s, verification included |
| Recognise a month of already-archived backlog | instant | 12 of 13 shoots flagged ✓ before you blink |
Every shoot on the card at a glance
Each shoot is a row you can flick through — a Cover Flow over the whole take, not a sample of it — with the date and time span, how many photos from how many cards, and which bodies shot it. A shoot that spans two cards and two cameras shows up as one row, because that is what it was. The shoot you have not copied yet is drawn large; the ones already in your archive sit small and grey, a record rather than a to-do list.
Shoots already in your archive are marked with a ✓ and the folder they live in — hover one and you can open it in Finder. A card with a month of backlog is not a wall of work; it is one new row and a lot of reassuring checkmarks.
Back-to-back jobs are the classic trap: a 40-minute drive between two locations of one shoot looks exactly like the gap between two clients. So the app splits eagerly and lets you group — tick two rows and they become one job with one name. There is also a split control for two jobs shot closer together than the automatic threshold notices.
Type it once, keep your conventions
Two fields: the folder name and the filename. The camera’s own numbering — Z9A_3797, a drone’s timestamped name, whatever your body writes — is always kept, because it is the thread that ties the archive back to the card, the sidecars and everything downstream. Renaming is optional per shoot; both fields remember recent shoots in a dropdown, for topping up a job you ingested last week.
A shoot you re-dump mid-event — a wedding card downloaded three times without formatting — lands in the same folder under the same names, copying only what is new. The app works out the continuation itself.
Point it at the day folder and it knows who is who
A conference, a wedding with a second shooter, a school day with three photographers: point Copy toat the day’s folder — one folder per photographer inside it — and the app reads the roster off your own folder names. Which photographer shot what is decided by the camera body’s serial number, not the card or its label, because cards get swapped between bodies and two cards can mount under the same name. It learns each camera’s owner from the day’s own folders the first time, and never asks twice.
Each dump lands in its own ingest folder inside the photographer’s folder, so a culling pass can run on it before the keepers move up — the folder is reused while it is empty, and a new one opens only when it still holds work. Every mounted card is listed, even an empty one, so a freshly formatted card says the reader works instead of looking like it was never seen.
Proven over four days at a three-photographer conference — about ten camera bodies, tens of thousands of photos, one day folder per day — which is where most of this came from.
A copy you can format a card against
Every file is hashed as it streams off the card, written to a temporary name, forced to the physical disk, renamed into place — and then read back off the destination and hashed again, bypassing the system’s caches so the check is against what actually landed on the drive. A crash or a yanked cable can never leave a file that looks complete but isn’t.
Each ingested folder carries a manifest recording every file’s hash — an audit trail you can re-verify against years later, without the card. All of that runs at about a gigabyte per second on a fast reader, verification included.
The card itself is opened read-only, always. Nothing is written to it, nothing deleted from it. It stays a true second copy until you choose to format it in the camera — and if you eject with something not yet archived, the app tells you exactly what, by name, count and date. Every eject is also written to a plain left-on-cards.txt in your destination, so “did I get everything off every card?” still has an answer once the cards are back in the bag.
It will never undo your culling
An archive folder is not a copy of the take — it is what survived your edit. You keep 124 of 403 and delete the rest, sometimes weeks later. Most ingest tools look at that folder, see 279 “missing” photos, and helpfully offer to restore every reject you spent an evening deleting.
This one reads the folder’s own ingest record and understands the difference between culled and never copied. A fully culled shoot reads as done. An interrupted copy resumes with only what is missing. And when you genuinely re-shoot at the same place days later, the new frames find their original folder and land beside the old ones under the same names.
One pass, two verified copies
Turn on the second copy in Settings and every ingest writes to your archive and a backup drive in the same pass — each file verified at both destinations against the hash taken off the card, so both copies are provably identical to the source before you ever format it. The backup folder carries its own manifest, so it stands on its own.
A backup problem — full drive, dead cable — never blocks the archive copy. The run completes archive-only and tells you what didn’t make it to the backup. Off by default; it is there when your 3-2-1 discipline wants it.
If it mounts with a DCIM folder, it works
Detection is by the card’s structure, not a list of supported cameras — a backup drive never triggers it, a camera card always does. Naming schemes are parsed per maker so the rename keeps whatever your camera wrote.
| Nikon Z (dual bodies) | in daily use — both bodies' cards pooled into one shoot |
| Canon EOS | in real use — a second photographer's bodies at a four-day conference |
| DJI drones | in real use — the drone card joins the same shoot as the ground camera |
| Hasselblad X | in real use |
| Sony, Fujifilm, others | any card with a DCIM folder works; naming schemes are parsed per maker |
| Video files | MOV and MP4 ride along with the photos |
What it won't do
It will not import into Lightroom for you — it gets the files onto your drive fast, named and verified, and you point Lightroom at the folder like always. It will not delete, format or write to a card, ever, even if you ask nicely. And it does not try to guess names from the photos: the folder and filename are yours to type, because twenty years of naming conventions have exceptions no rule engine survives.
Folders created before the app existed have no ingest record, so its culling-awareness there rests on lighter evidence. In practice this resolves itself the first time each card is formatted.
Why it's fast, for anyone who cares
The whole speed story is one measured fact: your camera sets each file’s modification time to the capture time, so working out the shoots on a card needs only a directory listing — no files are opened at all. Five thousand photos across two cards list in 24 milliseconds. Thumbnails come later, from the camera’s embedded previews, after the list is already on screen.
Copies stream with the hash computed in flight, four files in parallel — measured as the sweet spot, since the card is the bottleneck. Verification reads back from the destination with caching disabled, so it proves the platter, not the RAM. Everything runs on-device; there is no account, no telemetry, no network use at all.
Free while it's in beta
Same deal as the loupe: free while it is young. If it becomes a paid app someday it will be cheap, and everyone using it during the beta will hear about it long before anything changes.
Found a bug, or a card it mis-reads? Tell Chris — every behavior in this app came from a real shoot that went sideways.
Proven on a four-day, three-photographer job
It has been ingesting real jobs since August — dual Nikon bodies, a drone, a Hasselblad, multi-location days, mid-event re-dumps, one memorable folder that had already been culled to 124 of 403 — and in September it ran a four-day conference with three photographers and about ten camera bodies, which is where the multi-photographer mode, the per-card progress bars and the eject record all come from. It was called GoodEye Shoot Ingest until then; the name caught up. Expect rough edges; do not expect it to lose a photo. The verification pipeline is the oldest, most-tested code in it.
A photographer, not a software company
Built by Chris Schmauch of GoodEye Photography — 300+ shoots a year on the California coast — because watching Lightroom scan a full card at midnight after a three-job day finally got old. It sits on the same shelf as CullMaster Pro, the culling browser with the focus-checking loupe.