Convert xpi to crx

Convert XPI to CRX

Port a Firefox XPI extension to Chromium-compatible source, then package and deploy it as CRX.

How to convert xpi to crx file

A Firefox or Thunderbird add-on supplied as an XPI cannot be installed directly in Chrome, Edge, Brave, or other Chromium-based browsers. A CRX package is useful only after the extension source has been made compatible with the target browser’s extension platform.

What XPI files contain

XPI is Mozilla’s add-on package format, used primarily by Firefox and Thunderbird. Most current XPIs are ZIP-based archives containing manifest.json, JavaScript, HTML, icons, localization files, and other extension assets.

Firefox Add-ons distributes signed XPIs. Older add-ons may instead use install.rdf, chrome.manifest, XUL overlays, or legacy bootstrap code; these technologies are not supported by Chromium and require redevelopment rather than repackaging.

What CRX files provide

CRX is Chromium’s signed extension-package format. Current Chromium browsers create CRX3 packages, whose signing key determines the extension ID; retaining that key is necessary to publish updates under the same ID.

CRX is primarily useful for managed-browser deployment and private update services. The Chrome Web Store accepts a ZIP of compatible extension source for publication, not a prebuilt CRX, and normal Chrome installations generally block direct installation of downloaded CRX files.

Prepare the extension source

  1. Copy and extract the XPI into a working folder. Use 7-Zip on Windows, or run unzip addon.xpi -d addon-src on macOS or Linux. Renaming a copy of addon.xpi to addon.zip also allows extraction by standard archive tools.
  2. Check for manifest.json. An add-on containing only legacy Mozilla files cannot become a functioning Chromium extension without a source-code port.
  3. Adapt the manifest and code for the target browser. Remove or isolate Firefox-only manifest settings such as browser_specific_settings, replace unsupported permissions and APIs, and use Manifest V3 where required. Current Chrome Web Store submissions require Manifest V3; Manifest V2 availability in Chromium browsers depends on browser version and enterprise policy.
  4. Review API differences. Firefox code using browser.* may need targeted changes or webextension-polyfill for Chromium compatibility. Firefox-only APIs, privileged pages, proxy behavior, theme capabilities, and permission names may have no Chromium equivalent.
  5. Test the unpacked folder before packaging. Open chrome://extensions, edge://extensions, or the equivalent browser page; enable Developer mode; choose Load unpacked; and select addon-src. Resolve manifest, service-worker, permission, and runtime errors first.

Create the CRX package

Use the target Chromium browser or Chromium itself to package the tested folder. In the extensions page, enable Developer mode, select Pack extension, choose the extension root folder, and create a new key or select the existing .pem key.

A command-line alternative is chromium --pack-extension=/full/path/addon-src. On Windows, use the installed browser executable, for example chrome.exe --pack-extension="C:\work\addon-src". Packaging creates a .crx file and, for a new package, a .pem private key.

Keep the PEM file private and backed up. Rebuild with the same key, for example chromium --pack-extension=/full/path/addon-src --pack-extension-key=/full/path/addon-src.pem. A new key creates a new extension ID and breaks update continuity.

Deployment and conversion limits

An XPI signature cannot be reused for CRX signing. Extracting an XPI provides source files, not a transferable Chromium signature or extension identity.

For public Chrome distribution, upload the compatible source ZIP to the Chrome Web Store. For organization-managed devices, deploy the CRX through the browser’s enterprise extension-install policy and, where required, an approved update URL.

Online archive converters cannot port browser APIs, validate extension behavior, or generate a usable long-term signing identity. Do not upload extension source or private .pem keys to a conversion website; use local tools such as 7-Zip and Chrome, Edge, or Chromium’s extension packer instead.

Simply put, it is impossible to convert XPI to CRX directly.
Thus, there is no so-called xpi to crx converter or a free online .xpi to .crx conversion tool.

XPI vs CRX: format comparison

How the XPI and CRX formats compare on the properties that matter most for this conversion.

Comparison of the XPI and CRX file formats
Property .XPI Mozilla Add-on Package .CRX Chrome Extension Package
Opens in a web browser No No
Plain-text readable No No
Text formatting None None
Images No No
Interactive elements Yes Yes
Further editing Limited Not directly editable
Typical file size Small Very small
Open standard Yes No
Introduced 2004 2009
Developer Mozilla Foundation Google
MIME type application/x-xpinstall

Additional formats for
xpi file conversion

Reverse conversion

Convert to crx from
other formats

Share on social media: