An .xpi file is the add-on package for Firefox and Thunderbird. It is a ZIP archive containing a manifest.json that declares the extension's identity and permissions, together with the scripts, stylesheets, and resources the browser loads when the add-on is enabled.
Private for supported formats — processed in your browser
Convert supported files
Runs on your device
+
Drop XPI files here
Batch files can each use a different output. Nothing uploads for local conversions.
Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.
Mozilla introduced the format with the XPInstall system in the Netscape 6 era, originally driving installation through an install.js script. It moved to a declarative install.rdf manifest, then to the WebExtensions manifest.json with Firefox 57 in 2017, which retired the old XUL overlay add-ons and aligned Firefox with the Chrome extension model.
How XPI works
The container is a standard ZIP; Firefox reads entries directly from it rather than unpacking to disk.
manifest.json declares the manifest version, permissions, background scripts, and content scripts.
Add-ons distributed through addons.mozilla.org are signed, with the signature stored under META-INF/ in the archive.
Release builds of Firefox refuse to load an unsigned add-on, so repackaging invalidates it for normal installation.
Resources referenced by moz-extension:// URLs resolve to paths inside the archive at runtime.
When to use XPI
Reading an add-on's requested permissions before deciding to install it.
Extracting an add-on's scripts or stylesheets for review or audit.
Archiving a specific add-on version that a workflow depends on.
Inspecting a download on a machine where Firefox is not installed.
Strengths and limitations
Strengths
Permissions are declared in a single readable JSON file rather than scattered through code.
Plain ZIP structure makes independent review of add-on code practical.
Signing gives a verifiable link between the archive and its listing.
WebExtensions manifests are largely portable between Firefox and Chromium browsers.
Limitations
Signature enforcement means a modified archive cannot simply be reinstalled in release Firefox.
Bundled code is often minified, so extraction alone rarely explains behaviour.
Legacy add-ons using install.rdf no longer load in any supported Firefox version.
Compatibility
Firefox and Thunderbird install the format natively on every platform they ship for, and any ZIP tool opens one for reading. Novus Convert unpacks the archive in the browser and rewrites its members as ZIP or TAR; the add-on's scripts are copied as inert files and are never loaded or run.
Name, version, description, permissions, and the browser-specific settings block live in manifest.json, which extraction preserves. Signature files under META-INF/ describe the original archive and stop being meaningful once its entries are repackaged.