Learn how Safari app extensions extend the web-browsing experience in Safari by leveraging web technologies and native code.
Framework
- Safari
Services
Overview
A Safari app extension can add new functionality to Safari by reading and modifying webpage content. These capabilites enhance the tools you use, the tasks you can accomplish, and the data you can access in your browser. A Safari app extension is uniquely useful because it can communicate with a native app. Sharing data between an app and Safari lets you integrate app content into Safari or send web data back to the app, enabling a unified experience for a web version and native version of an app.

Safari app extensions are available in macOS 10.12 and later, and in OS X 10.11.5 with Safari 10 installed.
Note
Previously, Safari extensions were used to communicate between apps and Safari. If you’ve already developed a Safari extension, see the Safari Extensions Development Guide for more information. To migrate an existing Safari extension, see Converting a Legacy Safari Extension to a Safari App Extension.
Safari app extensions use a combination of JavaScript, CSS, and native code written in Objective-C or Swift. Because they’re built on the standard app extension model, you get many native app benefits:
Safari app extensions are bundled inside an app and distributed through the App Store.
Because your app and Safari app extension are distributed together, you minimize the chances of mismatched revisions being installed.
Your Safari app extension can securely communicate with your app using shared resources.
To become familiar with app extension concepts, see App Extension Programming Guide.