Sentinel
Comprehensive reference for every feature, setting, and behavior in Sentinel.
No matching questions.
Sentinel is a native macOS menu bar app for photographers and videographers. It automatically detects when a camera card or USB device is connected, imports your media, organizes it into structured folders, renames your files using EXIF metadata, and guides you through a fast fullscreen culling workflow to identify your keepers. It runs silently in the background. No Dock icon, no open windows. Until you need it.
Any photographer or videographer who shoots regularly and needs a repeatable, automated workflow. If you're tired of manually dragging files off cards, renaming folders by hand, or losing track of which shots you want to edit, Sentinel handles all of that.
Sentinel does not edit photos or videos. It is not a DAM (Digital Asset Manager), a cloud sync tool, or a library manager. It handles the import → organize → rename → cull workflow and hands off to your editor of choice.
No. Sentinel is a one-time purchase from the Mac App Store.
No. Sentinel is fully offline. No cloud, no account, no sync.
Sentinel lives in the macOS menu bar. There is no Dock icon. Click the menu bar icon to access all controls.
macOS 13.0 Ventura or later.
Sentinel uses Apple's DiskArbitration framework to monitor for new volumes. When you plug in an SD card, CFexpress card, or any storage device with a DCIM folder, Sentinel detects it automatically.
Sentinel uses Apple's ImageCaptureCore (ICCameraService) to detect cameras connected via USB as PTP/MTP devices. Such as mirrorless cameras connected directly via USB-C. When a PTP camera is detected, Sentinel opens a session, enumerates all files on the camera, checks for multi-date cards, then downloads files to a temporary staging directory before running the full import pipeline (EXIF routing, folder naming, file renaming). A floating progress panel shows status throughout: file discovery count during enumeration, determinate progress bar during download, and deletion progress during card erase. PTP import is slower than card reader import (PTP is a serial protocol), but the full pipeline works end-to-end.
Depending on your Import settings, Sentinel will either import automatically, ask you first, or do nothing until you trigger it manually from the menu bar.
A shoot name is a short label you give to an import session. For example, "Yellowstone" or "Wedding-Smith". It becomes the {SHOOTNAME} token used in folder and file naming. When import is triggered, Sentinel prompts you for a shoot name.
Sentinel pre-scans your card by filesystem creation dates. If files span multiple calendar days, a "Multiple dates detected" dialog appears with two options:
{DATE} in the root folder pattern). Individual file dates from EXIF are still used for file-level {DATE} tokens.If only one date is found, Sentinel uses the standard shoot name prompt with no date picker.
Yes. Every shoot name field in Sentinel is a combo box. Type a new name to create a new shoot, or click the dropdown arrow (or start typing) to search existing shoots by substring. If you select an existing shoot, files are merged into that folder using the proper existing-shoot import path. This works in single-date imports, multi-date One Shoot, and multi-date Separate Shoots. When adding to a shoot that has an existing culling session, the session is marked incomplete and culling resumes at the first newly added file.
Sentinel imports a comprehensive range of photo and video formats across all major camera manufacturers. See the Supported Cameras & Formats section below for the full list.
Sidecar files are companion files generated by cameras alongside your media. For example, .xmp color grading sidecars, .srt GPS/telemetry files from DJI drones, .hvrlog flight logs from Hover Air, and .gpx GPS tracks.
To import them, enable Import sidecar and telemetry files in Settings → Import. When on, Sentinel imports .xmp, .srt, .lrv, .thm, .hvrlog, .log, .csv, and .gpx files alongside your primary media. Default: off.
All modes will ask for a shoot name before importing.
The root folder where all imported media will be organized. Sentinel creates shoot subfolders inside this location. You can change the destination at any time. See "What happens when I change my import destination folder?" below for how Sentinel handles a new destination that already contains shoots.
When you point Sentinel at a destination that already contains shoot subfolders (for example, switching from a desktop test folder to an external archive drive), Sentinel shows an Existing Shoots Found dialog listing every pre-existing folder with media files. Each folder has a checkbox:
Click Apply to confirm your choices. Click Cancel to fall back to adopt-all behavior. This prevents Sentinel from flooding you with per-folder import prompts when you switch to a drive that already has dozens or hundreds of organized shoots. Sentinel parses the folder name for a date prefix (e.g. 2026-03-20-Mountains → date 2026-03-20, shoot name "Mountains"); if there's no date prefix, the folder's creation date is used.
When enabled, Sentinel skips files that already exist at the destination (matched by filename). This prevents re-importing the same files if you plug in a card twice.
What Sentinel does after a successful import:
Yes. You can drag folders directly into your import destination in Finder and Sentinel will detect them automatically, running the exact same import flow as a USB/SD card. Shoot name dialog, file renaming, folder organization. Sentinel recursively scans nested subfolders, so folders with internal structure (subfolders within subfolders) are fully imported. Multiple folders dragged at once are batched. You can also drop individual files into an existing shoot folder. Sentinel detects them, renames them using the shoot's naming pattern, and moves them into the correct camera subfolder automatically.
Controls what Sentinel does with the card after a successful import:
Erase only executes after a fully successful import. Cards are never erased on failed or partial imports. For separate-shoot imports (multi-date), the card erase prompt appears once after all shoots are imported, before the culling prompt.
Sentinel uses a token-based pattern system to build folder paths automatically. You define a pattern using tokens. Placeholders that resolve to real values at import time. For example, {IMPORTDATE}-{SHOOTNAME}/{CAMERA} might resolve to 2026-03-04-Yellowstone/FujifilmXE5.
| Token | Resolves to | Example |
|---|---|---|
{IMPORTDATE} | Date import was run (YYYY-MM-DD) | 2026-03-04 |
{SHOOTNAME} | Shoot name you entered | Yellowstone |
{YEAR} | Year from import date | 2026 |
{MONTH} | Month (zero-padded) | 03 |
{DAY} | Day (zero-padded) | 04 |
{CAMERA} | Camera model from EXIF (subfolder only) | FujifilmXE5 |
{MAKE} | Camera manufacturer (subfolder only) | Fujifilm |
{DATE} | Capture date from EXIF (subfolder only) | 2026-03-03 |
{RESOLUTION} | Megapixels or video resolution (subfolder only) | 40MP / 4K |
{FILMSIM} | Fujifilm film simulation (subfolder only) | Classic_Chrome |
Tokens marked subfolder only vary per file and must appear after a / in the pattern.
Fujifilm cameras (X-E5 and other modern Fuji bodies) write the active film simulation into the EXIF MakerNote for each shot. Sentinel reads this and exposes it as {FILMSIM} so you can route files into subfolders by color profile. Example: {IMPORTDATE}-{SHOOTNAME}/{CAMERA}/{FILMSIM} → 2026-04-14-Harbor/X-E5/Classic_Chrome. Files from non-Fuji cameras, or RAW files where the MakerNote isn't exposed, resolve to UnknownFilmSim. Recognized names include Provia, Velvia, Astia, Classic_Chrome, Classic_Neg, Pro_Neg_Std, Pro_Neg_Hi, Eterna, Eterna_Bleach_Bypass, Nostalgic_Neg, and Reala_Ace.
{IMPORTDATE}-{SHOOTNAME}/{CAMERA}
After culling, Sentinel can copy (or move) your keeper files to a designated "Ready To Edit" folder. A clean handoff point for Lightroom, Capture One, or any other editor. This folder has its own naming pattern, destination, and copy vs. move setting.
When you toggle this setting, Sentinel offers to retroactively update all existing shoots. The confirmation dialog shows exactly how many files would be affected and how much disk space would be freed or consumed. So you can make an informed decision before committing.
Sentinel renames your files using the same token system as folder naming. You define a pattern and separator, and Sentinel builds the new filename from EXIF data at import time.
| Token | Resolves to | Example |
|---|---|---|
{DATE} | Capture date from EXIF | 2026-03-03 |
{IMPORTDATE} | Date import was run | 2026-03-04 |
{SHOOTNAME} | Shoot name | Yellowstone |
{CAMERA} | Camera model | FujifilmXE5 |
{MAKE} | Camera manufacturer | Fujifilm |
{LENS} | Lens model from EXIF | 18-55mm |
{RESOLUTION} | Megapixels or video resolution | 40MP |
{FILETYPE} | File extension, uppercase | RAF |
{SEQ} | Sequence number, zero-padded | 0001 |
{ORIGINALNAME} | Original filename without extension | DSC_0047 |
{YEAR} | Year | 2026 |
{MONTH} | Month (zero-padded) | 03 |
{DAY} | Day (zero-padded) | 03 |
{DATE}_{SHOOTNAME}_{CAMERA}_{SEQ}
Example output: 2026-03-03_Yellowstone_FujifilmXE5_0001.RAF
Underscore _, hyphen -, period ., or none.
Yes. File renaming can be toggled off independently for imported files and for Ready To Edit files. When disabled, original filenames are preserved.
You can apply a different naming pattern to your Ready To Edit copies. For example, a cleaner name stripped of camera model info. This is independent of the import file naming setting. Default: off (use original filename).
Culling is the process of reviewing your shots and deciding which ones to keep, discard, or flag for later. Sentinel's culling UI is a fullscreen, distraction-free interface built for speed.
After import, Sentinel can automatically open the culling UI (depending on your post-import setting), or you can launch it manually from the menu bar by selecting a shoot.
Press Escape, use the standard macOS fullscreen exit gestures (swipe down with three fingers, or click the green button in the top-left corner on hover), or click the Done button in the bottom-right corner of the culling HUD. The Done button is always visible during culling. You do not need to tag every file before it appears.
Grid view is a contact sheet of the whole shoot — every photo at once, instead of one at a time. Click the grid icon next to the photo counter in the top-right of the culling HUD to open it. It is a second view of the same culling session, not a separate mode: whatever you do in the grid is the same session, with the same tags.
Use the slider in the bottom-right of the grid, or the − and + buttons beside it. Sizes range from 60 to 500 points; each step of the buttons is 30. Your chosen size is remembered between sessions and app launches.
A single segmented control with live counts: All, Keepers, Maybes, Discards, Edited. It is always visible and it is the same control in both the grid and the fullscreen loupe, so "show me just the keepers" is one click and it never hides. Scoping affects both what you see and what ←/→ navigation steps through.
Edited is a per-shoot progress lens showing how far the edit hand-off has gotten on this shoot. The permanent cross-shoot archive is Muninn, deliberately not duplicated here.
No. The photo stays exactly where it is and its dot changes color. The visible set only refreshes when you switch scopes. This is deliberate: photos vanishing mid-cull would reflow the grid under your cursor and move the next photo out from under you. Switch away and back to refresh the set.
If you scope to something with no photos in it, you get a quiet "No maybes in this shoot" message with a Show All button, in both the grid and the loupe.
In Edit Keepers mode the set is frozen even harder: the scope means "the keepers you brought into this lap," not "whatever is tagged keep right now." If you change your mind about a keeper mid-lap and discard it, it stays visible and reachable so you can undo a mis-tap. The set is released when you exit the lap.
Yes, all of them, on whichever photo is selected. Click a photo to select it (a ring in your system accent color marks the selection), then Keep / Maybe / Discard / Undo work exactly as in the loupe, as do your external editor shortcuts. All four arrow keys navigate the contact sheet: left and right step one cell, up and down move a full row.
Press Select in the bottom-right of the grid. The grid opens clean with no checkboxes until you do. In select mode, clicking anywhere on a cell toggles its checkbox, and you can click and drag to draw a marquee across a run of photos (each drag adds to what is already selected). An action bar appears with:
Press Done in that bar to leave select mode.
Yes. With photos selected, pressing an external editor's shortcut opens every selected file in that editor in a single launch. This is deliberate power behavior: it works at any point in the cull, and with nothing selected the shortcut opens just the current photo as usual. In the finishing stage — the post-Done grid, or Edit Keepers mode — the select bar also grows explicit Open N buttons, one per configured editor, plus a bulk Finish As-Is. In Edit Keepers the culling-stage tools (Virtual Bracket, Purge) are hidden, because bracketing and purging belong to the cull, not the hand-off.
Double-click it. Single-click only selects. To go back to fullscreen without picking a specific photo, click the photo icon in the bottom-right.
Yes, that is the point of it. If you scope to Keepers and then go fullscreen, your ◀ ▶ navigation stays within the keepers and the filmstrip shows only keepers. The scope control itself stays visible at the top of the screen, so you always know what you are looking at and can widen it in one click.
Settings → Culling → Open shoots in offers Fullscreen photo (the default), Grid (contact sheet), or Whichever I used last.
Yes, bottom-right. It behaves exactly as in fullscreen — the first press brings up the culling summary.
The filmstrip is a horizontal strip of thumbnails at the bottom of the culling view. Each thumbnail carries a small verdict dot in its corner (green for Keep, amber for Maybe, red for Discard) and the current frame is ringed in your system accent color. Discarded thumbnails appear very dark. Click any thumbnail to jump directly to that file. The filmstrip slides up from the bottom after your first navigation and slides back down when the HUD fades to idle. Thumbnails preload in the background starting from your current position outward.
When you first open the culling window, Sentinel displays a keybinding reference on the left side of the screen showing all available controls. This instructions overlay disappears permanently (for that session) the moment you press your first navigation key, replaced by the normal HUD and filmstrip.
The top bar carries the shoot name, filename, film simulation, any technical signal capsules (SIM BRACKET, BLOWN, HIGH ISO), and a small line naming where the file currently lives on disk: IN IMPORT FOLDER, KEEPER — COPIED TO READY TO EDIT, or EDITED — IN FINISHED. Sentinel moves files for you, so that line exists to keep those moves legible. The Shoot Scope sits in the center and the counter, grid button and film-sim filter sit on the right.
When you tag a photo, a small glass pill appears at the bottom of the screen for about two thirds of a second (KEPT, MAYBE, DISCARDED). The permanent record is the dot on that photo's filmstrip and grid cell. Earlier versions flashed a very large colored icon over the middle of the photo; that is gone, because the photograph should be the only loud thing on screen.
| Action | Default Key |
|---|---|
| Keep | A |
| Maybe | S |
| Discard | D |
| Previous | ← |
| Next | → |
| Toggle grid / loupe | G (or a quick Shift tap) |
| Undo | Z |
| Rotate | R |
| Zoom In | + |
| Zoom Out | - |
| Zoom Reset | 0 |
Verdicts live on the left-hand home row (A approve, S second look, D discard) so your right hand stays on the arrows. In the fullscreen loupe, ↑ also keeps and ↓ also discards, because ←/→ already handle navigation there. In the grid, all four arrows navigate the contact sheet in two dimensions instead.
A quick tap of Shift toggles between grid and loupe, so you can jump to the full-size frame to check focus and come straight back without leaving the home row. Holding Shift as part of any other shortcut does nothing.
External editor keybindings are configured per-editor in Settings → Editing → External Editors (default: first editor is Space).
If you are upgrading from an earlier version: users still on the old ↑/↓/M defaults are moved to the new model automatically. If you had customised your keys, your custom bindings are preserved untouched.
In the grid, yes: enter Select mode and use the batch Keep / Maybe / Discard buttons, which work on one photo or many. The fullscreen loupe is keyboard-first by design and no longer carries large clickable verdict icons.
Yes. Every keybinding is fully remappable in Settings → Culling.
Yes. Culling sessions are saved continuously to a sentinel_session.json file inside your shoot folder. If you close the culling window or quit Sentinel mid-session, your progress is preserved.
Sentinel checks for a saved session and branches based on whether that session was completed:
Start Fresh is a full reset. Completely back to zero. All tags are cleared, the session resets to the first file, and any files that were already copied or moved to your Ready To Edit folder during the previous pass are rolled back:
After rolling back the files, Sentinel also deletes any empty Ready To Edit subfolders that were created for the session. It will not delete the Ready To Edit root folder or any folder that still contains files.
One exception: if you ran a Purge before choosing Start Fresh, any files that were purged cannot be recovered. Start Fresh restores what it can. Purged files are simply gone.
Yes. Sentinel plays video files inline in the culling UI using AVPlayer. A progress bar shows playback position.
RAW files are displayed using downsampled preview images generated from the embedded JPEG previews in the RAW file. This keeps culling performance fast even with large RAW files.
If you remove a Keep tag from a file. By tapping the Keep icon again to revert it to unreviewed, or by tagging it as Discard or Maybe. And that file was already copied or moved to your Ready To Edit folder, Sentinel immediately rolls it back:
This happens silently and immediately. Removing a Keep tag is an explicit action that implies the file should no longer be in the Ready To Edit folder.
From the culling UI, you can open the current photo directly in an external editor with a single keypress. Sentinel supports unlimited external editors. Each with its own app and keybinding. Configure editors in Settings → Editing → External Editors. The first editor defaults to Space; additional editors require you to set a keybinding. Click + to add more editors, and the − button to remove them. Because the culling window runs in a native macOS fullscreen space, editors open in their own space automatically. Swipe back to return to culling.
Yes. Press + to zoom in (1.5x steps, up to 5x) and - to zoom out (back to fit). Press 0 to instantly reset zoom to fit and clear any pan offset. When zoomed in, click and drag to pan around the image. Zoom and pan reset automatically when you navigate to the next or previous file. All three zoom keybindings (+, -, 0) are remappable in Settings → Culling.
Yes. Press R to rotate the current image 90° clockwise. Rotation resets when you navigate to another file. The keybinding is remappable in Settings → Culling. Note: EXIF orientation is applied automatically. The R key is for additional manual rotation on top of that.
When enabled, videos restart from the beginning when they reach the end. When disabled, the video pauses on the last frame. Press your Next key to advance to the next file. Default: on.
After finishing a culling pass, the summary screen offers a "Review Maybes" button. This enters a focused mode that only shows files tagged as Maybe. The counter updates to show your position within the maybes (e.g. "2 / 5" with a "Reviewing Maybes" label). Retagging a maybe (to Keep or Discard) automatically advances to the next one. When all maybes are resolved, the summary reappears.
When you press Done, Sentinel shows a quiet summary: a CULLING COMPLETE label, the shoot name, your keeper count set large in a serif face, a single line of totals (N reviewed · N edited · N unreviewed), and a row of verdict dots with counts.
The one prominent action is Edit Keepers →. Below it sit the secondary actions: Virtual Bracket, Review Maybes (when you have any), Back to Grid, AI review (when analysis has run) and Purge. The Purge label reflects your current purge target setting. If auto-purge is enabled, it is replaced with a "Purging discards…" indicator. A quiet Done for now closes the session.
Underneath, a short Recent Actions trail lists what Sentinel last did to this shoot on disk (renamed, purged N files) so nothing feels hidden.
Whatever is on screen. In practice that means the keeper copy in your Ready To Edit folder rather than the imported original, so a save-in-place editor (Pixelmator, Photoshop, Affinity) writes the keeper while your imported original stays pristine as a backup. Keepers are copied to Ready To Edit by default, so the import folder always retains the untouched original.
Once a photo is finished, the culling view shows its Finished version — and the editor shortcut opens that same finished file, so you continue the edit you can see rather than starting a second one from the unedited keeper. The full order is Finished, then Ready To Edit, then the original.
An optional per-shoot output folder for your finished edits, separate from the Ready To Edit (keeper) folder. Enable it in Settings → Editing, where it has its own destination (same folder as import, or a custom location) and its own token pattern (default {DATE}-{SHOOTNAME}/Edited). Sentinel creates it when you import or open a shoot. It is designed so a portfolio app can watch it and only ever see finished work.
Two ways, automatically, depending on your editor. Save-in-place editors (Pixelmator, Photoshop, Affinity): open the keeper, edit, and save. Once the file stops changing, Sentinel moves it into the Edited folder for you (an atomic copy, so nothing half-written is ever visible). Export editors (Lightroom, Capture One, Luminar): open the keeper, edit, and export straight into the Edited folder. Sentinel detects the new file and links it to the keeper, matching by filename regardless of case or extension. Either way the keeper is marked edited, an edited badge appears on its filmstrip thumbnail, and the culling view switches to showing the edited version.
Only if you explicitly ask for it. The automatic pipeline only ever promotes a file after it has actually been edited, so a watched portfolio folder stays clean by default. Sentinel never seeds an unedited copy there on its own.
The single exception is Finish As-Is in Edit Keepers mode, which is a deliberate decision on your part that a photo is finished as shot. That is your call to make, not an accident.
After culling, the summary screen offers Edit Keepers →. It enters a focused lap through only your keepers so you can open each one in your editor. The HUD shows your position (e.g. "3 / 12") and an "edited N of M" count. Exit returns you to the summary. This mode was called Review Keepers in earlier versions; the name changed because its real job is the edit hand-off, not a second opinion.
The Shoot Scope is pinned to Keepers for the whole lap, in both the grid and the loupe. The other scope chips grey out rather than disappearing, so it stays obvious that you are deliberately narrowed rather than looking at a broken control. You can also enter the lap straight from the reopen dialog on an already-culled shoot, via its Edit Keepers button.
A finished photo is marked with a FINISHED stamp — a check and a tracked mono word in dark glass, in the loupe corner and on the grid cell. The photo itself is never dimmed or covered: it is done, not deprecated.
Finish As-Is sends the current keeper to the Edited folder exactly as shot, then advances. Because Sentinel detects real edits by itself, this button is for the photos that do not need editing at all. If the photo has already been edited and promoted, or you have no Edited folder configured, the button simply reads Next →. It also works in bulk: in the Edit Keepers grid, press Select, choose the frames that need no editing, and press Finish As-Is in the action bar.
Cull → Edit Keepers → open a keeper in your save-in-place editor → edit and ⌘S → Sentinel moves the finished file into the Edited folder → on to the next keeper. Your imported original stays untouched the whole time.
Point your catalog or editor at the Ready To Edit (keeper) folder → edit → export your finished files into the Edited folder → Sentinel detects each one and marks the keeper edited. Your portfolio app sees only finished work.
Purge permanently removes files you've tagged as Discard (and optionally Unreviewed) from your shoot folders, reclaiming storage space. You control exactly what gets purged and when.
By default, purged files are sent to the macOS Trash rather than deleted immediately, giving you a safety net. You can change this in Settings → Purge.
If the purge went to the Trash, you can undo it: the Recent Actions trail on the culling summary shows the purge with an UNDO link that moves those files back out of the Trash and into the shoot. If you turned off "Send purged files to Trash," the deletion is permanent and the trail says so plainly rather than offering an undo it cannot honor.
From the menu bar → Purge, from the post-culling summary screen, or from Settings → Purge → Purge button. Each entry point works slightly differently:
The Purge list only shows shoots where culling has been completed. Where you pressed Done and reached the summary screen. Incomplete sessions (exited mid-cull via Escape) do not appear in the Purge list. This is intentional: it prevents accidentally purging discards from a shoot you haven't finished reviewing.
When enabled, Sentinel shows a confirmation sheet with file count and storage size before executing any purge. Default: on.
When enabled, files are moved to macOS Trash instead of being permanently deleted. Default: on.
When enabled, Sentinel automatically purges discarded files when a culling session ends. Default: off.
The Storage section in Settings → Purge shows a stacked bar of disk space used across all your recent imports, broken down by Keep, Ready To Edit, Maybe, Discard and Unreviewed, with percentages on the bar and sizes in the legend.
The bar is deliberately monochrome apart from one earned exception: Discard, the only category that is asking you to act, is red. Everything else steps through greyscale so the reclaimable space is the thing your eye lands on.
It refreshes automatically when the settings window gains focus, so after finishing a culling session just click back to the settings window to see updated numbers.
When you open Purge from the menu bar, the shoot picker now includes a "Purge All…" button. This lets you purge all shoots at once. You choose what to purge (discards, unreviewed, or both) via a radio picker, see the total file count and size across all shoots, and confirm before executing.
When enabled, Sentinel starts automatically when you log into macOS and begins monitoring for connected devices immediately.
Settings → General → App version is shown in the General tab.
Yes. The Settings window follows macOS light or dark mode. The culling window stays pure black and the menu bar popover stays dark on purpose: culling is an immersive surface where the photographs should be the only bright thing, and the popover is chrome hanging off a dark menu bar.
Every Settings pane carries a persistent footer: the app name and version on the left in a monospaced face, and the FORGE-MADE. stamp on the right. It is the same footer every app from The Forge carries.
Yes. Settings → General → About Sentinel… opens it. It plays a short animation called the Quench once per open (the forging metaphor: ignite, cherry heat, an iron-blue pass, then settle) and then rests on the app mark, the version, the FORGE-MADE. stamp, the attribution line, and a short credo. A REPLAY link in the corner plays it again.
Every app from The Forge ships one. Sentinel's lives in the Settings window and answers to a certain famous ten-key sequence from a 1986 game controller. It never swallows your keystrokes, holds nothing in memory, and disappears on its own.
The Forge logo and "FORGE-MADE." stamp appear at the bottom of the General settings tab. This is the hallmark of The Forge. The software studio behind Sentinel and Muninn. Every app shipped by The Forge carries this stamp.
Sentinel uses a custom castle+lens icon in the menu bar. It's a template image that adapts to light and dark menu bars automatically. During an active import, the icon switches to an animated download indicator. Click it at any time to open the Sentinel popover.
NSPopover performance degrades when rendering hundreds of rows, especially on external drives where each row pulls a file count and tag summary. The popover keeps the 20 most-recent imports for fast access and punts the full archive to the All Shoots… window, which is a standard window (not a popover) and can handle large lists smoothly.
If a culling session was started but not finished (you exited without pressing Done), Sentinel shows a "Continue: [shoot name]" button in the popover. Tapping it immediately opens the culling window for that shoot, restoring exactly where you left off. No prompts, no picker. The Continue button only appears for incomplete sessions. Once you press Done and complete a session, Continue no longer appears for that shoot.
A three-step welcome runs once: what Sentinel is ("The cull, before the keep"), how the pipeline works (import, organize, cull), and where it lives (the menu bar). Step one asks you to choose your destination folder, so the app is configured before it ever touches your files. You can close it at any time with the ×.
It only appears on a genuinely fresh install. If you already have shoots or a destination folder configured, Sentinel considers you onboarded and never interrupts you with it.
After culling, Virtual Bracketing renders your keepers through your own film simulations and Film Palettes using your camera's actual sensor and processor, producing real JPEGs. It is the bulk, desk-side counterpart to per-photo RAW rendering on iPad.
Partly. The half that needs no camera ships today: bracket review. The tethered rendering half arrives alongside the film-simulation app it draws its looks from.
Fujifilm bodies can shoot a film-simulation bracket: one shutter press writes several JPEGs of the same frame, each with a different simulation. Sentinel detects those groups automatically from EXIF. On such a frame the loupe shows a Review bracket button, which opens all the versions side by side as cards so you can compare them properly and keep whichever you want.
Each version is a card with the look's name and its settings. Click anywhere on a card to keep that version, or press the number keys 1 to 5. Keep all and None act on the whole frame, ← and → move between bracketed frames, and Done applies your choices: checked versions become keepers, unchecked ones become discards. It is deliberately a yes-or-no per version. The cull already decided this photo was worth keeping; the bracket step only asks which rendering of it you want.
From the grid: scope to Keepers, press Select, choose the frames you want, then Virtual Bracket…. It is also on the culling summary. There is deliberately no always-on button that could fire on an empty selection.
Right-click (or Ctrl+click) on any shoot in the recent imports list in the Sentinel popover. Select "Rename…" from the context menu. Enter the new name and press Rename. Sentinel renames the import folder, all filenames containing the old shoot name, the Ready To Edit folder and its files, the culling session, and the recent import record. All in one operation.
Everything that references the shoot name:
2026-03-19-OldName → 2026-03-19-NewName)sentinel_session.json file (all paths and the shoot name field)Sentinel detects this automatically. The next time you open the Sentinel popover, it scans for missing import folders and uses the sentinel_session.json fingerprint inside each folder to locate the renamed version. Once found, Sentinel silently cascades the rename to all filenames, the Ready To Edit folder and files, the session, and the import record.
Sentinel detects this too. On popover open, it checks if the expected RTE files from the session still exist. If they're missing, it scans the RTE root for the renamed folder (by searching for the known RTE filenames). Once found, it cascades the rename back to the import folder, import files, session, and record.
Yes. Rename from the popover context menu at any time. The session is updated to reflect the new name and paths. When you reopen the culling window, it resumes with the correct files.
No. All Keep, Discard, and Maybe tags are preserved. The session's file entries, current index, and completion state are unchanged. Only the paths and shoot name are updated.
Likely yes. Sentinel supports RAW formats from Canon, Nikon, Sony, Fujifilm, Olympus/OM System, Panasonic, Leica, Pentax, Sigma, Hasselblad, Phase One, Minolta, Kodak, Epson, and Mamiya. Plus JPEG, TIFF, HEIC, PNG, WebP, and all common video formats. If your camera writes a DCIM folder to a card, Sentinel will find the files.
Sentinel uses a multi-layer identification system. First, it reads standard EXIF make/model tags from photos and videos. If those are missing, it checks the software tag. If that fails too, it scans all metadata values for embedded original filenames (some cameras like Hover Air embed their original filename in non-standard metadata fields) and runs pattern matching against known camera naming conventions. Each file is checked individually, so even when multiple cameras share a folder, each file gets routed to the correct camera subfolder based on its own metadata.
Sentinel shows an "Unknown camera detected" dialog with a thumbnail preview of a sample file, the number of unidentified files, and a text field to enter the camera name. Click the thumbnail to preview the file (with prev/next navigation if there are multiple files) to help identify which camera it came from. If you enter a name and click Continue, Sentinel saves a fingerprint mapping (based on resolution, file type, and folder pattern) so the same camera is automatically identified on future imports. Click Skip to use a default "UnknownCamera" label.
Sentinel handles this correctly. Each file is checked individually for camera metadata, so files with identifiable EXIF data are sorted into the correct camera folder regardless of what other files share the same source folder. Only files with no identifiable metadata are grouped as unknown. If a folder contains files from multiple identified cameras plus some unidentifiable files, the unidentifiable files are treated as unknown rather than inheriting a label from a neighboring file.
Some cameras connect via USB as PTP/MTP devices rather than mounting as a disk. Sentinel detects these cameras and imports via PTP automatically. If your camera isn't detected: (1) make sure it's unlocked and set to USB transfer/tethering mode, (2) check that macOS isn't intercepting the connection with Image Capture or Photos. If import seems slow, that's normal. PTP is a serial protocol and transfers one file at a time. A card reader will always be faster for large imports.
Yes. .insv and .insp files are imported and play back in the culling UI. Because AVFoundation cannot natively decode the proprietary INSV container, Sentinel works around this by creating a temporary .mp4 copy for playback, then deleting it automatically. You will see and hear your Insta360 footage normally during culling.
Yes. DJI MP4 and MOV footage is fully supported. .srt telemetry files can also be imported when the sidecar toggle is enabled.
Sentinel uses on-device machine learning to do a first-pass cull on every photo before you open the culling window. Each file is pre-tagged keep/discard/maybe with a short reason (e.g. "Out of focus," "Burst duplicate — leader: IMG_0041", "Eyes closed"). You confirm, override, or dive into a dedicated AI Review Mode to work through findings by category.
No. 100% on-device. AI Culling uses Apple's Vision framework (face landmarks + attention-based saliency) and Core Image (Laplacian variance for sharpness). Zero network traffic. Verifiable via Little Snitch.
Settings → Culling → AI Recommendations section (top of the Culling tab). Toggle Enable AI analysis on. You can also choose:
Automatically in the background right after import, while the culling window is closed. By the time you open culling, pre-fill is usually complete. If you open a shoot before analysis finishes, the HUD shows an "Analyzing X of Y" progress indicator and tags populate per-photo as results arrive.
VNDetectFaceLandmarksRequest for face detection + faceCaptureQuality signal. Closed-eye and blurred-face detection downgrade people shots.A dedicated review UI for working through AI findings by category. Enter it from AI review on the summary screen or in the culling HUD. Each category is a card carrying its name and count, a one-line explanation of why those photos are grouped there (for example "Sharpest frame chosen per burst"), a four-up set of thumbnails with a +N badge when there are more, and a Review → pill that walks you through them. Apply suggestions at the top accepts the AI's pre-fill for every photo you have not judged yourself; it is undoable per photo like any other tag. The categories are:
During category review, the filmstrip filters to only the files in the current category and arrow keys snap you to the next/previous photo within that category. Use the ◀ ▶ buttons at the top of the HUD to jump between categories. Tagging works the same as regular culling. Your manual tag always overrides AI.
AI pre-fills show with a colored border matching the tag and a subtle "AI" badge in the thumbnail. The moment you manually tag a file, the badge flips to your override and the visual treatment becomes bolder.
Your tag always wins. AI pre-fills are only suggestions. If you keep a photo AI marked as discard, it flows to Ready To Edit normally; if you discard a photo AI marked as keeper, it's treated as a normal discard eligible for purge.
No. Results are persisted inside sentinel_session.json with a schema version. Once analyzed, a shoot stays analyzed. Sentinel only re-runs analysis when the algorithm version changes. Typically after we ship a tuning update and want existing shoots re-scored against the improved model.
No. AI analysis is photo-only in the current release. Videos remain unreviewed until you tag them manually.
Yes. Analysis reads the embedded JPEG preview via ImageIO. The same preview used for culling display. So RAW performance is equivalent to JPEG.
Target is under 90 seconds for a 1000-file shoot on M-series Macs. Analysis runs on a background dispatch queue with low-priority QoS and uses DispatchQueue.concurrentPerform to parallelize across cores. Main-thread work is guarded by the same modal and culling-active flags used elsewhere in the app, so imports, renames, and typing into shoot-name prompts stay responsive while analysis runs.
Not in the current release. Everything is stateless. Each analysis pass uses only the photos in the current shoot and the sensitivity setting. Decision-learning from your historical keep/discard patterns is a future stretch goal, and if it ships it will stay fully on-device.
No. Face detection only (is there a face, is it sharp, are eyes open). No identity recognition, no per-person tagging, no gallery of known faces. Ever.