chrome-extension-init-skill

Initialize a Chrome/Chromium browser extension project from an empty folder by having the user choose a scaffolding toolchain (Plasmo, WXT, or Vite + CRXJS), then running the official interactive CLI (e.g., `npm create plasmo`, `npx wxt@latest init`, `npm create crxjs@latest`) to scaffold the project, and finishing with git init + first commit. Use when a user asks to start or bootstrap a browser extension from scratch.

16 stars

Best use case

chrome-extension-init-skill is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Initialize a Chrome/Chromium browser extension project from an empty folder by having the user choose a scaffolding toolchain (Plasmo, WXT, or Vite + CRXJS), then running the official interactive CLI (e.g., `npm create plasmo`, `npx wxt@latest init`, `npm create crxjs@latest`) to scaffold the project, and finishing with git init + first commit. Use when a user asks to start or bootstrap a browser extension from scratch.

Teams using chrome-extension-init-skill should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/chrome-extension-init-skill/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/tools/chrome-extension-init-skill/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/chrome-extension-init-skill/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How chrome-extension-init-skill Compares

Feature / Agentchrome-extension-init-skillStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Initialize a Chrome/Chromium browser extension project from an empty folder by having the user choose a scaffolding toolchain (Plasmo, WXT, or Vite + CRXJS), then running the official interactive CLI (e.g., `npm create plasmo`, `npx wxt@latest init`, `npm create crxjs@latest`) to scaffold the project, and finishing with git init + first commit. Use when a user asks to start or bootstrap a browser extension from scratch.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Chrome Extension Init Skill

## Overview

Guide the user to pick a scaffolding toolchain (Plasmo / WXT / Vite + CRXJS), scaffold via the official CLI (not manual setup), then do minimal verification, git init, and the first commit.

## Workflow

### 1) Confirm Preconditions

- Verify the target directory is empty or get permission to scaffold into it.
- Confirm target browsers (default to Chrome/Chromium). If the user needs Firefox, note differences and ask before proceeding.

### 2) Choose Scaffolding Toolchain (multi-turn)

Ask these in order; use numeric options for each choice. Do not manually scaffold; rely on the selected toolchain CLI.

- Scaffolding toolchain:
  - 1) Plasmo
  - 2) WXT
  - 3) Vite + CRXJS
- Target directory (absolute/relative path) and project name.
- Package manager:
  - 1) pnpm
  - 2) npm
  - 3) yarn
- Basic extension metadata: name, description, author (or confirm to keep CLI defaults).

Then ask toolchain-specific questions **before** running any interactive CLI:

- If Plasmo:
  - Starter template:
    - 1) Default starter (React)
    - 2) Example template from PlasmoHQ/examples (uses `--with-<example>`): `with-vue`, `with-svelte`, `with-env`, `with-tailwindcss`, `with-antd`
    - 3) Other example (user provides the exact example name, e.g. `with-ai`)
  - Initial entry files to include (multi-select; maps to `--entry` comma list; omit extensions):
    - 1) `popup`
    - 2) `options`
    - 3) `newtab`
    - 4) `background`
    - 5) `content`
    - 6) `contents/inline`
    - 7) `contents/overlay`
  - If using npm, remind the user that npm requires `--` before passing plasmo flags (npm does not forward args).
- If WXT:
  - Starter template (maps to `--template`):
    - 1) `vanilla`
    - 2) `vue`
    - 3) `react`
    - 4) `svelte`
    - 5) `solid`
  - Package manager (maps to `--pm`):
    - 1) `pnpm`
    - 2) `npm`
    - 3) `yarn`
  - Optional: enable debug mode (maps to `--debug`)
  - Optional: manifest target for future `wxt` commands: MV3 (default, `--mv3`) or MV2 (`--mv2`)
- If Vite + CRXJS:
  - Framework template (maps to `--template`):
    - 1) Vanilla: `vanilla` (JS) / `vanilla-ts` (TS)
    - 2) React: `react` (JS) / `react-ts` (TS)
    - 3) Vue: `vue` (JS) / `vue-ts` (TS)
    - 4) Svelte: `svelte` (JS) / `svelte-ts` (TS)
    - 5) Solid: `solid` (JS) / `solid-ts` (TS)
  - Language:
    - 1) TypeScript (recommended)
    - 2) JavaScript

- Confirm whether to proceed with an interactive CLI run now:
  - 1) Yes, run the CLI and answer prompts
  - 2) No, ask more questions first

Use toast for user-facing prompts and avoid alert when generating UI scaffolding.

### 3) Scaffold via Official CLI (interactive)

- Treat these CLIs as interactive. Before running them, summarize the expected answers with the user and confirm.
- Run the CLI in a TTY. If an unexpected prompt appears, stop and ask the user before answering.

Toolchain commands (examples):

- Plasmo:
  - Default: `pnpm create plasmo "<name>" --entry=options,newtab,contents/inline`
  - Example: `pnpm create plasmo "<name>" --entry=options,newtab,contents/inline --with-vue`
  - NPM (note `--`): `npm create plasmo "<name>" -- --entry=options,newtab,contents/inline --with-vue`
- WXT:
  - `npx wxt@latest init "<dir>" --template react --pm pnpm`
- Vite + CRXJS:
  - Always include `@latest` (avoid cached old versions)
  - `npm create crxjs@latest "<dir>" -- --template react-ts`

### 4) Verify & Minimal Wiring

- Install dependencies with the chosen package manager.
- Run the toolchain's build (and dev if available) to ensure it produces a working extension output.
- Confirm MV3 by default; if the user explicitly requests MV2, ask again and only proceed if the chosen toolchain supports it.
- Keep Chrome content scripts as classic scripts; avoid ES module imports unless the manifest explicitly loads them as modules.

### 5) Initialize Git and Commit

- Initialize git in the project root if not already initialized by the CLI.
- Ensure `.gitignore` exists and matches the chosen tooling.
- Create `AGENTS.md` in the project root with the rule: `- Run build after every change.`
- Commit all files with a clear message like "chore: initialize extension project".

### 6) Hand-off

- Provide quick start commands (read from the generated `package.json` scripts instead of guessing).
- Explain where to edit manifest, background/service worker, content scripts, and UI pages as generated by the chosen toolchain.

Related Skills

vvvv-editor-extensions

16
from diegosouzapw/awesome-omni-skill

Helps create vvvv gamma editor extensions — .HDE.vl file naming, Command node registration with keyboard shortcuts, SkiaWindow/SkiaWindowTopMost window types, docking with WindowFactory, and API access to hovered/selected nodes via VL.Lang Session nodes. Use when building editor plugins, custom tooling windows, or automating editor workflows.

repo-init

16
from diegosouzapw/awesome-omni-skill

Initialize a new repository with standard scaffolding - git, gitignore, CLAUDE.md, justfile, mise, and beads. Use when starting a new project or setting up an existing repo for Claude Code workflows.

phx:init

16
from diegosouzapw/awesome-omni-skill

Initialize Elixir/Phoenix plugin in a project. Installs auto-activation rules into CLAUDE.md for complexity detection, interview mode, Iron Laws enforcement, and reference auto-loading.

openspec-initial

16
from diegosouzapw/awesome-omni-skill

Run `openspec init` to initialize OpenSpec in a project directory, creating the openspec/ folder structure and configuring AI tool integrations. Use when the user says "initialize OpenSpec", "openspec init", or "set up OpenSpec in this project".

neotex-init

16
from diegosouzapw/awesome-omni-skill

Use when user runs /neotex-init to deeply scan a codebase and auto-generate organizational knowledge for neotex.

investigation-codex-vscode-extension

16
from diegosouzapw/awesome-omni-skill

This skill should be used when investigating why the Codex VS Code extension fails to spawn or connect to a local Codex agent, especially after updates or CLI changes.

initialize-repo

16
from diegosouzapw/awesome-omni-skill

Analyze the codebase and generate an INIT.md onboarding file for AI coding assistants. Also creates or updates AGENTS.md. Use when the user wants to initialize a repo for AI-assisted development, generate INIT.md, create CLAUDE.md, or bootstrap AI context files.

git-initial-setup

16
from diegosouzapw/awesome-omni-skill

Default git setup to protect main after git init/clone. Use when standardizing repo bootstrap and absorbing environment differences.

Generate multilingual sentences with contextual definitions

16
from diegosouzapw/awesome-omni-skill

Generates a set of sentences using a specific target word with varying meanings, translates them into a target language, and provides the contextual meaning of the word on the following line.

definition.tech_spike

16
from diegosouzapw/awesome-omni-skill

Scope and prioritize technical spikes that de-risk architecture or implementation questions.

chrome-automation

16
from diegosouzapw/awesome-omni-skill

Connect to and control Google Chrome browser using agent-browser with CDP (Chrome DevTools Protocol). Use when the user wants to automate their existing Chrome browser, see browser actions in real-time, or needs to control the Chrome instance they're already using. Handles installation, setup, connecting via remote debugging, and all browser automation tasks with live visual feedback.

browser-extension-builder

16
from diegosouzapw/awesome-omni-skill

Expert in building browser extensions that solve real problems - Chrome, Firefox, and cross-browser extensions. Covers extension architecture, manifest v3, content scripts, popup UIs, monetization ...