Supported Manifest Keys

Descriptions of all manifest keys supported by Thunderbird.

Several manifest keys in the following table are common to Thunderbird and Firefox and link to MDN description pages. Please be aware, that MDN is dedicated to browsers and of course to Firefox. Some information listed on MDN may not apply to Thunderbird.

Manifest Key

Description

author

Defines the extension's author. If the developer key is supplied and it contains the name property, it will override the author key. There is no way to specify multiple authors. This is a localizable property.

background

Use the background key to include one or more background scripts, and optionally a background page in your extension. Background scripts are loaded as soon as the extension is loaded and stay loaded until the extension is disabled or uninstalled,

browser_action

A browser action is a button that your extension can add to Thunderbird's main mailTab toolbar. The button has an icon, and may optionally have a popup whose content is specified using HTML, CSS, and JavaScript.

cloud_file

Defines a file link provider, which can be used to upload large attachments to a server, instead of attaching them directly to the email.

commands

Use the commands API to add keyboard shortcuts that trigger actions in your extension, for example, an action to open a browser action popup.

content_scripts

Instructs Thunderbird to load content scripts into web page tabs and windows, whose URL matches a given pattern.

content_security_policy

The default policy restricts the sources from which a content script can load <script> and <object> resources, and disallows potentially unsafe practices such as the use of eval(). See Default content security policy to learn more about the implications of this.

compose_action

A compose action is a button that your extension can add to the toolbar of Thunderbird's message compose tabs. The button has an icon, and may optionally have a popup whose content is specified using HTML, CSS, and JavaScript.

default_locale

This key must be present if the extension contains the _locales directory, and must be absent otherwise. It identifies a subdirectory of _locales, and this subdirectory will be used to find the default strings for your extension. See Internationalization.

description

Defines a short description of the extension, intended for display in the Add-ons Manager. This is a localizable property.

developer

Defines the name of the extension's developer and their homepage URL, intended for display in the add-on manager tab. The name and url properties, if present, will override the author and homepage_url keys, respectively. This is a localizable property.

dictionaries

The dictionaries key specifies the locale_code for which your extension supplies a dictionary.

homepage_url

URL for the extension's home page. If the developer key is supplied and it contains the url property, this will override the homepage_url key.

This is a localizable property.

icons

The icons key specifies icons for your extension. Those icons will be used to represent the extension in components such as the Add-ons Manager.

manifest_version

This key specifies the version of manifest.json used by this extension.

Currently, this must always be 2.

message_display_action

A message display action is a button that your extension can add to the toolbar of Thunderbird's message display tabs. The button has an icon, and may optionally have a popup whose content is specified using HTML, CSS, and JavaScript.

name

Defines the name of the extension. This is used to identify the extension in the Add-on manager and on sites like addons.thunderbird.net.

optional_permissions

Defines permissions, which should be requested dynamically (when needed) and not during install.

options_ui

Defines an options page for your extension.

permissions

This key requests special powers for your extension. This key is an array of strings, and each string is a request for a permission.

protocol_handlers

This key registers one or more web-based protocol handlers. It allows to register a website or an extension page as a handler for a particular protocol. Note: The default click handler in Thunderbird web tabs is currently not working correctly with custom defined protocol handlers. It does work in WebExtension windows.

short_name

Short name for the extension. If given, this will be used in contexts where the name field is too long. It's recommended that the short name should not exceed 12 characters. If the short name field is not included in manifest.json, then name will be used instead and may be truncated.

This is a localizable property.

theme

This key defines a static theme to be applied to Thunderbird.

theme_experiment

This key enables the definition of experimental theme key properties for the Thunderbird interface. These experiments are a precursor to proposing new theme features for inclusion in Thunderbird.

user_scripts

Instructs the browser to load a script packaged in the extension, known as the API script, this script is used to export a set of custom API methods for use in user scripts.

version

The version of the extension, formatted as numbers and ASCII characters separated by dots. For the details of the version format, see the Version format page.

web_accessible_resources

This key enables an extension to make resources bundled with the extension (for example images, HTML, CSS or JavaScript) available to web pages.

Edit on GitHub