A Manifest V3 browser extension for Chrome, Edge, and Firefox that identifies the web technology stack behind any page.
extension-js/extension.js
A cross-browser extension framework with zero-config dev server, hot reload, and builds for Chrome, Edge, Firefox, and Safari.
- Stars
- 5,197
- Forks
- 142
- Open issues
- 5
- Last commit
- 2 hours ago
What is it?
Extension.js is a CLI and build toolchain for developing browser extensions. It targets Chrome, Edge, Firefox, and Safari from a single codebase, with Manifest V3 as the default and automatic adapters for each browser's differences.
During development, it provides hot module replacement for popup, options, and devtools pages, including React, Vue, Svelte, and Preact components. Content scripts and the service worker reload in a targeted way, so saving a file does not restart the whole extension. It needs no webpack or rollup configuration.
The CLI can also build production bundles, package them as a ZIP for store submission, install managed browser binaries, and run extensions directly from a GitHub sample URL. It runs on Node.js, Deno, and Bun.
Key features
- 01Hot module replacement for extension pages and targeted reloads for content scripts and the service worker
- 02Zero-config setup with no webpack or rollup configuration to maintain
- 03Manifest V3 by default with adapters for Chrome, Edge, Firefox, and Safari
- 04Production builds packaged as ZIP files for store submission
- 05Managed browser binaries installable via the CLI
- 06Built-in support for TypeScript, React, Vue, Svelte, and Preact
Use cases
- Building a cross-browser extension that must ship on Chrome Web Store and Firefox Add-ons
- Adding hot reload to an existing extension with a single devDependency
- Running a Chrome sample from GitHub in Edge or Firefox for testing
- Developing extension UI in React, Vue, Svelte, or Preact
Quick start
- 1
Create a new project with the CLI
npx extension@latest create my-extension - 2
Enter the project folder
cd my-extension - 3
Start the dev server and browser
npm run dev
Things to know
- The CLI requires Node.js 22.12+, Deno 2.5+, or Bun 1.2+.
- Deno 2.8.0 is refused by the CLI.
In collections
Topics
FAQ
- What is extension.js?
- A cross-browser extension framework with zero-config dev server, hot reload, and builds for Chrome, Edge, Firefox, and Safari. Extension.js is a CLI and build toolchain for developing browser extensions. It targets Chrome, Edge, Firefox, and Safari from a single codebase, with Manifest V3 as the default and automatic adapters for each browser's differences.
- Is extension.js free to use? What license does it have?
- extension.js is open source under the MIT license. Check the license terms before using it in commercial products.
- Is extension.js still maintained?
- Actively maintained. The last commit to extension.js was on Oct 22, 2026.
- What can I use extension.js for?
- Building a cross-browser extension that must ship on Chrome Web Store and Firefox Add-ons Adding hot reload to an existing extension with a single devDependency Running a Chrome sample from GitHub in Edge or Firefox for testing Developing extension UI in React, Vue, Svelte, or Preact
- How do I install extension.js?
- Create a new project with the CLI: npx extension@latest create my-extension Enter the project folder: cd my-extension Start the dev server and browser: npm run dev
- Where can I get extension.js?
- The source code and installation instructions are on GitHub: https://github.com/extension-js/extension.js
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A browser extension for overriding HTTP request and response headers and cookies using local, URL-filtered rules and profiles.
Browser extension that removes clutter from GitHub's interface and adds extra features to repos, issues, PRs and notifications.
Browser extension that generates a dark mode for web pages on Chrome, Firefox, Safari, Edge and Thunderbird to reduce eyestrain.
A browser extension framework for React and TypeScript that handles manifest, build and live-reload setup for Chrome, Firefox and Edge.
Browser extension that saves a complete web page, with its styles and images, into a single self-contained HTML file.