<!--
{
  "documentType" : "article",
  "framework" : "SafariServices",
  "identifier" : "/documentation/SafariServices/setting-safari-app-extension-feature-keys",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Setting Safari app extension feature keys"
}
-->

# Setting Safari app extension feature keys

Set keys for permissions, scripts, style sheets, contextual menu items, and toolbar items in the information property list file.

## Discussion

After selecting which default keys to use in your Safari app extension’s information property list file, select the appropriate feature keys to identify files and UI items.

The table below lists the primary keys in the `NSExtension` dictionary that are associated with Safari app extension features. For information on available subkeys, see the link in the primary key description.

|Key                    |Type      |Description                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|-----------------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|`SFSafariContentScript`|Array     |An array for adding content scripts to the extension. Each value in the array is a dictionary that provides the filename for a content script. ![](spacer) For subkeys, see <doc://com.apple.safariservices/documentation/SafariServices/using-content-script-and-style-sheet-keys>.                                                                                                                                                                          |
|`SFSafariContextMenu`  |Array     |An array for adding items to Safari’s context menu — the menu that appears when the user Control-clicks a webpage. For more information, see <doc://com.apple.safariservices/documentation/SafariServices/adjusting-settings-for-contextual-menu-items>. ![](spacer) For subkeys, see <doc://com.apple.safariservices/documentation/SafariServices/using-contextual-menu-and-toolbar-item-keys>.                                                              |
|`SFSafariStyleSheet`   |Array     |An array for adding style sheets to the extension or to pages from a limited subset of URLs. Each value in the array is a dictionary that provides the filename for a content script. ![](spacer) For subkeys, see <doc://com.apple.safariservices/documentation/SafariServices/using-content-script-and-style-sheet-keys>. For more information, see <doc://com.apple.safariservices/documentation/SafariServices/injecting-css-style-sheets-into-a-webpage>.|
|`SFSafariToolbarItem`  |Dictionary|A dictionary for adding a toolbar item to Safari windows. ![](spacer) For subkeys, see <doc://com.apple.safariservices/documentation/SafariServices/using-contextual-menu-and-toolbar-item-keys>.                                                                                                                                                                                                                                                             |
|`SFSafariWebsiteAccess`|Dictionary|An optional dictionary that specifies which webpages the Safari app extension can access, if any. ![](spacer) For details about configuring website access, see <doc://com.apple.safariservices/documentation/SafariServices/adjusting-website-access-permissions>.                                                                                                                                                                                           |

In addition to the `NSExtension` keys, the `Info.plist` file includes an `NSHumanReadableDescription` key for your Safari app extension. When you install the app extension, the string value of this key appears in Safari > Settings > Preferences as the example below shows:

![A screenshot of the description that appears in Safari > Settings > Preferences when a user selects your extension. A heading reads My Extension 1.0 from FirstSafariExtensionApp. Below that, a description reads This is a Safari Extension. You should tell us what your extension does here. At the bottom is a button labeled Uninstall. ](images/com.apple.safariservices/media-3897929@2x.png)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)