We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Add-ons (draft)

Add-on SDK

Using the Add-on SDK you can create Firefox add-ons using standard Web technologies: JavaScript, HTML, and CSS. The SDK includes JavaScript APIs which you can use to create add-ons, and tools for creating, running, testing, and packaging add-ons.


  • my-addon
    • lib
      • main.js
      • password-dialog.js
      • secrets
        • hash.js
      • storage
        • password-store.js


Getting started

How to install the SDK and use the cfx tool to develop, test, and package add-ons.

Interact with the browser

Open web pages, listen for pages loading, and list open pages.

Development techniques

Learn about common development techniques, such as unit testing, logging, creating reusable modules, localization, and mobile development.

Create user interface components

Create user interface components such as toolbar buttons, menu items, and dialogs.

Modify web pages

Modify pages matching a URL pattern or dynamically modify a particular tab.

Putting it together

Walkthrough of the Annotator example add-on.


SDK infrastructure

Aspects of the SDK's underlying technology: Modules, the Program ID, and the rules defining Firefox compatibility.

Content scripts

A detailed guide to working with content scripts, including: how to load content scripts, which objects content scripts can access, and how to communicate between content scripts and the rest of your add-on.

SDK idioms

The SDK's event framework and the distinction between add-on scripts and content scripts.

XUL migration

A guide to porting XUL add-ons to the SDK. This guide includes a comparison of the two toolsets and a worked example of porting a XUL add-on.


High-Level APIs

Reference documentation for the high-level SDK APIs.

Tools reference

Reference documentation for the cfx tool used to develop, test, and package add-ons, the console global used for logging, and the package.json file.

Low-Level APIs

Reference documentation for the low-level SDK APIs.


Document Tags and Contributors

Contributors to this page: chrisdavidmills, wbamberg
Last updated by: chrisdavidmills,