An overview of app extensions and plugins in macOS Sequoia
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:
- a general introduction
- an account of discovery and management by PlugInKit
- AppexIndexer to examine appexes known to PlugInKit
- Apple’s appex Home page for developers.
Appex types
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 Integrationquicklook.preview
, managed by com.apple.quicklook.ThumbnailsAgent, and controlled in Quick Look settings; these are modern substitutes for qlgeneratorsquicklook.thumbnail
, managed by com.apple.quicklook.ThumbnailsAgent, and controlled in Quick Look settings; these are modern substitutes for qlgeneratorsui-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 extensionsappstored-services.testflight
, managed by appstoreagent; these handle App Store TestFlightAudioUnit
, managed by AudioComponentRegistrar and axassetsd, for WardaSynthesizerAudioUnit-Speech
, managed by AudioComponentRegistrar and axassetsd, include KonaSynthesizer and AUSPsAudioUnit-UI
, managed by AudioComponentRegistrarcache_delete_extension
, managed by deleted; these support app-specific cache managementcontacts.donation
, managed by contactsdonationagent; these exchange info with Contactsctk-tokens
, managed by ctkd, include CryptoTokenKit and PlatformSSOToken; these handle tokens for CryptoTokenKitdiagnosticextensions-service
, managed by ControlCenter and diagnosticextensionsd, includes many service-specific Diagnostic Extensionsemail.extension
, managed by maild, e.g. SpamSieve; these are Mail pluginsfileprovider-nonui
, managed by the Finder, includes iCloud Drive and PhotosFileProviderservices
, managed by the Finder; none listedspotlight.import
, managed by mdbulkimport, includes PDFImporterspotlight.index
, managed by corespotlightd, includes system extensions but not mdimporterstextinputmethod-services
, managed by imklaunchagent, includes many Input Methodsusernotifications.content-extension
, managed by NotificationCenter, includes ContentExtensionswidgetkit-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 instancesintents-service
, many IntentsExtensionsphoto-editing
, Photos editing, controlled in Photos Editing settingsSafari.extension
, Safari extensions, managed in Safari settingsshare-services
, many Share extensions, managed in Sharing settingswidget-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:
- authentication-services-account-authentication-modification-ui
- authentication-services-credential-provider-ui
- broadcast-services-setupui
- broadcast-services-upload
- callkit.call-directory
- classkit.context-provider
- dt.Xcode.extension.source-editor
- fileprovider-actionsui
- identitylookup.classification-ui
- identitylookup.message-filter
- intents-ui-service
- keyboard-service
- networkextension.app-proxy
- photo-project
- tv-top-shelf
Appendix:
Appex types that aren’t exposed in System Settings, are managed by PlugInKit, but don’t undergo startup discovery
System, multiple appexes:
followup-extension – multiple FollowUpExtensions
lighthouse.SAOrchestratedExtension – multiple Ingestors
message-payload-provider – multiple
mlhost.worker – many ML-related
mlruntime.extension-point-high
mlruntime.extension-point-ondemand
mlruntime.extension-point-restricted
screensaver – several ScreenSavers
Settings.extension.ui – System Settings
storagemanagement – many apps
usernotifications.service – several NotificationServiceExtensions
wallpaper – several Wallpapers
System, single-app extensions:
amsengagementd-extension – Books, News
amsutility-extension – News
app.non-ui-extension – Swift Playground
app.non-ui-extension.multiple-instances – Swift Playground
app.ui-extension.multiple-instances – Swift Playground
applemediaservices.extensions.compose-review – ComposeReviewExtension
askpermission-extension – App Store related
askto.extension – AskToMessagesHost
calendar.EventKitUIRemoteUIService – EventKitUIRemoteUIExtension
calendar.virtualconference – FaceTimeExtension
contact-view – System Service
contacts.avatar-picker-ui – AvatarPickers
deviceactivity.monitor-extension – ScreenTimeDeviceActivityMonitorExtension
deviceactivityui.report-service – DeviceActivityReportService
extension-view-service-sample-rk – RPVideoEditorExtension_macOS, ReplayKit
extensionkit.app-extension-management – AppExtensionManagement
extensionkit.app-extension-settings – ExtensionKit components
facetime.notification – FaceTimeNotificationExtension
feedback.drafting-extension – Feedback
freeform.USD-renderer-remote-UI – USDRendererExtension
fskit.fsmodule – exfat and msdos file systems (File System Extensions)
GenerativePlaygroundUI.remoteUI – Image Playground
groupactivities – FaceTime RemotePeoplePicker
Home.ui-extension.userList – HomeUIUserList
ImagePlayground.NonUIExtension – GPNonUIExtension
ManagedSettings.service – ManagedClientMSExtension
mapkit.private.RemoteUI – MKRemoteUI for MapKit
mobileslideshow.photo-picker – PhotoPicker and PhotosPicker
networkextension.packet-tunnel – network extensions
PaperKit.extension.ui – PaperKitExtension
PassKit.in-app-payment-ui – Wallet
pdfkit-private – PDFExtensionView in PDFKit
people-picker – System Service
people.legacy.extension – PeopleLegacyMessageService
Photos.MacMusicPickerExtension – PhotosMacMusicPickerExtension
preference.security.privacy – Apple Advertising
preference.sharing.service – Media Sharing
private.translation-api-support – TranslationAPISupportExtension
private.translation-ui – Translate
private.voiceshortcuts-ui – three extensions
replaykit.broadcast-picker – RPBroadcastActivityExtension_macOS in ReplayKit
screentime.web-service – ScreenTimeWebExtension.