Ingest

Ingest / Automation

Connect the steps in your workflow.

Open verified copies in your editing app, run an action, or connect Ingest to Shortcuts and other tools. Automation is optional; a simple import needs none of it.

Actions

An action is a named list of steps. Choose it in your workflow settings, and it runs once the copies are on disk and verified. You can also run one from ⌘K on whatever is selected, or from a link.

Ingest ships with three: open the copies in Lightroom Classic, reveal them in Finder, and import them into an Apple Photos album. Edit them or delete them.

StepWhat it does
Open in an appHands the copied files to an app you choose, the same as dragging them onto it.
Import into an Apple Photos albumOpens a reviewed Send to Apple Photos sheet after ingest and backups finish. Existing JPEGs or JPEG companions are selected by default; RAW choices are explicit. Choose or create the destination album before sending. The name can use {yyyy}, {mm}, {dd}, {address}, and {city}, so {yyyy}-{mm} Ingest files each month separately. Photos reads metadata present in the imported files. Confirmed Ingest imports can be reused using content receipts. This action is unavailable when Apple Photos integration is disabled in Settings.
Copy to a folderA second copy somewhere else, after the first one is verified.
Reveal in FinderOpens the destination with the new files selected.
Add the Finder tag “Ingested”So Finder, Spotlight, and rules in other apps can see which files came through.
Run a ShortcutRuns a shortcut from the Shortcuts app by name, with the file paths as its input. The picker lists the shortcuts you have.
Run a shell scriptRuns zsh. Described below.

Turn on Ask before running for anything you want to see coming. Every run is logged, and the log is shown in Settings next to the action so you can tell what happened without hunting for a file.

Shell scripts

A script step runs zsh. The file paths arrive on standard input, one per line, and four variables are set:

VariableValue
$INGEST_FILESThe path of a file that lists every copied path.
$INGEST_DESTINATIONWhere they were copied to.
$INGEST_ADDRESSThe job address, if one was set.
$INGEST_COUNTHow many files.

The step starts with a line that does nothing but report, which is a good habit to keep while you are working out what you want:

echo "$INGEST_COUNT files in $INGEST_DESTINATION"

A script runs as you. It has your permissions and Ingest does not restrain it. Only add scripts you wrote or understand, and turn on Ask before running while you are still testing one.

The ingest:// scheme

Ingest answers links. Anything that can open a URL can drive it: a Shortcut, a script, a Stream Deck button, a Raycast command, a note on your desktop.

The easiest way to find the link for something is to open ⌘K, highlight the row, and choose Actions → Copy Link or press ⇧⌘C. The palette confirms the copy and stays open. The link is on your clipboard. Values have to be percent encoded the way any URL does, so a space becomes %20.

Links use the same commands, eligibility checks, and confirmation settings as the app. They do not bypass memory-card protection or the review required for a file operation.

LinkWhat it does
ingest://open?path=…Opens that folder.
ingest://cardOpens the mounted card. Add name= to pick one when several are in.
ingest://ingestOpens Import Settings for the current card or folder with the supplied settings. Review the scope and destinations, then click Import to start copying. Takes favorite, destination, template, subfolder, and preset. Giving a template turns renaming on.
ingest://select?paths=…Selects those files in the open source. Comma separated.
ingest://apply?text=…Runs a quick entry line against the selection, snippets and all.
ingest://workspace?name=…Switches workspace.
ingest://split?name=…Shows a split.
ingest://action?name=…Runs an action on what is selected.
ingest://command?id=…Runs any command by its id, available through the Command Palette’s Actions → Copy Link for commands that have no link of their own.

When a link cannot be carried out, the status bar says why in plain words: no folder at that path, no card is mounted, no workspace with that name, that command is unavailable right now.

Callbacks

Every link takes x-success and x-error, in the x-callback-url style. Ingest opens your success URL with a paths parameter listing what it acted on, or your error URL with an errorMessage. That is what lets a Shortcut hand work to Ingest and carry on when it comes back.

Callback URLs are values inside a URL, so they need encoding twice over. Build them with a tool rather than by hand.

Your settings as one file

Settings, Advanced exports everything you have set up as a single .ingestsettings file: options, name templates, metadata presets, snippets, splits, workspaces, actions, and your keyboard shortcuts. That is the file to keep as a backup and to carry to another Mac.

Importing offers two choices. Merge adds what you do not already have and leaves your own items alone. Replace makes this Mac match the file. Either way ⌘Z puts it back, because the import is recorded as one undoable step.

The file holds no photographs, but it can carry destination paths, addresses you have used, your keyword history, and the text of any scripts in your actions. Share it deliberately.

Restore Defaults is next to it, and puts every page back to how Ingest shipped while keeping your favorites, your sequence number, and the marks on your photographs.