extension-create
Original:🇺🇸 English
Translated
Auto-scaffold Chrome extensions with WXT or Plasmo. Ask user for name/features, scaffold, configure entrypoints. Use when: create extension, scaffold, new extension.
17installs
Added on
NPX Install
npx skill4agent add quangpl/browser-extension-skills extension-createTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Extension Create (WXT & Plasmo)
Auto-scaffold a Chrome extension project. Do NOT just explain — execute the workflow.
Workflow (Execute This)
Step 1: Gather requirements from user
Ask the user to confirm:
- Extension name (kebab-case, e.g. )
my-tab-manager - Short description (1 sentence)
- UI framework: React / Vue / Svelte / Vanilla (default: React)
- Features needed (pick from list below):
- Popup UI
- Content script (modify pages)
- Background service worker
- Side panel
- Options page
- Context menu
- Tab management / Storage / Active tab only
Step 2: Pick scaffolder based on framework choice
| 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 |
Step 3: Scaffold
WXT — multi-framework, file-based entrypoints:
bash
npx wxt@latest init <name> --template <react|vue|svelte|vanilla>
cd <name> && pnpm installPlasmo — React-first, auto-manifest, rich quickstarts:
bash
# 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-reduxQuickstarts: https://docs.plasmo.com/quickstarts
Full docs: https://docs.plasmo.com/
Step 3: Configure based on features
WXT: Edit with permissions and manifest fields.
Plasmo: Edit manifest section or . Plasmo auto-generates manifest from code.
wxt.config.tspackage.jsonplasmo.config.tsStep 4: Create entrypoints
Create files in based on chosen features (see below).
entrypoints/Step 5: Verify setup
WXT: / /
Plasmo: / / (creates zip in )
pnpm devpnpm buildpnpm zippnpm devpnpm buildpnpm packagebuild/Entrypoints Quick Reference
| Feature | WXT | Plasmo |
|---|---|---|
| Popup | | |
| Background | | |
| Content script | | |
| Options page | | |
| Side panel | | |
| Tab page | N/A | |
wxt.config.ts Template
ts
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' },
},
});Extension Type → Entrypoints Map
| 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 |
Post-Scaffold Checklist
- completed
pnpm install - Config has correct permissions (WXT: / Plasmo:
wxt.config.ts)package.json - Entrypoints created for chosen features
- loads extension without errors
pnpm dev - Load unpacked: WXT → / Plasmo →
.output/chrome-mv3-devbuild/chrome-mv3-dev
References
- — CLI options, project structure, config
references/wxt-scaffold-guide.md - — All entrypoint types, naming, manifest generation
references/wxt-entrypoints.md - — Ready-to-use patterns per extension type
references/extension-templates.md - — Google's official samples by category
references/chrome-samples-reference.md
Related Skills
- — Generate/validate manifest.json
extension-manifest - — Dev workflow, hot reload, debugging
extension-dev - — Store submission
extension-publish