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
- Internet
- Rating: 3.5/5
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
- Copy and extract the XPI into a working folder. Use 7-Zip on Windows, or run
unzip addon.xpi -d addon-srcon macOS or Linux. Renaming a copy ofaddon.xpitoaddon.zipalso allows extraction by standard archive tools. - Check for
manifest.json. An add-on containing only legacy Mozilla files cannot become a functioning Chromium extension without a source-code port. - 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. - Review API differences. Firefox code using
browser.*may need targeted changes orwebextension-polyfillfor Chromium compatibility. Firefox-only APIs, privileged pages, proxy behavior, theme capabilities, and permission names may have no Chromium equivalent. - Test the unpacked folder before packaging. Open
chrome://extensions,edge://extensions, or the equivalent browser page; enable Developer mode; choose Load unpacked; and selectaddon-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.
| 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 | |
| MIME type | application/x-xpinstall | — |