Don't let photos pile up.

Go through a shoot one photo at a time and sort it into picks and rejects.
The app groups the similar ones and finds the blurred ones.
Photos never leave your computer.

Open the app Free, no install. Works in Chrome and Edge.
inbox / DSCF0234.JPG Picked 2 JPEGs · 1 RAW Move ⏎
✓ RAW + JPEG
✕
✓ JPEG
1/500 · F5.6 · ISO 200 · +0.3EV Classic Chrome 23mm (35mm equiv.) 2026/8/23 15:12:04
R 0.4G 0B 0▲ 0.8▼ 2.1 PPick JJPEG only RRAW only XReject WUp SDown SpaceHold to zoom 100% ZClipping

Choosing which of several hundred photos to keep is a job in itself.
Starting it means waiting for a RAW converter to open, which makes it easy to put off.
So it waits, and last month's shoot is still sitting in the folder.

It all runs on the keyboard

P picks, X rejects, and W and S move between photos. Skip a photo you are unsure about and come back to it later. Holding Space magnifies the area around the cursor to check focus, and Z lays stripes over blown highlights and crushed shadows. Every action has a key, so a session runs from opening the folder to moving the files without the mouse.

PPick XReject JPick JPEG only WSPrevious / next SpaceZoom ZShow clipping
✓ JPEG
✓ RAW + JPEG
✕
PPick JJPEG only RRAW only XReject WUp SDown

Similar photos group on their own

The app puts two photos in the same group when they were taken close together in time and also look alike. A different scene shot in the same stretch of time becomes a separate group.

The app compares sharpness and finds the best photo only within a group.

Same group
Different scene

The app marks likely rejects and the best photo in each group

When the analysis for a photo finishes, a small face icon appears on its thumbnail. A green face is the best in the group, a red one is a likely reject. Both are only suggestions. The app never picks or rejects for you.

How the app tells them apart

Clipping
The app counts how much of the frame is too bright or too dark, and a photo with a large share becomes a likely reject. Z lays stripes over the blown areas. The sensitivity is adjustable in settings.
Blurred
The app measures edge contrast and compares it only within a group. A photo with less than half the contrast of the sharpest one in its group is marked as blurred. Because the comparison stays inside the group, photos of different subjects or lighting never end up judged against each other.
Missed focus and faces
Sharpness on its own can mislead: when the background is in focus, the figure for the whole frame stays high even though the subject is soft. To avoid that, the app also detects faces. On a photo with a face it measures the face alone, and without a face the sharpest area in the frame becomes the reference. It measures the full-resolution image rather than the thumbnail, so it catches a miss that only shows up at 100%.
Best in group
Within a group, the app sets aside every photo with blur, missed focus, or clipping, then takes the sharpest of what is left as the best in group.

All of the analysis runs in the background, so you never wait for it.

Nothing is uploaded

The app reads and writes the folder directly through the browser, using the File System Access API. Analysis and moving both finish on your computer instead of on a server. The page carries the face detection model, and it runs in the browser.

Pick from the JPEGs, and the RAW files move with them

What you see on screen is the JPEG. The app never opens the heavy RAW files, so the next photo comes up right away. P picks the JPEG and the RAW of the same name together. Press J to keep only the JPEG, for a shot you will not develop. Press R to keep only the RAW, for a shot you will develop.

Enter moves the picks into picked/, their RAW files into picked/raw/, and the rejects into rejected/. Only picked/ goes into the RAW converter. Those three folders are the record of what you decided.

The app only moves files, and it never deletes a photo. When a file of the same name is already at the destination, the app adds a number to the new one instead of overwriting it.

Shoot folder
DSCF0231.JPGP
DSCF0231.RAF
DSCF0232.JPGJ
DSCF0232.RAF
DSCF0233.JPGX
DSCF0233.RAF
picked/
DSCF0231.JPG
DSCF0232.JPG
picked/raw/
DSCF0231.RAF
rejected/
DSCF0232.RAF
DSCF0233.JPG
DSCF0233.RAF
RAW+JPEG as one photo
A JPEG and a RAW of the same name count as one photo and move together
EXIF panel
Exposure and lens, plus film simulation, DR, WB, and AF mode on FUJIFILM bodies
Zoom at the cursor
Space magnifies wherever the cursor sits, and moving the cursor pans
Adjustable thresholds
Clipping sensitivity, the largest time gap within a group, and grouping strength
Stopping partway is fine
A photo with no mark stays where it is, ready for the next session
What does it run on?
Chrome and Edge on Windows and macOS. The app needs an API that reads and writes folders directly, which Safari and Firefox do not have yet. Phones are not supported either.
Does it work with cameras other than FUJIFILM?
Yes. The app pairs the RAW formats of Canon, Nikon, Sony, FUJIFILM, Panasonic, OM System, PENTAX, Sigma, and other major makers, along with DNG. Sidecar files from RAW converters, such as .xmp and .dop, move to the same place as the photo they belong to. Only the film simulation display is limited to FUJIFILM bodies.
Are my photos sent anywhere?
No. Analysis and face detection both run on your computer, and nothing leaves it.
Can I undo a move?
The app has no undo for a move. The files sit in picked/ and rejected/ unchanged, so you can move them back by hand. A mark on a photo does undo, with Cmd+Z.
pickphoto.app
Open the app Free, no install. Works in Chrome and Edge.