Blog

Sync my Finder

October 03, 2024

GitFinder revolves completely around Finder. All GitFinder's functionality is available from Finder's contextual and toolbar item menus (let's forget Services menu for a moment, but that's also macOS/Finder stuff anyway). There's no other way to invoke any of GitFinder's; operation. And that was the whole idea: a small git gizmo, sitting hidden and coming front when necessary. For this to work, GitFinder embeds Finder Sync extension. This extension is responsible for showing GitFinder related menu items in Finder, used to invoke GitFinder operations. It is also responsible for many other things, but these aren't important for this story. Important thing is that macOS extensions are very unusual beasts. And Finder Sync extensions may very well be the most unusual of them all.

Even though Finder Sync extensions are embedded and distributed in their containing applications (like containing application GitFinder embeds its extension GitFinderSync), the actual hosting application for those extensions is Finder. They modify Finder's appearance and behavior, adding menu items and icon badges. Hence, fundamental things related to these extensions, like registering with OS, start and termination, as well as enabling and disabling them, aren't controlled by the containing application, but by Finder and macOS instead. Registration with OS is done by Launch Services. It usually happens at the time the containing application is launched for the first time (after passing TCC quarantine check). Starting and termination of Finder Sync extension is also controlled by Finder/macOS and there may even be more processes of the same extension running, depending on how many Finder windows and file selectors (open/save panels) are open. The containing application can surely try to start and terminate its embedded extension, but the documentation clearly discourages that, since it can collide with how Finder controls them.

Finally, there's enabling and disabling Finder Sync extensions. Even though an extension can be installed and registered, per user request it can be disabled (thus, completely ignored) and enabled. Containing application can do this programmatically, by tasking pluginkit command line tool to list, enable and disable (any, not just Finder Sync) extension, or using private NSExtension class found in FoundationKit framework. End users traditionally performed this task in System Settings application (System Preferences on macOS 12 Monterey and earlier). Well… Until macOS 15 Sequoia! In the lates incarnation of macOS, there isn't any graphical UI way to manage Finder Sync extensions! And that's the whole reason for this blog post.

Managing Finder Sync extensions in System Settings/Preferences has always felt to me unpolished and terminology confusing. Let's remember how it looked like historically. On macOS 12 Monterey and earlier, all Extensions settings were easily available from the main view in System Preferences application, in the "Extensions" tab. Once there, there were actually two places from where you could manage Finder Sync extensions. The first one is "Added Extensions" section. Extensions listed there are from installed third party applications. Since macOS doesn't come with any Finder Sync extension on its own, all Finder Sync extension were found in "Added Extensions" (bundled into third party applications). Revealing "All Extensions" looked something like in the picture below:

In the example above you can see Dropbox adding two extensions, "Share Menu" (Sharing extension) and "Finder Extensions" (actually Finder Sync), while others offer Finder Sync extension only. The second place for managing Finder Sync extensions is "Finder Extensions" section. It looked something like in the following picture:

You can see above that this section doesn't display names of containing applications/bundles, but actually names of extension bundles ("GitFinderSync", "Dropbox Finder Extension"…). Note that there is also "Finder" section, but it has nothing to do with Finder Sync extensions. It's for other (types of) Finder extensions related to file manipulation (PDF creation, trim, rotate, markup…). What this section is all about can be seen in the picture below:

Having two separate Finder related sections "Finder Extensions" and "Finder" was always confusing to me and I never understood why it wasn't consolidated into one single place.

And then, with macOS 13 Ventura, a brand new System Settings application debuted, which was supposed to reorganize ever-growing amount of system settings and also show SwiftUI capabilities on macOS. In my humble opinion, it failed on both accounts. SwiftUI aside, reorganization feels illogical in many places, putting certain settings where many people wouldn't expect them. It seems Apple partially agrees with this, because System Settings application has been going through continuous reorganization and settings places shifting ever since it was introduced more than two years ago. This time around, "Extensions" settings were deeply buried into "Privacy & Security". Revealing that section and scrolling down to the very bottom shows subsection "Others", which finally shows a link to "Extensions" settings.

Revealing "Extensions" settings in System Settings on Ventura shows the same subsections like in System Preferences on Monterey, with one, for this story very important, change… "Finder Extensions" subsection is missing! The only place to find Finder Sync extensions settings is "Added Extensions" subsection. Early versions of Ventura even had "Finder Extensions" subsection, dedicated to Finder Sync extensions, but it was buggy and unreliable. In my case, it never showed all Finder Sync extensions I had in my system, and the list of shown extensions was different after every restart of the system.

Once you finally reach "Added Extensions" on Ventura and click on it, you see something like in the following picture:

It looks similar to what we saw in System Preferences on Monterey, only captured within a main window sheet. All Finder Sync Extensions are shown together with other extension types, added from third party containing applications (like "Dropbox Sharing"). Sheet containing interface isn't very convenient, but at least it was present and it worked properly.

And then macOS 15 Sequoia came some 17 days ago. In its third reincarnation, System Settings application experienced third rearranging and shifting. "Extensions" settings are now under "General" section, "Logging Items & Extensions" subsection. Revealing it shows something like in the following picture:

Yes, you see it right, there is no "Added Extensions" section! Non Finder Sync extensions added from the third party application are present in their respective subsections, like for example "Dropbox Sharing" is present in the "Sharing" subsection, like shown in the following picture:

But, where to find Finder Sync extensions? "Added Extension" section is no more, and Finder Sync related subsection "Finder Extensions" disappeared in the early versions of Ventura. There's still "Finder" subsection, but like before, it has nothing to do with Finder Sync extensions, like shown in the following picture:

So, how to manage Finder Sync extensions on Sequoia? You get it right, you CANNOT! At least, not using System Settings application. Your only escape is kicking off the terminal and using pluginkit command line tool. It's simple and well explained in its man page. But it isn't very convenient, especially for non tech-savvy users. Wouldn't it be much better to simple click on a switch in graphical UI? It surely would and I hope Apple will realize how huge omission this is and return this settings in upcoming upgrades to Sequoia. But until Apple does it, you have just gotten another escape route…

Say hello to FinderSyncer!


It's a very simple tool, running on Sequoia only (where it's only needed), which helps you manage all your Finder Sync extensions just like before, with simple click on switch UI controls. During the whole Sequoia beta period and in this early weeks of its official release, I've been explaining many times to users of GitFinder and FileUtils, who sent support requests, how to manage Finder Sync extensions using pluginkit. While doing it over and over again I came to realize how handy a tool like FinderSyncer can be. I think its functionality really belongs to OS (System Settings) and I was holding the urge to release it, hoping that Apple will get their acts together and fix it. Since I don't see any change yet, even not in the latest macOS 15.1 Developer Beta, I suspect the fix won't appear in the official release of 15.1 either. Therefore I decided to officially offer FinderSyncer to everyone interested.

I hope this tool will be very short lived and that Apple will return similar settings into the System Settings application, where it really belongs. Until then, enjoy FinderSyncer.

← All articles