Loading...
Loading...
Auto-scaffold Chrome extensions with WXT or Plasmo. Ask user for name/features, scaffold, configure entrypoints. Use when: create extension, scaffold, new extension.
npx skill4agent add quangpl/browser-extension-skills extension-createmy-tab-manager| Framework | Recommended Scaffolder | Why |
|---|---|---|
| React | Plasmo or WXT | Plasmo has CSUI, quickstarts |
| Vue | WXT | First-class Vue support |
| Svelte | WXT | First-class Svelte support |
| Vanilla TS | WXT | Lightest setup |
npx wxt@latest init <name> --template <react|vue|svelte|vanilla>
cd <name> && pnpm install# Basic React
npm create plasmo --with-src
# With Tailwind CSS
npm create plasmo -- --with-tailwindcss
# With specific template (see https://docs.plasmo.com/quickstarts)
npm create plasmo -- --with-reduxwxt.config.tspackage.jsonplasmo.config.tsentrypoints/pnpm devpnpm buildpnpm zippnpm devpnpm buildpnpm packagebuild/| Feature | WXT | Plasmo |
|---|---|---|
| Popup | | |
| Background | | |
| Content script | | |
| Options page | | |
| Side panel | | |
| Tab page | N/A | |
import { defineConfig } from 'wxt';
export default defineConfig({
extensionApi: 'chrome',
modules: ['@wxt-dev/module-react'], // or vue/svelte
manifest: {
name: 'My Extension',
description: 'What it does',
permissions: ['storage', 'activeTab'],
host_permissions: ['<all_urls>'],
action: { default_popup: 'popup.html' },
},
});| Type | Entrypoints | Permissions |
|---|---|---|
| Popup tool | popup | activeTab |
| Page modifier | content, background | activeTab or host_permissions |
| Side panel assistant | sidepanel, background | sidePanel, storage |
| Tab manager | popup, background | tabs, storage |
| Context menu | background | contextMenus, activeTab |
pnpm installwxt.config.tspackage.jsonpnpm dev.output/chrome-mv3-devbuild/chrome-mv3-devreferences/wxt-scaffold-guide.mdreferences/wxt-entrypoints.mdreferences/extension-templates.mdreferences/chrome-samples-reference.mdextension-manifestextension-devextension-publish