Where apps hide your files
A Safari extension is bundled inside a Mac app, so its files sit in that app's package. You can list where each one is, turn it off, and uninstall it the way Apple documents.
Safari extensions are not stored in a Safari folder. Each one is an extension bundle inside an ordinary Mac app, and that app is where the files live. For an extension installed from the App Store, that is usually:
/Applications/<ExtensionApp>.app/Contents/PlugIns/<Name>.appex
To see exactly where every Safari web extension on your Mac sits, ask the system. This command only lists:
pluginkit -mAvv -p com.apple.Safari.web-extension
Each result shows a Path = line for the .appex bundle and a Parent Bundle = line for the app that contains it. On the Mac used for this guide it printed one extension, and its parent was a development build in a project folder, not in Applications. The app can be anywhere, so read those lines instead of assuming.
Content blockers use a separate extension type, so list them with the same command and com.apple.Safari.content-blocker in place of com.apple.Safari.web-extension.
Safari itself keeps only each extension's on/off state and settings. Those sit in Safari's container:
~/Library/Containers/com.apple.Safari/Data/Library/Safari/WebExtensions/
~/Library/Containers/com.apple.Safari/Data/Library/Safari/AppExtensions/
On the Mac used for this guide, WebExtensions held a small Extensions.plist and AppExtensions was empty. The contents vary with the Safari version and your extensions, and the files are not meant to be edited by hand.
To open the app that holds an extension, copy the path from the Parent Bundle = line and reveal it in Finder:
open -R "/path/from/Parent Bundle line/Example.app"
That only selects the app in a Finder window and changes nothing.
Do this in Safari, not in Finder. These are the steps from Apple's support article:
Apple's Safari User Guide gives a second route: delete the app that contains the extension. If Uninstall sends you to that app, quit Safari, then move the app to the Trash in Finder. Apple's article adds that a custom extension created with Describe an Extension has a Delete button instead of Uninstall.
pluginkit command above and read the Parent Bundle line.~/Library/Application Support/Google/Chrome/<profile>/Extensions, which has nothing to do with Safari..safariextz extensions no longer load in current Safari. Today's extensions come as app extensions or web extensions bundled in apps.Developers package a web extension for Safari with Xcode, which builds the extension and embeds it in a Mac app. Apple's developer documentation says the extension is ready in Safari as soon as that app runs, wherever the app lives.
Unsigned builds need a setting. In Safari 17 or later, turn on Show features for web developers in Safari > Settings > Advanced, then tick Allow unsigned extensions in the Developer tab. In Safari 16 and earlier it is Develop > Allow Unsigned Extensions. Apple notes the setting resets when you quit Safari. The Developer tab also has Add Temporary Extension…, which loads an extension from a folder or zip file, so a temporary extension may not live inside any app at all.
Extensions are small, so size rarely matters. If an extension app is large, it is because the app is, and removing the app is what frees the space. To check:
du -sh /Applications/<ExtensionApp>.app
To move to a new Mac, install the extension apps again from the App Store (or copy the app for ones from outside the store), open each app once, then enable the extensions in Safari > Settings > Extensions. Copying files out of Safari's container does not carry the extensions across.
Extension bundles end in .appex and sit inside the app package, under Contents/PlugIns. Spotlight and Finder searches leave package contents out, so typing the extension's name finds the app and not the extension file. Safari's container is inside ~/Library/Containers, which those searches also leave out.
Search for the extension by its file type. Typing .appex in Everywhere lists every extension bundle on the Mac, including the ones inside app packages, and adding part of the app name narrows it. Searching Extensions.plist finds Safari's own state file. Everywhere matches file names only, and it reaches the Safari container once it has Full Disk Access. Press ⌘↵ to reveal a result in Finder.
Inside the app that provides them, in Contents/PlugIns as an .appex bundle. Run pluginkit -mAvv -p com.apple.Safari.web-extension in Terminal to list each one's path and parent app.
Open Safari, choose Safari > Settings > Extensions, select the extension and click Uninstall. Apple also lists deleting the app that contains the extension as a way to remove it.
In Safari > Settings > Extensions, deselect the checkbox next to the extension. It stays installed and you can turn it back on later.
Apple says that to uninstall an extension from all your devices, you must uninstall it on each device. Removing it on the Mac leaves the others alone.
Everywhere keeps track of every file on your Mac — including the folders Spotlight hides and drives you have unplugged. Free for a day, then $19 once.
Version 2.20.3 · macOS 13+ · 4.7 MB · notarised