Tools · Sort
File a pile of photos into the folders you already have.
Choose the folder that holds your photo folders, then a folder of photos you never filed. Sort suggests where each one belongs: by the date it was taken where it can, and by how it looks otherwise. It also suggests new folders for groups that have none, and marks the best of each set of near-duplicates. It moves nothing itself. You accept or leave each suggestion, then save a script that you read and run.
Why this exists
I keep my photos in folders: occasions by month, and things by what they show. Over the years a Misc folder filled up with photos I never filed. Photo apps sort into their own albums, often after the photos have been uploaded. Sort works with the folders I already have, on my own computer.
What goes in and what comes out
- Goes in
- The folder that holds your photo folders, such as Photos with Events, Things and Home inside it, and a folder of unsorted photos at its top level, up to 2,000: JPEG, HEIC, PNG or TIFF. A raw file or sidecar with the same name goes with its photo.
- It reads
- The date in every photo in your folders, and how each photo looks in the folders sorted by what they show. A folder counts as sorted by date when 80% of its photos were taken within 60 days of each other, or when it sits among folders mostly named by month, such as
Events/08.09 Lincoln. - Comes out
- A suggestion for each photo, in four groups. By date, sure: only one folder has photos taken within two days of it, and the folder’s month agrees. By date, more than one folder: the folder whose photos look most alike comes first. By look: no date places it, so it is compared with the folders sorted by what they show. Not placed, with the reason. Also new folders it would make, named from what Apple’s model sees in the photos, and sets of near-duplicates with the best outlined.
- You choose
- Every suggestion starts on Move, with Leave beside it and, where Sort found more than one folder, the others in a list. You can rename a new folder, or untick photos in it.
- You can save
- A folders script, which only makes the new folders and lists every move for you to make by hand. Or a move script, which moves each photo you accepted with its raw file and sidecars. It never overwrites a file, and as it runs it writes an undo script beside itself.
Nothing is kept except small pictures of the photos, made so the page can show them, and deleted when Sort closes. Your folders, choices and results are not saved or logged.
Sort reads the pictures in Local’s index where Local has indexed your folders, and compares them more closely. After the move, Local’s and Geo’s indexes of those folders are out of date until you update them. The whole route is the playbook A pile of photos.
Models used
- Apple’s Vision, part of macOS
- By Apple, built into macOS 26 and later, so nothing is downloaded. It does three jobs. A feature print of each photo, to compare how photos look and find near-duplicates. An aesthetics score, to put the best of near-duplicates first. And labels for what a photo shows, to name new folders. Its version comes with macOS, so an update to macOS can change Sort’s suggestions. Checked on macOS 27.0.1.
- EmbeddingGemma 2, only through Local
- Where Local has already indexed your folders, Sort reads the numbers Local’s EmbeddingGemma made for each picture, and compares by those instead. Sort does not run EmbeddingGemma and does not include it. It uses them only when every folder sorted by what it shows is indexed, so no folder loses out for not being indexed. See Local’s models.
- No model
- Reading dates, the rules for sorting by date, and writing the scripts are ordinary code.
The part that reads photos runs with networking turned off. Normal use downloads nothing and sends nothing.
What has been checked
Before building Sort I checked it on my own photos, about 12,000 in folders, by hiding a tenth of the ones already filed and asking where they belonged. By date, it put 92% of 845 event photos in the right folder first, and all 541 it was sure about. By look, Apple’s model put 73% of 44 photos in the right folder first, and EmbeddingGemma 84%. Both had the right folder in their first three for about 95%. That look sample is small.
I then ran Sort on my own Misc folder of about 160 photos. Only Misc had a Local index, so it compared by look with Apple’s model alone. In an earlier run on the same folder, most of what it placed by look went to one folder, Home.
Automated tests run on made-up folders of drawn photos, including a real run of the move script and its undo.
These are counts from one person’s photos on one computer, not a measure of how often Sort is right.
Known limits
- By look is the weakest route. Read every one of those suggestions before you save a script.
- It does not tell people apart. Untick folders sorted by who is in them, such as People.
- A photo with no date, which nothing looks like, is left where it is.
- Folder names suggested from Apple’s labels are often odd. Expect to rename them.
- It reads the first two levels of your folders, such as Events/08.09 Lincoln, and the top level of the unsorted folder.
- It needs a Mac with macOS 26 or later.
Availability
Not available to download yet. Sort runs in the development Kettle app on my Mac, and as its own page. There is no public installer or source download at present.