LogoLogo
  • About Thunderbird
  • Contributing to Thunderbird
    • Getting Started Contributing
    • Setting Up A Build Environment
    • Building Thunderbird
      • Windows Build Prerequisites
      • Linux Build Prerequisites
      • macOS Build Prerequisites
      • Artifact Builds
    • Codebase Overview
      • Account Configuration
      • Address Book
      • Chat Core
        • Notifications
        • Message Styles
        • Keyboard shortcuts
        • Chat Core Protocols
        • Contacts
      • Mail Front-End
    • Tutorials and Examples
      • Hello World Example
      • Thunderbird Live Development Videos
    • Fixing a Bug
      • Bug Triaging 101
        • Bug Status Classicification
        • Bug Types
        • Garbage Collection
        • Narrow the Scope
      • Using Mercurial Bookmarks
      • Using Mercurial Queues
      • Lint and Format Code
      • Using ESLint to Format Javascript Code
      • Try Server
      • Landing a Patch
      • Care and Feeding of the Tree
    • Testing
      • Running Tests
      • Adding Tests
      • Writing Mochitest Tests
  • Planning
    • Roadmap
    • Android Roadmap
    • Supported Standards
  • Add-on Development
    • Introduction
    • What's new?
      • Manifest Version 3
    • A "Hello World" Extension Tutorial
      • Using WebExtension APIs
      • Using a Background Page
      • Using Content Scripts
    • A Guide to Extensions
      • Supported Manifest Keys
      • Supported UI Elements
      • Supported WebExtension APIs
      • Thunderbird's WebExtension API Documentation
      • Thunderbird WebExtension Examples
      • Introducing Experiments
    • A Guide to Themes
    • Developer Community
    • Documentation & Resources
      • Tips and Tricks
    • Add-on Update Guides
      • Update for Thunderbird 128
      • Update for Thunderbird 115
        • Adapt to Changes in Thunderbird 103-115
      • Update for Thunderbird 102
        • Adapt to Changes in Thunderbird 92-102
      • Update for Thunderbird 91
        • Adapt to Changes in Thunderbird 79-91
      • Update for Thunderbird 78
        • Adapt to Changes in Thunderbird 69-78
      • Update for Thunderbird 68
        • Adapt to Changes in Thunderbird 61-68
      • How to convert legacy extensions?
        • Convert wrapped WebExtensions to modern WebExtensions
        • Convert legacy WebExtensions to modern WebExtensions
        • Convert legacy overlay extension to legacy WebExtension
        • Convert legacy bootstrapped extension to legacy WebExtension
  • Releases
    • Thunderbird Channels
    • Release Cadence
    • Uplifting Fixes
    • Feature Flags
    • Tracking Fixes for Releases
    • Contributing to Release Notes
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
Export as PDF
  1. Add-on Development
  2. A Guide to Extensions

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.

The two columns MV2 and MV3 specify whether the manifest key is supported in Manifest V2 and/or Manifest V3.

Manifest Key
MV2
MV3
Description

action

Deprecated. Use

browser_specific_settings

instead.

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.

Defines properties that are specific to a particular host application. Information for Thunderbird are stored in:

browser_specific_settings.gecko

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

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

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

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.

This key specifies the manifest version used by this extension. Supported are 2 and 3 (since Thunderbird Beta 110).

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.

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

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.

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

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.

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

PreviousA Guide to ExtensionsNextSupported UI Elements

Last updated 8 months ago

Was this helpful?

A 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. Note: This key has been renamed from browser_action to action in Manifest V3.

Defines the extension's author. If the 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 .

A 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. Note: This key has been renamed from browser_action to action in Manifest V3.

More details can be found in our .

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

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

A 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.

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 .

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

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 and keys, respectively. This is a .

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

This is a .

A 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.

Defines an for your extension.

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

Short name for the extension. If given, this will be used in contexts where the 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 .

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

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

browser action is a button
applications
author
developer
localizable property
background
browser_action
browser action is a button
browser_specific_settings
hello world example
cloud_file
commands
content_scripts
content scripts
content_security_policy
<script>
<object>
eval()
Default content security policy
compose_action
compose action is a button
default_locale
Internationalization
description
localizable property
developer
author
homepage_url
localizable property
dictionaries
homepage_url
developer
localizable property
icons
manifest_version
message_display_action
message display action is a button
name
optional_permissions
options_ui
options page
permissions
special powers for your extension
protocol_handlers
short_name
name
localizable property
theme
theme_experiment
theme
user_scripts
version
Version format
web_accessible_resources