.crx File Extension

Learn what a .crx file is, how to open or inspect a Chrome extension package safely, how Poly supports it, and when to use an unpacked extension.

File extension details for .crx

Storage Only
File typeChrome extension package
MIME type
EncodingBinary signed package header followed by a ZIP archive
Operating systemsWindows, macOS, Linux
Opens withGoogle Chrome, Microsoft Edge, Opera, CRX-aware extraction tools
Poly supportYes. Poly stores, syncs, shares, versions, and downloads CRX packages.
Indexed by PolyPartial. Poly indexes the filename and ordinary file properties, not packaged contents.
Preview in PolyNo. Download the CRX file to inspect or install it with compatible tooling.
Poly agentNo. The Poly agent cannot read the manifest or files inside a CRX package.

What kind of file is a .crx?

A .crx file is a packaged extension for Chrome and other Chromium-based browsers. It combines a versioned, signed CRX header with a ZIP archive containing files such as manifest.json, JavaScript, HTML, CSS, and images.1

CRX has no IANA-registered MIME type. Poly associates the suffix with the conventional application/x-google-chrome-extension MIME type, while Chrome documentation uses application/x-chrome-extension for hosted packages.23

The first four bytes spell Cr24, or 43 72 32 34 in hexadecimal. The next four bytes store a little-endian version number. CRX2 starts 43 72 32 34 02 00 00 00; current CRX3 packages use 43 72 32 34 03 00 00 00 and a different signed-header layout.1

Renaming a ZIP file to .crx does not create a signed browser extension. Renaming a CRX to .zip is also unreliable because CRX places a signed header before its ZIP payload.

How do I open a .crx on my computer?

Chrome, Microsoft Edge, and Opera understand CRX packages, but modern browsers restrict where extensions can be installed. Chrome normally expects extensions from the Chrome Web Store, a managed environment, or its documented Linux self-hosting flow. Developers can package or load an extension from chrome://extensions.34 Edge has comparable developer and managed-deployment workflows.5

Firefox and Safari use different packaging systems, so a CRX is not a universal browser-extension file. To review one without installing it, use a CRX-aware extractor that understands the signed prefix before the ZIP data. Inspect manifest.json, requested permissions, host access, scripts, and update settings.

A valid signature helps detect tampering and preserves package identity, but it does not prove that an extension is safe. Inspect unfamiliar packages without installing them, and test untrusted code only in an isolated browser profile.

Poly support for .crx

Poly stores, syncs, shares, versions, downloads, and finds CRX packages by filename and ordinary file properties. It recognizes them as archive files.

Poly does not unpack the embedded ZIP archive, index member names or source code, generate a content preview, or verify the package signature. The Poly agent cannot read files that remain inside the package. For content-aware search or agent review, extract trusted source files locally and add those files to Poly separately.

History of .crx

Google developed CRX for Chrome's extension system. Chromium was documenting packaged extensions by June 2009, and Google launched the Chrome extensions beta for Windows and Linux on December 8, 2009.67

The format later moved from CRX2 to CRX3. Both retain the recognizable Cr24 prefix, but CRX3 uses a Protocol Buffers header with signature proofs and signed data before the trailing ZIP archive.1 The browser validates the signed structure rather than trusting the suffix or magic bytes alone.

Working with .crx and alternatives

GoalBest approach
Install a published extensionUse the browser's official store or approved managed flow
Inspect an unfamiliar packageList and scan it with a CRX-aware extractor
Develop or modify your own extensionWork in an unpacked source directory, then package it
Review source with PolyExtract and upload selected text files separately

Chrome's packaging flow creates a .crx package and a .pem private key. Keep that key secret and use the same key when repackaging an update, or the extension identity changes.3 Extracting and editing a package invalidates its signed relationship to the original archive, so keep the original CRX when provenance matters.

Footnotes

  1. Chromium Project. CRX3 Format Definition. The source specification defines the signature, version, header, proofs, signed data, and trailing ZIP archive. 2 3
  2. Internet Assigned Numbers Authority. Media Types Registry. The application registry lists neither common CRX media-type spelling.
  3. Chrome for Developers. Self-host for Linux. Google documents CRX packaging, private-key handling, hosting, and the application/x-chrome-extension response type. 2 3
  4. Chrome for Developers. Distribute Your Extension. The guide describes Web Store signing and restrictions on self-hosted installation.
  5. Microsoft Learn. Self-host Microsoft Edge Extensions. Microsoft documents CRX packaging, loading, hosting, and policy requirements.
  6. Chromium Blog. Important Updates for Extension Developers. The June 2009 post discusses repackaging extensions for an early Chrome build.
  7. Chromium Blog. Extensions Beta Launched, with over 300 Extensions!. Google announced the beta launch on December 8, 2009.
© Poly Corp. 2026