Jeffrey’s “Folder Watch” Lightroom Plugin

This plugin is a feature-rich alternative (or supplement) to Lightroom's built-in tethering and Auto Import, and also attempts to make up for Lightroom's lack of an auto-export facility. It allows you to run a continuous scan of select folders on your hard disk in the background, automatically importing new images in place, or first moving/renaming if you like.

It can scan an individual folder, a list of folders, or whole trees of folders.

It also allows for automatic processing of imported images, and also automatic export, creating a fully-automatic end-to-end processing system.

As a special case to enhance Lightroom's built-in tethering, it can apply special processing to images that have been recently added to Lightroom.

This plugin works in Lightroom 6/CC (and older versions as far back as Lightroom 3, though some features depend on the version of Lightroom).

The same download works for both Windows and Mac. See the box to the upper right for the download link (in orange) and installation instructions.

Configuration and Use

The plugin is configured in the Plugin Manager:
The dialog shown is as of version 20140721.82; the current version of the plugin is 20151126.98.

When the Enable Scan checkbox is checked, the scan runs continuously, even after the Plugin Manager has been dismissed.

Scan-Related Configuration Items

Folders to watch  —  A comma-separated list of folders the plugin should scan for new images.

See the Common Scenarios section for guidance here.

Also watch subfolders  —  If checked, the scan also descends into all subfolders of the folders listed.

Frequency to check  —  The scan takes some of your computer's resources, so it's not prudent to have it scanning nonstop, so this indicates how long of a pause should be made between scans.

New images only  —  If checked, images found in the first scan are not imported. This is perhaps useful when tethering and are interested only in new images going forward.

File size to consider  —  A sanity check to avoid too-big or too-small images.

File unmodified for  —  If the plugin were to try to import a file as it was being written to disk, Lightroom would get only a partial file, resulting in errors. To help avoid this, the plugin waits until the image file hasn't been updated for some time, in hopes that doing so will ensure the write has fully completed.

Read-only images only  —  Enabling this has the plugin ignore writeable files, considering only read-only files. The lock image feature on some cameras can result in a read-only file on disk.

Special tether support  —  This special option is explained below.

Move/Rename Configuration Items   

When a file is about to be imported, you can have the plugin move it to a specific target folder, and rename it as well.


If you enable the file-move option, the plugin moves images it finds into the root folder you specify. This is done prior to import into Lightroom.

Optionally, you can have the image moved to a sub-folder named for the watched folder (Pictures in the screenshot example above).

For example, if you have the plugin watch folders named Main Shooter, Sub Shooter 1, and Sub Shooter 2, enabling this option would have images moved to the appropriate sub-folder (Main Shooter, Sub Shooter 1, or Sub Shooter 2) of the destination folder you specified.

Additionally, you can have the plugin preserve any folder structure found under the watched folder, replicating it in the target folder.


The rename to field accepts generic non-photo-specific preset template tokens. (The rename happens prior to the import, so the plugin doesn't have easy access to image metadata). {Filename} and related items are available, as are the current-date/time items.

For example, a rename to value of {yyyy}-{dd}-{mm}/{Filename} has new images moved to a date-based sub folder within the move-to folder. (But take care: the date is the date of the move, not the image capture date.)

Or, you might use a rename to value of {yyyy}{dd}{mm}-{hh}{min}{ss}-{Filename} to prefix the current date/time to the image filename, and then place it within the move-to folder.

The plugin always ensures that the file extension remains the same across any move or rename, so you don't have to worry whether you specify a file extension in the rename to field.

You can specify that filenames should be rewritten to a sequence by including ### in the filename, using as many # as you want digits in the sequence. For example, you might use photo#### to have your files named photo0001.jpg, photo0002.DNG, etc. (the file extension will be maintained from the original file on a per-image basis). It's a pretty smart sequencing system, and always picks up from the filename with the highest number in the # location.

The plugin will never overwrite a previously-existing file; conflicts are resolved via renaming as with photo-2.jpg, photo-3.jpg, etc.

Import-Related Configuration Items   

Show splash dialog  —  If you want to be alerted when an image is auto-imported, enabling this has a small dialog pop up for a few seconds. This can be useful particularly when Switch to photo is enabled and you intend to be using Lightroom interactively, to avoid keystrokes suddenly going to the new photo.

Apply develop preset  —  A develop preset you've previously saved can be automatically applied.

Apply metadata preset  —  Same with a metadata preset.

Add keyword  —  A keyword can be automatically added.

Set star rating  —  You can set the star rating.

Set color label  —  And the color-label text (which can be one of the defaults like red, or anything else you like). Once you've got something typed in the text field, the checkbox can be checked.

Set title  —  The image title can be set. You can use template tokens for dynamic text, e.g. Copyright {YYYY}.

Set caption  —  The image caption can be set, here also with template tokens.

Switch to photo  —  If enabled, upon each import Lightroom will switch to the Library view for the new photo's folder, and the new photo will be selected.

If you happen to be typing something into Lightroom when this suddenly happens, what you type will be taken as keyboard-shortcut commands for Library, which could be very bad, so enable the Show splash dialog option if you'll be using Lightroom interactively while the scan runs in the background. The splash dialog kills the keyboard input, giving you a few free seconds to realize what's happening and to stop typing.

Build Smart Preview  —  The Smart Preview can be made automatically.

Add to standard collection  —  Newly-imported photos can be added to one of your library's collections. This can be useful for many things, including automatically sending imported images to the web or your iPad via Lightroom mobile.

Add to Publish collection  —  Newly-imported photos can be added to a Publish collection.

Publish this collection  —  A specific publish collection can be automatically published with each new import, or, optionally via the also publish other collections in its Publish Service checkbox, all collections within the publish service are published.

This option is distinct from the Add to Publish collection because that option works only with non-Smart publish collections, but you may well have a smart collection that you want to publish automatically.

You can choose any publish service for each of the last two options. Choosing an uploader service (such as to Flickr, PicasaWeb (G+), or Tumblr, among many others) can allow for automated from-camera-to-the-web processing.

Alternatively, for local output (or to Dropbox, network disk, etc.), perhaps consider my Folder Publisher and Collection Publisher plugins. Publish Services from other developers should work fine too.

Special Tether Support  —  this option is discussed in the next section.

Special Support for Lightroom's Tethering

Tether support was added in version 20140721.82 (July 21, 2014), and should be considered beta.

This plugin main purpose is as a replacement for Lightroom's integrated tethering support, because Lightroom's tethering offers very little in the way of advanced workflow support.

As such, the plugin's main purpose is to find image files that have not yet been added to the current Lightroom catalog, import them into the catalog, then apply the various workflow support features selected by the user, such as setting a develop preset or adding to a publish collection. In this context, it's presumed that one uses some third-party solution to get the image files to appear on your disk, such as third-party tethering software, Dropbox or the like, an FTP server, or even an Eye-Fi memory card.

However, the plugin does offer a way to work with Lightroom's integrated tethering support, to perform the aforementioned apply the various workflow support features selected by the user step on files that found their way into Lightroom apart from the plugin (presumably via tethering) since the plugin started its scan.

To use this special support, have the plugin watch the same folder that Lightroom's tethering support is depositing files, and turn on the

Enable the Upon Import of a New Image processing for all relevant newly-added images

option in the plugin. Then start the plugin scan, and then start your tethering.

When you start the plugin scan, the plugin will first take the time to note what images under the watched folders are already in Lightroom. Since they're in there before the scan and tethering starts, the plugin knows not to touch them later. (If the plugin didn't ignore pre-existing Lightroom photos in this way, it would apply all the after-import processing to all the images, every time, which could lead to disaster.)

Then the plugin will scan the folders as often as you've told it. If you're using Lightroom's tethering, new files that the plugin comes across will likely already be in Lightroom (having been imported by the tethering unit at the same time it created the image file), but it's perhaps important to remember that any time the plugin finds a file that is not already in Lightroom, it'll import it into Lightroom and perform the after-import steps.

Anyway, what'll happen if you're using tethering is that the plugin will find the new file is already in Lightroom. It'll check against the list of photos it made when it started its scan, and realize that indeed the photo is new since the scan started, and because this special tethering-support option has been enabled in the plugin, the plugin will go ahead and apply the after-import selections such as applying a develop preset or adding to a publish collection.

This is the only situation in which the plugin processes an image that it didn't itself import.

In this scenario, an image can exist be added to Lightroom by the tethering unit and sit there for some time before the plugin gets around to the after-import processing. How long depends on the frequency to check setting, how much scanning the plugin has to do (few files or logs?), and the timing of the tethering with respect to the scan.

Common Scenarios

The plugin can scan folders that are not part of your Lightroom catalog, folders that are part of your Lightroom catalog, or both. It can move/rename files or not, as you see fit. People use the features of this plugin in all kinds of crazy combination, but here are there common scenarios to consider:

  1. Using a drop-off folder outside of Lightroom

    If you have a third-party application depositing files to a drop-off folder (or a drop-off folder that's getting new image files somehow, such as a Dropbox folder being fed externally), you can watch that folder with this plugin, and use the plugin's file-moving options to shuffle the files into a folder that Lightroom knows about. The plugin will then add the image to Lightroom.

    In this scenario, the drop-off folder is generally empty except for when a fresh file has been deposited but not yet processed by the plugin. This is the most efficient scenario.

  2. Feeding a Lightroom folder with a third-party application

    This scenario is similar to the one above, except the folder that new image files are deposited into (via the third-party app, Dropbox, etc.) is already a folder that Lightroom knows about. In this case, you'd probably not want to use the plugin's move/rename options, but just have the plugin scan a folder that Lightroom knows about, adding new files to the Lightroom catalog in place.

    In this scenario, the plugin is acting like an automatic (and richly-featured) Synchronize Folder replacement.

    Because files are not shuffled out of the watched folder, this scenario can become inefficient as the number of images in the watched folder becomes large. One does not generally want to apply this scenario to the entire Lightroom folder hierarchy, or any hierarchy with more than a few thousand photos, because the scan time could get inconveniently long.

  3. Feeding a Lightroom folder via Lightroom's tethering or auto-import features

    This scenario is similar to the second one in that the plugin watches a folder that Lightroom already knows about, but it differs from the other scenarios in that it can work with photos that are added to Lightroom via Lightroom's tethering or auto-import features. Normally, this plugin completely ignores any image that it doesn't add to Lightroom itself.

    This special scenario is available only when explicitly enabled via the option described in the section on tethering. In this scenario, files found during the scan to have been added to Lightroom (by something other than the plugin) since the plugin's scan started are not ignored, but instead get the after-import processing configured in the plugin.

    This can be useful with tethering to do additional processing that Lightroom's tethering doesn't allow, such as adding a photo to a collection or exporting via Publish.

    This scenario is more resource-intensive than the scenario above, so you probably don't want to apply it to a folder with more than a few thousand images (though trial and error will show you if/when things begin to bog down).

The three scenarios are not mutually exclusive... it's possible to have them all apply at the same time (though such a need would be quite esoteric, I'd think). Anyway, they're just common use cases; once you learn what the plugin can do, you can apply it to your needs as you see fit.

Note that regardless of the scenario, there's a special case built in to the scanning: any subfolder named picasaoriginals is ignored. Such folders are a byproduct of Google's Picasa software.


This plugin is distributed as “donationware”. I have chosen to make it available for free — everyone can use it forever, without cost of any kind — but unless registered, its functionality is somewhat reduced after six weeks.

Registration is done via PayPal, and if you choose to register, it costs the minimum 1-cent PayPal fee; any amount you'd like to add beyond PayPal's sliding fees as a gift to me is completely optional, and completely appreciated.

Note: a Lightroom major upgrade, such as from Lr4 to Lr5, de-registers the plugin in the upgraded version, so if you want to maintain registration, a new ($0.01 if you like) registration code is needed in the upgraded version. It makes for a hassle every couple of years, I know. Sorry. See this note for details.

For details on plugin registration and on how I came into this hobby of Lightroom plugin development, see my Plugin Registration page.

Version History
( Update Log via RSS )


Added {SpeedKPH} and {SpeedMPH} to the list of template tokens supported by my plugins.

The {People} token wasn't working properly for some keywords without a registered birthday.


Allow the "Frequency to check" and "File unmodified for" values to be as low as 0.1 seconds. Not recommend for most folks, but might be useful for special needs.


Collections with very long names could cause the dialog to overflow the space Adobe allots for it.


Fixed the "SpecPeople:259: attemt to index al nil value" error.


When moving/renaming image files prior to import, look for sidecar files (e.g. XMP, audio, etc..., anything with the same filename except the extension) and move/rename them in parallel.

Added *.FFF files to the list that the plugin recognizes as image files.

Added the ability to keep a log of moved/imported files.


Allow folders with commas in their names to be watched.

Give the UI some love on Windows.


In the POODLE-vunerability dialog, display a raw URL of a page on my site that discusses the issue, so that folks can be independently sure that the dialog is indeed from me and not malware.


Offer the ability to abort a scan if a file can't be imported.

Fix to the date_diff() function supported by the LUA template token.

Plugin could crash when first launched after a Lightroom upgrade.

20141220.90 Fixed a boo-boo introduced in the previous build
20141219.89 Registration was broken on Lr2
20141019.88 Windows Only: Add a one-time check for the POODLE security vulnerability, and alert the user if it exists.
20140923.87 Added the LrMD5, LrLocalization, LrSystemInfo, and LrMath packages to the {LUA} template token.
20140902.86 New build system
20140731.84 Registration fix for Lr5.6
20140729.83 Previous updates broke support on Lightroom 2

Note: if upgrading from a previous version, you may have to restart Lightroom to enable plugin the first time after the upgrade.

New support to process items already imported into Lightroom, to allow automatic processing/export of images brought in via Lightroom's built-in tethering.

Various bug fixes and lots of UI enhancements.


Add the ability to add to any collection upon import.

More Creative-Cloud support.

20140718.80 Using a {LUA} token in the file-renaming template caused a crash.

When moving an image from a watched folder, you can now preserve the name of the watched folder in the move destination, and also preserve in the move destination any folder structure that had been in the target folder hierarchy.

Plugin wasn't recognizing the existence of a re-created "folders to watch" target if the name didn't change.

Fixed an issue with Creative-Cloud revalidation.


Lr5.5 and later Creative-Cloud installs can now revalidate themselves if needed.

20140710.77 Sigh, had a bug in the Creative-Cloud support.

Now supports Lr5.5+ Creative-Cloud Installs.

20140704.75 Sigh, introduced an error for some folks with the rebuild the other day.
20140630.74 Build-system update

Added date_diff() and raw_time_diff() functions to the special {LUA} token understood by the plugin.


Added new tokens to the template language the plugin understands: LrVersion, LrVersionMajor, LrVersionMinor, LrVersionRevision, LrVersionBuild, Location, CatalogName, CatalogPath, OperatingSystem, OS

Added new token filters: NS and LO

20140423.71 Fix a location-related template-token bug introduced in a recent build.

Fixed a bug in the "smoother revalidation" stuff recently added.


The {Empty} template token wasn't working properly.

Make the revalidation process smoother, especially for folks using Lr5.4 and later.


Enabled the ability to import only files marked readonly in the file system, to target images that have been "locked/saved" in camera.

Enabled the ability to include/exclude specific filename patterns.


Disable the "enable" checkbox if a folder to scan hasn't yet been selected.


Fixed an "invalid option '%_' to 'format'" crash.

Turned off most debug logging if the "enhanced debug logging" option in the Plugin Manager is not enabled.


While writing the docs for the new file move/rename feature, I came up with a great(?) way to automatically do sequences. You can now rename to something like "photo-###" to have a sequence number filled in (in this case, a three-digit sequence number).


Fix a bug that would cause certain folder trees to be ignored in certain situations on OSX(!)

Added a move/rename feature.

Moved the status text next to the "enable" checkbox, and made the status text more clear and verbose. Added a countdown timer for the next scan.

20140121.63 Added more debug logging to track down why some scans don't seem to be happening.

Ignore corrupt develop presets instead of crashing due to them.


On OSX, don't consider files/folders whose name begins with a dot (which is the traditional Unix way to mark certain kinds of system-support files that should normally be hidden).

Wasn't properly skipping the "picasaoriginals" folder; is now.

20131112.60 Bumped up the maximum file size to import to 20 gig.

Fixed that plugin could fail to work when Lightroom started in "Select Catalog" mode.

UI was a bit cramped on Lr4 and earlier.

Add a warning note if a file is skipped because it's too new or dated in the future, just to alert you in case you didn't know. Could be useful if clocks are not synchronized between computers and/or cameras. Adjusted logic for determining these things.

20130926.58 Oops, fix a bug introduced in the previous update

The 'Template Examples' dialog had been broken. Deprecated 'Folder' and 'Path' tokens in preference to 'FolderName' and 'FolderPath' tokens.


Added the ability to use template tokens when specifying a a title to apply to an imported image, and also added the ability to set the caption in the same way.


Added the ability to add imported photos to a Publish collection.

Added the ability to have a specific keyword added to imported photos. Might be useful for creating smart collections.

Added the ability, upon new import, to launch a Publish operation on a specific publish collection or service.

Rejiggered the UI.

20130901.54 Added the ability to automatically build a Smart Preview upon import.
20130614.53 Added a bunch more debug logging to try to track down a problem
20130613.52 Better support for plugin revalidation.
20130611.51 Yet another Lr5 update
20130524.50 Apparently, a recent change broke things on Lr2, which some folks apparently still use.
20130501.49 Update for Lr5
20130416.48 Watch for PNG as well (Lr5+)
20130412.47 Build system update.
20130328.46 Fix for the registration system.
20130306.45 More tweaks
20130304.44 Tweaks for per-catalog setting handling.
20130303.43 In Lr4, the "restart on launch" setting is saved per catalog.
20130209.42 More build-system maintenance
20130206.41 Tweak for my registration system

Added the ability to apply Develop and Metadata presets upon import.

Now can have imported photos added to an “Imported by jf Folder Watch Plugin” collection.

Dialog was getting crowded, so split the watch control from the plugin info.

20120913.38 Fixed a end-of-scan "bad argument #2" bug.

The plugin normally won't try to import a file that has been modified in the last five seconds, but now that five-second threshold is exposed as a setting. Also, on Windows, it won't try to import a file it can't read (because a file being filled by another process disallows us to read it.)


Added min/max filesize settings, so that files outside that range are simply ignored.


Ignore any folder with "picasaoriginals" in it.

Added the ability (in Lr3+) to switch directly to an image when it's imported.

20120608.34 Fix an "attempt to perform arithmetic on field" error.

Update to handle the Mac App Store version of Lightroom.

Don't try to re-import master images that Lightroom has a problem with (because they are corrupt, for example) unless the file actually changes. Upon error, report the full path along with the error.


Better report fundamental master-image-file errors that Lightroom encounters.

Tweak for Lr4.1RC2.

Enhanced the send-log dialog to hopefully make reports more meaningful to me, yielding, I hope, the ability to respond more sensibly to more reports.

20120330.31 Update to handle 4.1RC
20120309.30 Had broken registrations in Lr2; Update to the debug logging to better track down timing issues that might arise.
20120304.29 More prep for Lr4.
20120216.28 Added some extra debug logging, and more work for Lr4. Also end a current scan early if "watch" is disabled.

More on the march toward Lr4, including upheaval in the code to handle Lightroom APIs being discontinued in Lr4.

20120114.26 More tweaks for Lr4b

Update for Lr4 beta: explain in the plugin manager that the plugin can't be registered in the beta.


Had issues with the registration button sometimes not showing.

When doing a plugin upgrade, offer the ability to flush all the old copies of the plugin.

Added a system-clock check and reports to the user if the system clock is more than a minute out of date. An incorrect system clock can cause problems with various kinds of communication and authentication with some of my plugins, so I've just gone ahead and added this to every plugin.

20111020.23 Now imports video as well (ones that Lightroom supports), and tidied up the list of image file extensions to try to import to better match what Lightroom understands.
20110714.22 The remote-filesystem-time-is-off detection wasn't working when there were multiple folders to scan.
20110525.21 Some windows folders couldn't be scanned... think I've got it fixed now.
20110520.20 You can now select multiple folders to scan.
20101017.19 The whole display was getting cut off at the right sometimes.
20100829.18 Made the revalidation process much simpler, doing away with the silly need for a revalidation file.
20100820.17 Discovered a bug in my plugin build system that caused horribly difficult-to-track-down errors in one plugin, so am pushing out rebuilt versions of all plugins just in case.

Added all kinds of enhanced folder-scan logging when Enhanced Logging is turned on, to try to track down some issues.

The plugin now tries to detect and adjust for a remote file system having a different clock than the host system.

Added code to allow plugin revalidation after having been locked due to a bad Lightroom serial number.

20100625.15 Yikes, shaking out some more build issues.
20100624.14 Discovered a nasty build bug; pushing a new version in case it affects this plugin.

This version can be registered in Lightroom 3. It can run in Lightroom 2 or Lightroom 3; it does not work in the Lr3 betas.

It uses my new registration system when run on Lightroom 3, which avoids some of the silly issues of the old one. Please take care to note the details on the registration page: use of this version (or later) of the plugin in Lightroom 3 requires a new registration code, even if you had registered some older version of the plugin.

20100516.12 Update for the Lr3 beta.

Completely changed how the one-click upgrade applies the newly-downloaded zip file, in the hopes that it'll work for more people. Rather than unzipping over the old copy, it now unzips to a temporary folder, then moves the old folder out of the way and the new folder into place. Prior versions' folders are now maintained (with the version number in the folder) in case you want to revert a version; you may want to clear them out from time to time. Of course, it won't take affect until you try to upgrade after having upgraded to or beyond this version.

Wholesale changes that attempt to honor the user's locale settings for numeric display (e.g. Europeans writing 3,14156 for pi). I've probably missed some spots, so let me know if you find some.

Fixed up some UI confusion that happened sometimes if the plugin was not enabled and there was no valid folder to scan. A few other small UI cleanups, and a fix that caused the plugin to abort sometimes in LR3b

20100111.10 Re-import a scanned file if it has changed (size or create/modification date). Thus, if you move a file out of the scanned tree from within Lightroom and later add another file with the same name, it'll get imported. I also now report only the number of files scanned each time; folders are not included in the scan count.
20091221.9 Added some heuristics to avoid importing a file that's still being written to disk. Modification times reported to the plugin are a bit imprecise, but if an image file seems to be less than a second old, it is not imported.
20091205.8 Minor internal debugging tweaks.
20091022.7 Added a first draft of some rudimentary support for Lightroom 3 Beta. See this important note about plugin support in Lightroom 3 Beta and Lightroom 3, including future plans for features and my registration system.

Enhanced the one-click upgrade stuff quite a bit, now detecting ahead of time when it will fail because the plugin is installed where Lightroom can't write (if Lightroom can't write to it, it can't update itself). I also added a progress bar, and now download in smaller chunks to avoid 'out of memory' errors on the larger plugins. Do remember that this new functionality becomes available after you upgrade to or past this version, when you then upgrade with it.

20090521.5 Fixed a "loadstring" error some users got.
20090511.4 Now it quietly ignores images that Lightroom can't process. The failure is noted in the plugin log. (It's on the to-do list to expose an "activity log" where this event might be more readily accessible.)
20090510.3 Added a link in the Plugin Manager to the plugin's update-log RSS feed.

Added a "show splash dialog" option to the "upon import of a new image..." configuration, so that you can be informed when the plugin imports a new image in the background for you. You can configure whether the splash is shown, and if so, for how long before it automatically disappears. I've not tested this too much, so I don't know what problems it might cause having a background task (the folder watch plugin) throw up a splash dialog. It seems to work okay, except...

.. if a splash dialog pops up while you're painting local corrections, it'll do bad things to the current brush stroke, such that after dismissing the splash dialog, you'll have to undo the brush stroke you were working on and redo it.

I also realized one other caution: when the plugin imports a photo for you, that import action is added to the undo stack. This happens whether the import is accompanied by a splash dialog, or if it's totally silent in the background. The worry this creates is that if the import happens just before you do a bunch of undos, you may unwittingly undo back past the import and not even notice. The only option I see around this problem is even worse: having the import pop up a warning dialog that it's about to clear the undo stack, and then actually have it clear the undo stack. So, if this is a practical worry for you, enable the splash screen.

I also fixed the home-page url, and the folder-to-watch edit box, which would sometimes show only a partial folder path on a OSX. The report of overall session imports is now red when something's been imported this session.

It also turns out that if you reload the plugin, Lightroom doesn't completely do away with the previous instance, so it was possible to have multiple versions of the plugin running and not even know it. It's a big hairy mess, but I think I've worked around it in this version. The plugin also refuses to scan if it's not enabled.

I also added an option to restart the watch when Lightroom is started, so that you can have it running all the time. Along with that is an option to throw up a splash screen during Launch if the plugin has been set to scan at launch. You can use this to remind yourself that the thing is running.


First public version. Pretty rough at this point. Currently, everything is controlled from the Plugin Manager, which is probably not the best UI. Pick your folder to watch, the frequency with which to check, then click the "watch!" checkbox to turn it on. You can then leave the Plugin Manager and, most likely, open the target folder in Grid Mode (perhaps sorting to most-recent first).

Some random notes:

  • The plugin infrastructure does not allow plugins to do anything with develop or metadata presets, so the imports are plain vanilla.
  • You almost certainly never want to point this at a slow disk, or if you do, have it check very infrequently. Lightroom can seem to lock up momentarily when attempting to access some disks.
  • In the Plugin Manager, while a folder is being watched, keep an eye on the time reported in the "Scan Status". It's okay if the first scan takes a while, but if subsequent scans take a long time, you'll want to scale back the check frequency. How long is "a long time" depends on your overall machine load and personal preferences.
  • Conversion to DNG not yet supported; I hope to add it soon.
  • A Lightroom plugin has only a limited ability to set image metadata, some of which I've incorporated (rating, label, and title). You may want to make use of a Smart Collection that keys off one of these. For example, have the plugin set the title of auto-imported images to "autoloaded", with a Smart Collection of all images with a title of "autoloaded". This way, you can change the title to something else once you've address a particular image. (It would make the most sense to use a special keyword for this, but Lightroom does not allow a plugin to set image keywords.). Note, though, that a Smart Collection can lag behind reality for a few seconds, so if you're interested in seeing the images ASAP, you'll want to leave the target folder open in Grid Mode.
  • The plugin does not yet ensure that an image file is complete before attempting to auto-import it. This means that images that are written slowly by less-than-smart applications may not be properly imported. (They won't be corrupted, just not imported properly the first time.) Please let me know if you run into problems along these lines.

The 30 most-recent comments (out of 77; see all), most recent last...

Would it be possible to add a feature to be able to also/only consider files with a specific name?? In my opinion, this could be handy if you handle files from different cameras (with different file names).

Instead of only looking at the file size (“File size to consider”) as the plugin is able to do…


I’ve added this as of version 20140330.68 —Jeffrey

— comment by Per R. on December 10th, 2013 at 9:16pm JST (2 years ago) comment permalink

HI Jeffrey,

Is it possible yet with LR5 to import and convert to DNG. Also is it possible to import into a targeted location rather than import in place?

Lightroom doesn’t provide a way for plugins to do a DNG conversion. The import-to-folder could be done if I build it… your idea is that you watch a folder tree and as files appear, move them to some separate target folder and import? I’m a bit leery to do this because if I move the file before it’s actually been completely written, you could end up corrupting the file, forever losing the photo. Whatever delay I pick (e.g. file hasn’t been changed in 5 seconds), a slow or stuttering wifi download may well take longer. It’s dicey. —Jeffrey

Update: I’ve added move/rename as of version 20140122.64. Let’s keep our fingers crossed. —Jeffrey

— comment by JPS on December 15th, 2013 at 4:01am JST (1 year, 11 months ago) comment permalink

This is almost exactly what I’m looking for but I don’t think it moves the files it imports. I’m looking for a way around the LR Auto-Import which insists on pulling all the files it imports into a single directory. FolderWatch would be perfect if it could move the picture files into the directory structure using the same folder/date system LR uses for the regular imports.

Any chance you will be adding that at some point?

It’s not impossible, but it’s fraught with peril… see the previous comment for why. —JeffreyUpdate: I’ve added move/rename as of version 20140122.64. —Jeffrey

— comment by Mark Chernis on December 16th, 2013 at 8:15am JST (1 year, 11 months ago) comment permalink

Thanks so much for this plugin — I just tried it, and it is awesome! Do you have or know of any similar plugins for Photoshop Elements on the mac? I am currently using the organizer from Elements to do all of my photo tagging, but Elements on the mac does not have a watched folder functionality like it does on the pc. I really need face tagging functionality as well, which Lightroom doesn’t have. I am currently in the process of cleaning up and tagging all of my 42k image files in the Elements organizer, and thinking about moving it to Lightroom; however, that means that I still have to import all of my future photos into Elements first for face tagging, then import them into my Lightroom catalog (which will be made a lot easier by your plugin). I would really like to stay with Elements until they add facial recognition in Lightroom, but I do a lot of graphic design work from the bottom up in Photoshop, and I have to remember to manually go back in and add those files to the Elements Organizer one by one. Needless to say, a lot of them don’t quite make it into the organizer in a timely fashion!

Sorry, no, Lightroom plugins are Lightroom only; I don’t know anything about Elements. —Jeffrey

— comment by Brigid G on January 16th, 2014 at 9:16am JST (1 year, 10 months ago) comment permalink

First of all Jeffrey, this looks amazing and am excited to go home and try it out. It seems to be exactly the ticket for the automation problem I was hoping to solve.

Regarding Mark Chernis’ recent question on importing to specific folders…Mark: it might be worth your while to look into ExifTool.

I use a Mac, and through OSX’s built in Automator, I am able to accomplish the beginning task of my automation challenge (getting pictures taken of our new son off of my wife’s and my iDevices into one location as well as into Lightroom with the rest of my library):
– Start DropBox
– Wait 10 minutes (for files to sync from dropbox…hoping to find a way to detect completion)
– Run OSX’s shell editor and execute a couple ExifTool commands. These look at my dropbox folders, find any JPG or MOV, read the CreateDate of the file, and moves them to a corresponding date-derived directory (it will create the directory if it doesn’t exist) in “Photo Album/YYYY/YYYY_MM_DD/”

Now with this script from Jeffrey, I will be able to have Lightroom scan all of the folders under YYYY and auto-import and tag these photos with “iDevice” for easy searching. Sounds like it will be perfect! Thanks so much!

— comment by Matt O on January 25th, 2014 at 12:14am JST (1 year, 10 months ago) comment permalink

Would it be possible to use this plugin and a bar code scanner to simply fill in the custom name field before importing? I’d like to use it to organize school or dance photos. Scan a barcode that has first and last name and student id-put the first and last name into the beginning of file name and the student id into meta data maybe.

There is another company that makes a separate piece of software to do this but it’s pc based. I think keeping it all within LR makes more sense.

Simply using the scanner to enter data that can be searchable or used in file naming would be awesome.

Let me know-I’m searching for a solution.

This kind of thing is fairly specialized, and I don’t see an easy way to generically add the functionality. If you can find some application that will do the scan and rename the file, you might be able to work that in with the new file-name pattern and/or readonly-support stuff I added in version 20140330.68. —Jeffrey

— comment by Michael on January 28th, 2014 at 2:07am JST (1 year, 10 months ago) comment permalink

It doesn’t seem to descend folders completely…. my watch folder is J:\My Pictures and I have subdirs enabled
I have an eye-fi card and it puts picture in
J:\My Pictures\Eye-Fi\RAWs\dated_dir ie, J:\My Pictures\Eye-Fi\RAWs\1-3-2014
It will not find these pictures
the eye-fi card adds the following
not sure what the .xmp is ….not sure if it needs to be imported….
At first I thought the plugin didn’t like .ARW but I copied that to J:\My Pictures and it worked (didnt copy xmp)
I’ve also put jpgs several levels deep and THAT worked….so it seems like it doesnt like ARW in nested dirs or the xmp ?

Does the folder watch find pictures in the subdirs that are not in the catalog….regardless of when the picture was taken ….or just pictures that were recently taken?
It seems like it scanned the entire folder and subfolder structure and didnt add a single picture to the catalog…. I’m pretty sure there is some in the 47000 pictures that are not in the catalog…
Any thoughts ?

There’s an option to have the plugin ignore any files that are there when it starts up, so that it gets only new images. The plugin is not really intended to watch a large tree, though it should certainly do it, so please send a log if it’s not. It just might be taking a long time. The intent was to watch a small folder where new images are being dropped, such as your EyeFi situation. To bring in a huge tree of images in place, consider Lightroom’s normal Import, or its “Synchronize Folder” feature. —Jeffrey

— comment by tim on March 3rd, 2014 at 11:20pm JST (1 year, 9 months ago) comment permalink

I feel very stupid….my camera has gps and automatically picks up time, however it was off by an hour due to DST setting.
So if I had your plugin open, I saw it saying a picture was TOO NEW… at first that made no sense but eventually dawned on me.
As soon as I changed the time to correct…your plugin picked the pictures up right away. The directory was nested 3 deep with no issue.
I also found the option for New Images Only which I had missed before.
Thanks for your help and sorry to waste your time
Tim O

— comment by tim on March 4th, 2014 at 2:45pm JST (1 year, 9 months ago) comment permalink

This is a great tool, especially with a Lightroom novice such as myself. One question – is there a way (within the app, or in LR itself) of automatically generating an export after every new file is imported (eg: new image enters watched folder, is imported to LR, and a web file version is exported to another folder)?
Cracking work on a function that LR should really have covered already.


Yes, via the automatic publish feature. —Jeffrey

— comment by Dan on May 2nd, 2014 at 4:03am JST (1 year, 7 months ago) comment permalink

Very HAPPY! This is wonderful for the new Lightroom Mobile workflow!

I’ve managed to upload shots via Wi-Fi FTP canera module to the desktop, auto-import them (ignoring the nested folders who fooled Adobe auto-import feature) and move files to a specific destination!

Now the very last thing: it would be nice if the option to include the shots into a Collection (not a Publish one) could ask for the Collection name, not only the plugin name, in this way I should be able to publish to Lightroom Mobile in a much smoother way…

Yeah I know it’s a mess of a workflow but it works :)

Love this plugin..

— comment by lorenzo on May 17th, 2014 at 2:09am JST (1 year, 6 months ago) comment permalink


I’m currently evaluating the plugin and it works really well with smaller folders. Unfortunately, as you alluded to in earlier replies, it’s cpu intensive with larger folders. In my case, Folder Watch uses up to 85% of the cpu while monitoring a folder tree with about 9,000 photos. To get over this problem, I tried to setup a special watch folder where new photos would be added (from an Eye-Fi card) and then have Folder Watch move those photos to a central folder where all the older photos reside (thus substantially reducing the cpu workload). Unfortunately, Folder Watch only moves the photos and doesn’t preserve the folder structure in the new location. So I was wondering if at some point you would be able to add a checkmark which moves the folders (at least one level of sub-folders) along with the photos?

Basically, I’m setting up Lightroom for a parent and I want to make importing as easy as possible. Currently I have an Eye-fi card that automatically transfers photos from the camera and creates sub folders by date. With one central folder it’s easy to have other devices access the photos in a neat and relatively simple way. Other apps (like Picassa) handle this without any issues and so I’m hoping to duplicate this feature in Lightroom.

Finally, it would also be great if there was an option to suppress any error popups. On a few occasions, I got some error about a corrupt/missing file which kept popping up in a window (maybe about a dozen times). It would be ideal if the plugin either silently logged or just ignored the error and moved on.

Anyway, sorry for the long post. Any reply will be appreciated. Thank you.

The idea about preserving hierarchy is good, and I’ve just pushed a new version with it. The idea about quieting errors is also good, but too complex to work on at the moment, sorry. —Jeffrey

— comment by Sputnik on July 12th, 2014 at 3:05am JST (1 year, 4 months ago) comment permalink

Thanks for this great development and RL plugin.
Currently the following setup works for me.
Camera -> EOS Utility -> Hard disk -> LR and folder watch plugin imports images into LR library and exports (files are heavily shrinked) to a folder on disk (DropBox).

BUT I would prefer to avoid using EOS Utility and would like to make use of LR’s tethering instead. Is this possible? Did I miss something? Export should be triggered automatically after import.

Lightroom has tethering for many Canon SLRs, but I don’t use Lightroom’s tethering much, so I’m not familiar with all its options. I don’t recall any auto-export feature anywhere in Lightroom proper, though. Off the top of my head, your current approach is the best end-to-end solution I can think of. —Jeffrey

— comment by Christian Brand on July 20th, 2014 at 1:47am JST (1 year, 4 months ago) comment permalink

Hi Jeffrey

I’m having a look at your awesome FW plugin for LR. It’s 99% what I’m looking for, the remaining 1% could be just my ignorance though.

I’ve set up the FW to watch a folder (obviously) and then move any files to another folder maintaining the original file’s folder structure. for example “/Pics (the watched folder)/2014/month/day/filename.ext”. The files get moved to the destination folder and maintain this structure, all good so far!
However when the files are then imported in to LR, only the immediate folder containing the file is created and the imported file is added to this folder. So Lightroom only displays the “day” folder under the “Folders” panel.

Is it possible to maintain the folder structure from the watched folder up? So in this case lightroom would create the “2014/month/day” subfolders within as needed?

As i say, ignorance could play a part in my request. :)

many thanks!

The plugin can’t make those folders appear in Lightroom the way you want, but you can do so by right-clicking on the “day” folder (once it appears) and click “Show Parent Folder”. Keep doing that until “2014” is shown, and then from then anything later added by the plugin anywhere under “2014” will appear properly in Lightroom. You’ll have to do it again the first time you have a photo in each new year. —Jeffrey

— comment by Leejav on July 31st, 2014 at 2:36pm JST (1 year, 4 months ago) comment permalink

I have one question about this plugin. When the plugin moves files from the hotfolder to another location, is it possible to define a subfolder-name and filename at the time of importing, with some kind of popup screen?
Best regards,

That kind of interstitial roadblock sounds sort of counter to how the plugin would normally be used, I’d think. I don’t think it’d be a generally-useful feature, but perhaps email your use case and I’ll take a look… —Jeffrey

— comment by Mark W. on July 31st, 2014 at 5:32pm JST (1 year, 4 months ago) comment permalink

Hey Jeffrey.
I’m a guy from Germany – so sorry for my bad english.
I just decided to create my own semi-pro-photobooth.
In theory it works well with Lightroom 5.6. I am using a second display (22″) to run the slideshow of pictures that are tethered with eos70d – Lightroom5.6. That’s great.
Its possible to run personal presets like black&white or coloradjustment. That’s great, too.
But I can’t find an option to print out the last photo automatical with a “printer preset”.
Is there any solution in your software or is it possible to script it?
I’m looking forward th hear / read “good” news from you :-)
Thank you very much in advance!!!
Greetings from germany, Marco

Sorry, but Lightroom offers no plugin access to the print menu at all. )-: —Jeffrey

— comment by Marco on September 1st, 2014 at 9:38pm JST (1 year, 3 months ago) comment permalink

Hi Jeffrey,
I’ve been using folder-watch for a couple of years quite nicely as part of my VueScan workflow. Now I am getting more into video editing and have a tree of folders I started watching where I receive clips and stills from others that I need to catalog and compile in LR before doing real work in Premiere. The issue is that I routinely receive mpgs, pngs, avis, and some other formats that for some reason or another are not readable by LR. So, every time I launch LR I get dozens of error dialogs on the files that cannot be imported. Anyway to make this a little friendlier? I don’t want to exclude importing all pngs, avi’s, etc if I can help it. Maybe just make a log available in the plugin preferences that shows all the failed imports since LR was launched? Or something else that avoids me having to dismiss all the error dialogs one-by-one.

Also, would love if the file exclude filter supported directory paths that are children of the included parent paths.


I’ll have to check in detail, but I don’t think the plugin can differentiate between a file-corruption error and a format-not-known-by-Lightroom error, so I don’t want to hide those error messages. It’s not particularly convenient for your (uncommon) workflow, but perhaps move the offending files out of the way… —Jeffrey

— comment by David on September 13th, 2014 at 1:23am JST (1 year, 2 months ago) comment permalink

I understand not wanting to hide certain import errors. So how about a couple of incremental ideas-

1) Batch all the import errors and display a single dialog at the end of the import scan pass with a list of everything that failed. This will reduce the number of annoying dialogs to 1 when I am trying to do other work in LR.

2) Provide an option to hide the import error dialog, and allow the user to access the error log via the plugin properties window. IOW, a more simplified format than the current plugin log file that just shows the import errors. Maybe there is some non-modal way to indicate that the import scan resulted in at least 1 error without showing a modal dialog?

In the meantime, I will figure out a way to filter or move files that fail the LR import test. I do need to keep all the assets for my premiere pro projects together, so being able to exclude a specifically named subdirectory would certainly help here 😉 OTOH, I may need to look into switching back to using Bridge for this type of asset management, but last time I tried it just complicated things by duplicating the cataloging I already do in LR.


— comment by David on September 14th, 2014 at 12:34am JST (1 year, 2 months ago) comment permalink

Firstly great plugins thank you! (picasaweb!)

GOAL:- Import pictures into lightroom with YYYY\YYYY-MM-DD\Name

DATE is from the photos EXIF Data

I did read someone using another tool to pre-create this, but might as well then just use the standard lightroom ‘destination’ | ‘Date Format’ options. Wanted to avoid this manual process and just dump the photos into the watch folder…

Is it possible using the Exif data and not just Todays Date ?


It’s not impossible (I’d have to include a separate program the plugin can call out to to get the date), but it creates a can of worms that (at this point in my work schedule) doesn’t have enough benefit for enough people to justify working on it in lieu of other things. —Jeffrey

— comment by Rob-London on September 16th, 2014 at 3:30am JST (1 year, 2 months ago) comment permalink

I’ve been testing this plugin for few days. I have folder (with subfolders) on network drive for collecting pictures. And I set it as watch folder (with subfolders checked). But there is one subfolder (#recycle) where deleted photos are. And I don’t want plugin to check this subfolder. Is it possible to exclude it?

You can specify all children folders you actually want instead of the parent, I suppose. —Jeffrey

— comment by Matjaž on September 19th, 2014 at 3:54pm JST (1 year, 2 months ago) comment permalink


I am trying to use the ‘Folder watch’ plugin with LR5.6. A third party software is loader ‘watch folder’ with latest pictures and I would like to apply a preset to these images and export them as jpeg in another folder. Using the plugin, The new images in the watch folder are moved to another folder (as per my settings) but I cannot get LR to apply preset and export the images to another folder.

This is the part I cannot implement. Do I need to download another plugin for this or I am missing something.
“It also allows for automatic processing of imported images, and also automatic export, creating a fully-automatic end-to-end processing system.”

Upon import of new image settings:
1. Apply develop preset – selected one of the available presets
2. All other settings are blank or none including the ‘add to standard collection’, publish collection and publish this collection. – I think this is where I am going wrong. Any suggestion?


Automatic export is via a publish service, either one of the built in ones or one via a plugin. The Collection Publisher and Folder Publisher on my plugin page are popular choices. Once you’ve got the publish service set up to export how you like, you have Folder Watch add photos to the publish service and then “publish” the publish service. —Jeffrey

— comment by KP on September 26th, 2014 at 5:20am JST (1 year, 2 months ago) comment permalink

I’m shooting Nikon RAW files and I currently have the plugin setup to move files from a “New Shot” folder to an “In Process” folder before importing to LR5. It moves the .NEF files but not the sidecar .XMP files. I’m a novice shooting RAW. Do I need to move the .XMP files manually or can I just delete them after import? Not sure how LR handles these. I am exporting DNG and JPEG from LR after editing.

I’m not sure how you’d end up with XMP files right away, but the plugin should indeed handle sidecar files, and as of the version I just released, it does. Thanks for the heads up. —Jeffrey

— comment by Eric on October 11th, 2014 at 5:41am JST (1 year, 2 months ago) comment permalink

Hi Jeffrey,

thank you for creating this great plugin, it helps me a lot! One important request for me though: would it be possible to detect updated metadata (e.g. star ratings) in order to automatically re-import these files? I think you already wrote that automatic deletions (so actually syncing) would not be possible, but how about using the Lightroom Mobile interface for that? Or is it not included in the LR API?

I’m not sure what you’re asking for, but I’d think that you wouldn’t want to re-import files, just update their metadata. It sounds like Lightroom’s “Synchronize Folder” is what you want. It doesn’t sound like something this plugin would tackle… —Jeffrey

— comment by Mike on December 14th, 2014 at 9:54am JST (11 months, 13 days ago) comment permalink

Hi Jeffrey, this is more a question than a comment: Folderwatch unfortunately does not recognize Hasselblad RAW files (.fff) to import automaticaly. Am I doing somthing wrong or is it realy not working?

Thnks in advanced for your answer.


I’ve added FFF files to the list. Unfortunately, I have to keep the list by hand, so can add them only when I hear about them. —Jeffrey

— comment by Kim on February 15th, 2015 at 2:11am JST (9 months, 12 days ago) comment permalink

Hey Jeffrey, Thanks so much for your work on this plugin.

I do have a quick question and apologies if it has been covered.

My current workflow is something along the lines of:

Import into Lightroom, Auto Tone, Auto WB, Export to Folder >>>
Import Auto Toned & Auto WB images, apply user preset.

The reason I export and reimport is that the suser presets reset the auto tones work if I was just Auto Tone/WB then adding user preset however the stage of exporting and reimporting alters this as it seens the newly imported jpg as a zeroed image.

So my question is, is there anyway to use Folder Watch to automate this process? Basically I guess, watching 2 different folders and applying different present based on the folder?

Sorry if im not clear, hope you follow

Kind regards

This not something the plugin would do… that kind of workflow destroys the whole “non-destructive editing” paradigm that’s the center of Lightroom’s greatness. Perhaps consider the Relative Adjustments plugin instead. —Jeffrey

— comment by Tom on April 28th, 2015 at 7:31am JST (6 months, 29 days ago) comment permalink

I’m running the latest version of Lightroom CC (2015) on Windows 7 and the “Automatically restart scan when Lightroom starts” check box doesn’t seem to be working. I enable the Scan and check that box, restart and then scan will be disabled again.

Any thoughts on this?

Otherwise great product! Love it!


It sounds as if your Lightroom Preferences file has started to go corrupt. You might try flushing it (see link here)… &msdash;Jeffrey

— comment by Brian on May 30th, 2015 at 2:00am JST (5 months, 28 days ago) comment permalink

Running LR 6.0.1 Standalone with Folder Watch Plugin v20150420.94.

I have it set to watch my Dropbox “Camera Uploads” folder, and with LR5 it worked fine for both photos and videos.

Now I get this when it attempts to scan:

Error processing “/Users/chris/Documents/Cloud/Dropbox/Camera Uploads/2015-05-29”

An unknown error has occurred while reading the video file. Connecting to Dynamic Link server failed.

— comment by Chris on May 31st, 2015 at 12:04am JST (5 months, 27 days ago) comment permalink

Just an update to my last comment. It appears that importing Video with LR 6.0.1 natively also fails.

Here are screenshots for both the Folder Watch Error and the LR Native Error. Looks to be a problem with LR6, not this plugin.

Could you report this to Adobe? I don’t even know what a “Dynamic Link server” is… )-: —Jeffrey

— comment by Chris on May 31st, 2015 at 12:10am JST (5 months, 27 days ago) comment permalink

I’d like to import objects from different folders into different collections (photos into one collection, videos into another). Is that possible?


Not directly, but you might be able to achieve the same effect with appropriate smart-collection rules. —Jeffrey

— comment by Brian on October 5th, 2015 at 8:30am JST (1 month, 22 days ago) comment permalink

Hello Jeffrey, Is this plugin compatible with Ligthroom 6.2 and its new import dialog ? Thanks in advance ! Etienne

It’s unrelated to Lightroom’s import, so yeah, it’s fine in Lr6.2. —Jeffrey

— comment by Etienne Charlier on October 7th, 2015 at 2:52am JST (1 month, 20 days ago) comment permalink

Hi Jeffrey,

This Plugin is very useful for my application.
However, i found that the File “unmodified for x seconds” have some problem. When the first scan, lightroom found the file in watch folder is too new, then it will not import the file. For the next scan, the unmodified time had passed, but lightroom just skipped that file instead of importing it.

I am using Lightroom CC, is it a compatible issue?


There’s a option to ignore files that are there during the first scan (so that you get only “new” files). Perhaps that’s why it’s getting skipped? You might have to send a log with specific details… —Jeffrey

— comment by Fai Chan on November 5th, 2015 at 10:12am JST (3 weeks, 1 day ago) comment permalink
Leave a comment...

All comments are invisible to others until Jeffrey approves them.

Please mention what part of the world you're writing from, if you don't mind. It's always interesting to see where people are visiting from.

You can use the following tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Subscribe without commenting