Every camera roll contains sets of photos that were taken seconds apart: three tries at a group photo, five frames of the kids by the pond, a few angles of the same view. Each set has one frame worth keeping. The rest occupy storage on the Mac and in iCloud, and they make every later pass through the library slower, because the same moment has to be evaluated again and again.
The obvious fix is to delete the extras. The reason almost nobody does it is that deletion is the wrong primitive for the job. Triage is a judgement made quickly over hundreds of sets, and a quick judgement made against an irreversible operation is a bad trade. So people postpone it indefinitely, which is the rational response.
What Keepers does
Keepers scans the library and clusters the shots that were taken within a short interval of each other. The time gap, the minimum set size, and how far back to look are all adjustable, because the right gap depends on how you shoot. Each set is then presented as a grid at full size, which is the only way to see which frame is sharp and which one has somebody blinking.
The triage step itself is non-destructive. Keeping and rejecting are recorded as album membership in the real Photos library, not as state hidden inside the app. Nothing leaves the library until "Empty Rejected" is run explicitly, and that step is confirmed and moves items to Recently Deleted rather than removing them. Any single action can be undone from the confirmation toast or reversed in the side-by-side view.
This is the whole design argument. Because no step is irreversible, the decision can be made fast, which is what makes working through a large library tolerable at all. Each action also reports how much space it would reclaim, so the effort has a visible result.
Starring a keeper sets the actual Photos favorite flag and files the photo into the keepers album. The work is done in your library rather than in a parallel one, which means it survives uninstalling the app.
What it does not do
Keepers does not touch iPhone burst sets, which Photos already groups on its own. It does not upload anything, does not use an account, and does no processing off the device. Scanning runs off the main thread, so the interface stays responsive on libraries with thousands of photos.
Keepers 1.0 is available for macOS.