PhotoMechanic is the fastest way to cull photos. One keystroke to tag, one keystroke to color-class, one keystroke to rate. The problem comes after: once you've marked your selects, how do you get them to the client's FTP server without breaking your culling flow?
The typical approach is to finish culling, filter for tagged images, export or copy them to a folder, then open an FTP client and upload. That works, but it means the delivery doesn't start until after you've finished culling the entire batch. On a live event where images need to arrive individually — the moment they're approved — that delay costs minutes.
FTPush offers a different approach: metadata-triggered delivery. Instead of watching for new files in a folder, FTPush watches for metadata changes in XMP sidecar files. The moment you tag, rate, or color-class an image in PhotoMechanic, FTPush detects the change and uploads the associated image file automatically.
Tag an image. It uploads. No export step. No FTP client. No interruption to the culling flow.
How PhotoMechanic stores metadata
When you tag, rate, or color-class an image in PhotoMechanic, the metadata is written to an XMP sidecar file — a small XML file that sits next to the image file with the same name but a .xmp extension. For example:
IMG_4521.CR3— the RAW image fileIMG_4521.xmp— the XMP sidecar with metadata
The XMP file contains all the metadata PhotoMechanic has written: the Tag state (true/false), Color Class (0-8), Rating (0-5), IPTC caption, keywords, and more. Every time you change any of these values in PhotoMechanic, the XMP file is rewritten.
This is the mechanism FTPush uses. It watches the folder for changes to .xmp files, reads the metadata inside them, evaluates it against your rules, and — if the conditions match — finds the associated image file and uploads it.
Setting up PhotoMechanic Trigger mode
In FTPush, each connection has a trigger mode setting. The default is "New Files" — the standard watched folder behavior. The alternative is "PhotoMechanic Metadata" — the mode described in this article.
- Create or edit a connection. Set the FTP server credentials and remote folder as usual.
- Set the watched folder to the folder where your images and XMP sidecars live — typically the folder where you ingested the memory card.
- Change the trigger mode from "New Files" to "PhotoMechanic Metadata."
- Add one or more trigger rules. Each rule defines a condition and a destination folder.
Trigger conditions
FTPush supports three types of conditions, matching PhotoMechanic's primary culling tools:
Tagged
The simplest condition. When an image is tagged in PhotoMechanic (the Tag checkbox is checked), FTPush uploads it. This is ideal for a binary workflow: tag the keepers, and they're delivered.
Color Class
PhotoMechanic supports 9 color classes (0-8), each with a distinct color. Many photographers use them for different purposes:
- Color Class 1 (Winner/Red): Top picks, upload immediately
- Color Class 2 (Second/Yellow): Secondary selects, upload to a different folder
- Color Class 3 (Third/Green): Holds, maybe upload later
FTPush lets you create a rule for any specific color class value. You can even have multiple rules with different color classes routing to different remote folders — for example, Color Class 1 goes to /urgent/ and Color Class 2 goes to /selects/.
Rating
PhotoMechanic supports ratings from 0 to 5 stars. FTPush can trigger on a minimum rating value — for example, upload any image rated 4 stars or above. This works well for photographers who rate on a scale rather than using binary tags.
Multiple rules, multiple destinations
A single FTPush connection can have multiple trigger rules. Each rule has its own condition and its own remote destination folder. This enables sophisticated routing:
- Rule 1: Color Class 1 (Winner) → upload to
/urgent/breaking/ - Rule 2: Color Class 2 (Second) → upload to
/selects/event-name/ - Rule 3: Tagged = true → upload to
/all-approved/
Rules are evaluated independently. If an image matches multiple rules, it's uploaded to each matching destination. For example, if an image is both tagged and Color Class 1, it can go to both /urgent/breaking/ and /all-approved/.
What gets uploaded: the image, not the XMP
When a trigger fires, FTPush uploads the image file — the RAW (.CR3, .ARW, .NEF, etc.) or JPEG — not just the XMP sidecar. FTPush finds the associated image by looking for a file with the same name but a different extension in the same folder.
Both files are uploaded: the image file and the XMP sidecar. This means the recipient gets the full image plus all the metadata you've added in PhotoMechanic — captions, keywords, copyright info, and any IPTC data.
The workflow in practice
Here's what a live sports event looks like with metadata triggers configured:
- Ingest the card. Photos and XMP sidecars land in the watched folder.
- Open in PhotoMechanic. Start culling at full speed — the embedded JPEG previews load instantly.
- Press "T" on a keeper. The XMP sidecar updates. FTPush detects the change, reads the metadata, finds the RAW file, and starts uploading. The image is on its way to the server before you've moved to the next frame.
- Keep culling. Every time you tag or color-class an image, it uploads in the background. You never leave PhotoMechanic.
- Check status if needed. Click the FTPush menu bar icon to see upload progress, or glance at Finder tags on the image files (green = delivered).
The fundamental difference from the standard workflow: delivery starts the moment you make a culling decision on each individual image, not after you've finished culling the entire batch.
When to use metadata triggers vs. watched folders
Both trigger modes have their place. Here's when each one makes sense:
Use metadata triggers when:
- You cull in PhotoMechanic and want delivery to start per-image, during culling
- You need to route images to different destinations based on rating or color class
- You're working with RAW files that don't need editing before delivery (e.g., breaking news, wire service ingest)
- You want the simplest possible workflow: one keystroke in PhotoMechanic = delivery
Use standard watched folders when:
- You edit in Capture One or Lightroom and export JPEGs to a delivery folder
- You need to upload processed files, not RAW originals
- The files arrive from an external source (tether, download, another app) rather than being tagged in place
- You don't use PhotoMechanic's tagging system
The two modes can coexist. You might use metadata triggers on one connection (for urgent RAW delivery to a wire service) and standard watched folders on another connection (for edited JPEG delivery to a client). Each connection operates independently.
Technical details
How XMP detection works
FTPush uses macOS FSEvents to monitor the watched folder. When a .xmp file is created or modified, FTPush reads the XML content, parses the relevant metadata fields (Tag state, Color Class, Rating), evaluates them against your rules, and — if matched — locates the associated image file by scanning for common RAW and JPEG extensions with the same filename stem.
Supported image formats
FTPush looks for associated images with these extensions: .CR3, .CR2, .ARW, .NEF, .RAF, .ORF, .RW2, .DNG, .PEF, .JPG, .JPEG, .TIF, .TIFF. If multiple image files match (e.g., both a RAW and a JPEG with the same name), both are uploaded.
File stability
The file stability checker applies to XMP files too. FTPush waits for the XMP file to stop being written before reading it. This prevents issues where PhotoMechanic is mid-write when the FSEvent fires.
Getting started
FTPush includes the PhotoMechanic Metadata trigger mode in all plans. Configure it in any connection's settings — switch the trigger mode, add your rules, and start culling. The 14-day free trial gives you enough time to test the full workflow at real events.