Developers

Build extensions for Pulsar

Pulsar extensions are normal WebExtensions with one extra manifest key. They can talk to Pulsar, show their controls in Pulsar’s own drawer, and reach people through the Pulsar Store.

What an extension is in Pulsar

An extension is a Manifest V3 (or V2) WebExtension, like one for desktop Firefox: a manifest, a background script, content scripts and pages. Pulsar runs on GeckoView, Firefox’s engine for Android, so the browser.* APIs you know work.

Add "pulsar": {"api": 1} to the manifest and your extension can talk to Pulsar through the Pulsar API: draw its drawer and settings, show a status line, run background jobs and call Pulsar’s engines.

  • People tap the puzzle button (or your pinned tile) and your drawer slides up from the bottom of the screen.
  • Your settings live in Settings › Extensions, next to Pulsar’s own.
  • Pulsar decides where you may run: people can switch you off on a site, and you must stop there.
  • Store extensions are checked by a person and signed twice: by Mozilla and with the Pulsar seal.

Two ways to build your screens

You can mix both in one extension. Most extensions use native specs for the drawer and keep HTML for bigger pages.

Quick start in 5 steps

  1. Download the starter

    A complete extension (Easy Read) with a native drawer, a settings page, a content script and two pages built with the UI kit. Download pulsar-starter.zip.

  2. Make it yours

    Change the name, the id (you@yourdomain) and the tint in manifest.json. Keep pulsar.js first in background.scripts.

  3. Try the pages on your computer

    Serve the folder and open options.html in a phone-sized window. The pages use sample data outside Pulsar.

  4. Test on your phone

    Sign a test copy on Mozilla’s unlisted channel, turn on Developer mode in Pulsar and load it from a link, a QR code or a file. See Quick start.

  5. Send it to the store

    Zip the folder and submit it at pulsarbrowser.com/account/developer. We sign it and a person reviews it, usually in 1–2 days.

Downloads

Everything is free to use in your extensions. Copy the files into your extension: pages inside an extension can’t load files from the web.

All the docs