ShotGrab 0.3 is out. Its headline is the first use of AI in the app, and we kept it deliberately small: the model runs on your Mac, it handles two jobs where a wrong answer is cheap to spot, and it never gets to state anything the app has not already counted. The rest of the release is the work around the copy itself. The short list is on the changelog.
Describe the project, skip the form
In the New project sheet there is now a free-text field. Write something like "wedding for the Rossi family on the G-Drive, one folder per day, RAW only" and ShotGrab fills in the name, the destination, the file types to import or leave out and how to split by day. Nothing is created until you press the button: it fills the fields, you check them.
It uses Apple Intelligence through the Foundation Models framework, so the text never leaves the Mac. It needs macOS 26 on a Mac that supports Apple Intelligence. On any other Mac the field simply does not appear, and the sheet works as before.
The model does not do all of it. It reads the name, the destination and the folder structure. File types, "RAW only", separate photo and video folders and the day split are read by ordinary, testable code, because in our tests a single big request made the model invent categories nobody had mentioned. Any value the model returns has to appear in your sentence, or it is dropped. A destination is only accepted if it is a disk that is mounted or a folder in your home directory, never a path made up on the spot.
It is not perfect. On our own test sentences it gets most of them right, and when it misses it is usually by leaving the name empty or short. That is why you confirm before anything is saved.
Hover a project, read what it does
Point at a project and a small card tells you, in one sentence, what it will do: "Imports photos and videos except JPEGs into /G1/Test, split by date and camera." If the path has fixed folders you typed by hand, such as "Leonardo phase 3", the sentence names them too. It is written in the language of your Mac.
It follows the same rule as the mascot: the model only picks the words, while the facts (destination, file types, split, fixed folders) are counted by the code from the project's settings, and a sentence that leaves one out or comes out in the wrong language is thrown away. If no good sentence comes out, the card shows nothing. It needs the same Macs as the project field, and the sentence is kept until you change the project.
The mascot tells you how the import went
When a card finishes, the mascot says one sentence: "I copied 512 clips from 3 cameras, sorted by date." When an import stops for a known reason (the card was unplugged, the destination is full, not writable or unreachable), it explains it in plain words and says what to do, above the technical message that was already there.
The model never knows anything the app has not counted. Every number in the sentence comes from the copied records, not from the model. A second disk is only mentioned if every file is really on it. Before a sentence reaches the screen, a check without any model verifies the language, that each figure is among the facts and tied to the right noun ("4 cameras" is not "4 days"), and that nothing unsupported slipped in, such as praise, speed claims or an eject that did not happen. If something is wrong it tries twice, then says nothing.
Silence is the designed behaviour. A wrong sentence about a backup costs more than no sentence, and the banner and the technical message already tell the full story. In our runs on the real model, the check caught things like "excluding 3 files" where the fact was "3 files failed". The narration works in Italian and English with a hand-written check, and in the other languages where Apple's model supports them, using a stricter route. Polish, Hindi and Thai stay quiet for now.
When the card is done, open the next app
The new Automations section in Settings hands the import folder to the app
you work in next. You turn each one on in Settings, then per project. The folder sent is
the one at the level of your {INPUT} variable, for example the shoot, not the
whole archive, and you can change it as a path in the project.
- DaVinci Resolve: asks for a project name (Return reuses the last one), then creates or opens that project and imports the folder with bins that mirror your subfolders, so relinking keeps working. It needs Resolve Studio with External scripting using set to Local in Resolve's preferences; ShotGrab checks the connection in Settings, but cannot change another app's preferences.
- Lightroom Classic: opens the Import window already pointed at the new folder. You press Import.
- Photo Mechanic: opens the folder in the app, ready to cull.
The automations start once, when the last card of a session is done, not once per card. Nothing is added to a library behind your back.
Smaller changes
- Faster imports: the card is read while the previous blocks are still being hashed and written, with the same verification of every file.
- A quiet notice in the home when you have used 80% of the free quota, with the date when more frees up. Nothing blocks you before the quota is actually used up.
- Cards ejected after an import can still be marked for formatting, and the Disks sidebar shows "Ejecting…" until the card is really unmounted.
- The Recent files list shows the full destination folder of each file, and clicking it reveals the file in Finder.
- Three new languages: Traditional Chinese, Dutch and Thai, for 13 in total.
What did not change
Every file is still copied to a temporary name, read back from the destination and checked with SHA-256 before it takes its real name. Nothing is ever deleted from your card, and duplicates are still skipped. The AI features sit on top of that and cannot touch it: they write sentences and fill form fields, and they do not decide what gets copied. If you want the reasoning, how checksum verification works is written up separately.
ShotGrab is a free download, with 128GB every 14 days and every feature unlocked. The Lifetime license is €39 until 30 November, then €69.
How to update. ShotGrab checks for updates on its own and asks before it installs one. It never restarts while a copy is running. Prefer to check now? Use Check for Updates in the ShotGrab menu.