crxjs

Enable true hot module replacement for Chrome extensions built with Vite.

178|15|Updated Mar 21, 2026
One-click install
npx skills add https://github.com/samber/cc-skills --skill crxjs-samber
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: crxjs
Source: https://github.com/samber/cc-skills/tree/main/skills/crxjs
Command: npx skills add https://github.com/samber/cc-skills --skill crxjs-samber

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

CRXJS enables true hot module replacement and streamlined development for Chrome extensions built with Vite, reducing feedback loops and rebuild times.

Core Features & Use Cases

  • True HMR for popup, options, content scripts, and side panels.
  • Framework-agnostic integration with Vite projects via the @crxjs/vite-plugin.
  • Supports dynamic content-script imports and manifest-driven configuration across frameworks (React, Vue, Svelte, Vanilla).

Quick Start

Install the CRXJS Vite plugin and integrate it into your project to start developing with true HMR for Chrome extensions.

Frequently Asked Questions about crxjs

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I get true HMR for Chrome extensions built with Vite?

You can achieve true hot module replacement for Chrome extensions by integrating the CRXJS Vite plugin, which enables real-time updates for popups, options, and content scripts without full rebuilds.

Does CRXJS support content scripts and side panels with React or Svelte?

Yes, CRXJS is framework-agnostic and supports true HMR across React, Vue, Svelte, and vanilla setups, specifically covering popup, options, content scripts, and side panels.

What is the best way to configure a type-safe manifest for a web extension?

Using a Vite plugin like CRXJS allows you to specify a type-safe manifest approach with dynamic content-script imports, streamlining manifest-driven configuration across different frameworks.

How do I set up dynamic content-script imports during web extension development?

You can enable dynamic content-script imports by installing the CRXJS Vite plugin, which manages manifest-driven configuration and supports rapid iteration across your extension's UI surfaces.

Why does my Chrome extension need a full rebuild after every content script change?

Standard setups lack true HMR for content scripts, but adding the CRXJS Vite plugin eliminates this feedback loop by injecting updates directly into the running extension environment.