In this last batch of updates to my apps for the next few weeks, there are four more popular tools, covering Unicode normalisation, appexes, logs, and document versions.
Unicode normalisation
Perhaps the earliest problem with APFS was its lack of Unicode normalisation for file and folder names. This has been a standard way to address accented and other characters that appear identical but have different codes. Apple addressed that, first in providing a normalisation layer on top, then by incorporating it into APFS. However, it can still prove a problem, both within apps and when working with other file systems. Apfelstrudel is a simple app that reveals any potential problems with normalisation, and helps you use the form most appropriate. Version 1.6 has an overhauled interface, and has been rebuilt with a new app icon ready for macOS 26 Tahoe. This version supports macOS from Big Sur onwards.
App extensions, or appexes, are numerous in recent versions of macOS, and widely used by apps. This simple utility shows all those managed by PlugInKit, complete with their UUIDs, to help you manage them. Version 1.1 has an overhauled interface, and has been rebuilt with a new app icon ready for macOS 26 Tahoe. This version supports macOS from Sonoma 14.6 onwards.
AppexIndexer 1.1 is now available from here: appexindexer11
and from its Product Page. It doesn’t yet support auto-update.
Logs
Until I started development of LogUI, Ulbow was my preferred app for browsing the Unified log. It has extensive features, with full support for the use of predicates, a chart showing the most frequent sources of log entries, and support for creating and using logarchives, including those from iOS and iPadOS. Unlike LogUI, it uses the log command to obtain log extracts, enabling it to show entry times in nanoseconds. It also displays extracts in Rich Text rather than as a list. Version 1.11 fixes a crashing bug when handling some logarchives, has an overhauled interface, and has been rebuilt with a new app icon ready for macOS 26 Tahoe. This version supports macOS from Big Sur onwards, and is recommended for all users.
Ulbow 1.11 is now available from here: ulbow111
from its Product Page, and via its auto-update mechanism.
Document versions
While Revisionist (also recently updated) provides a suite of tools to work with macOS document versions, Versatility handles one of those tasks with greater ease, creating version archives, and reconstituting them into documents. Simply drop a file onto its window and it will be converted into a folder containing each saved version as a separate document. Drop one of those archive folders onto its window and it will be reconstituted into a document with all those previous versions. This makes it simple to preserve versions when moving documents between volumes or computers, and for archival purposes. Version 1.1 has been rebuilt with a new app icon ready for macOS 26 Tahoe, and supports macOS from Big Sur onwards.
Most of my other apps that haven’t yet been updated for Tahoe should still run perfectly well, although their app icons won’t appear the same as before. I’m now turning my attention to the successor to SilentKnight and Skint, and my virtualisers Viable, ViableS, Vimy and Liviable. Once I’m done with those, I’ll return and complete my other apps.
With well over 400 app extensions and plugins managed by PlugInKit in Sequoia 15.4.1, this article tries to give an overview of their management and control, as well as the diversity of their functions. This follows:
Although Apple refers to the type identifier for appexes as NSExtensionPointIdentifier in its developer documentation, where it lists some of them, in macOS this is also synonymous with NSExtensionPointName. In pluginkit dumps, it’s referred to as the SDK, and LaunchServices dumps use both terms, NSExtensionPointName in NSExtensionsAttributes, and NSExtensionPointIdentifier in NSExtension. This is even more confused in the log, where PlugInKit’s entries use the term NSExtensionPointName, but use NSExtensionIdentifier to refer instead to the appex-specific identifier, such as com.apple.iCal.CalendarWidgetExtension.
For the sake of clarity and consistency here, I’ll refer to the appex type identifier as NSExtensionPointName.
Appex locations
Many appexes supplied in macOS are stored as bundles inside dedicated collections such as /System/Library/ExtensionKit/Extensions or in frameworks. Where they are supplied in an app or similar bundle, they’re normally in a PlugIns folder, although according to this article QuickLook generators should be installed in Library/QuickLook, and Spotlight importers in Library/Spotlight.
Types and management
The rest of this article lists appex types, omitting the universal prefix com.apple., according to their management and discovery by PlugInKit during startup. I provide for each, as far as I’m able to tell, the type-specific manager, any controls provided in System Settings or elsewhere, and illustrative examples and other relevant information.
Type-specific managers are those services or subsystems that PlugInKit hands over to during discovery. For example, when it discovers appexes that extend QuickLook by providing either thumbnails or previews, PlugInKit hands those over to com.apple.quicklook.ThumbnailsAgent to manage.
Many appex types aren’t exposed in System Settings, are managed by PlugInKit, but don’t appear to undergo startup discovery. I have relegated those to the appendix at the end. Most of those are single-appex types, and others are only used by macOS.
Appex types that are managed in System Settings and by PlugInKit, and undergo startup discovery:
FinderSync, managed by the Finder, and controlled in File Providers settings, e.g. Keka Finder Integration
quicklook.preview, managed by com.apple.quicklook.ThumbnailsAgent, and controlled in Quick Look settings; these are modern substitutes for qlgenerators
quicklook.thumbnail, managed by com.apple.quicklook.ThumbnailsAgent, and controlled in Quick Look settings; these are modern substitutes for qlgenerators
ui-services, managed by the Finder, and controlled in Actions settings, includes Markup, ShareSheetUI (not exposed in settings)
Appex types that aren’t managed in System Settings, but are managed by PlugInKit, and undergo startup discovery:
AppSSO.idp-extension, managed by AppSSOAgent, includes Kerberos and Sign In With Apple; these are single-sign-on extensions
appstored-services.testflight, managed by appstoreagent; these handle App Store TestFlight
AudioUnit, managed by AudioComponentRegistrar and axassetsd, for WardaSynthesizer
AudioUnit-Speech, managed by AudioComponentRegistrar and axassetsd, include KonaSynthesizer and AUSPs
AudioUnit-UI, managed by AudioComponentRegistrar
cache_delete_extension, managed by deleted; these support app-specific cache management
contacts.donation, managed by contactsdonationagent; these exchange info with Contacts
ctk-tokens, managed by ctkd, include CryptoTokenKit and PlatformSSOToken; these handle tokens for CryptoTokenKit
diagnosticextensions-service, managed by ControlCenter and diagnosticextensionsd, includes many service-specific Diagnostic Extensions
email.extension, managed by maild, e.g. SpamSieve; these are Mail plugins
fileprovider-nonui, managed by the Finder, includes iCloud Drive and PhotosFileProvider
services, managed by the Finder; none listed
spotlight.import, managed by mdbulkimport, includes PDFImporter
spotlight.index, managed by corespotlightd, includes system extensions but not mdimporters
textinputmethod-services, managed by imklaunchagent, includes many Input Methods
usernotifications.content-extension, managed by NotificationCenter, includes ContentExtensions
widgetkit-extension, managed by chronod, includes system and third-party widgets.
Significant appex types that are managed by PlugInKit, but don’t undergo startup discovery:
appintents-extension, multiple instances
intents-service, many IntentsExtensions
photo-editing, Photos editing, controlled in Photos Editing settings
Safari.extension, Safari extensions, managed in Safari settings
share-services, many Share extensions, managed in Sharing settings
widget-extension, only a couple, e.g. iStat Menus.
Appex types that apparently aren’t managed by PlugInKit, but are controlled in System Settings:
Dock Tiles
Finder, these are services offered in the Finder’s Services menu
Spotlight, these are mdimporters.
also Safari.content-blocker, which is managed in Safari settings rather than System Settings.
Appex types that aren’t apparently managed by PlugInKit or controlled in System Settings: