{
  "markdown": "# Chrome Extension Builder\n\n[![CI](https://github.com/harry-harish/chrome-extension-builder/actions/workflows/validate.yml/badge.svg)](https://github.com/harry-harish/chrome-extension-builder/actions/workflows/validate.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)\n[![Claude Code plugin](https://img.shields.io/badge/Claude%20Code-plugin-d97757)](#install)\n[![GitHub release](https://img.shields.io/github/v/release/harry-harish/chrome-extension-builder)](https://github.com/harry-harish/chrome-extension-builder/releases)\n[![Available on @claude-community](https://img.shields.io/badge/Claude%20community%20marketplace-chrome--extension--builder-d97757)](https://github.com/anthropics/claude-plugins-community)\n\nA Claude Code plugin for building and shipping Manifest V3 Chrome extensions without tripping over the usual stuff: manifest quirks, permission sprawl, CSP mistakes, broken builds, and Web Store submission prep.\n\nIt scaffolds new extensions, audits existing ones, adds common extension surfaces, runs validation, and prepares release artifacts. It works with WXT, Plasmo, CRXJS, and vanilla setups, with WXT as the default path.\n\n## Install\n\nInside Claude Code, from the Anthropic community marketplace:\n\n```bash\n/plugin marketplace add anthropics/claude-plugins-community\n/plugin install chrome-extension-builder@claude-community\n```\n\nOr straight from this repo (always the latest release):\n\n```bash\n/plugin marketplace add harry-harish/chrome-extension-builder\n/plugin install chrome-extension-builder@chrome-extension-builder-marketplace\n```\n\nFor local development:\n\n```bash\ngit clone https://github.com/harry-harish/chrome-extension-builder\nclaude --plugin-dir ./chrome-extension-builder\n```\n\n## Start here\n\n```bash\n/chrome-ext:new\n```\n\nThat launches a guided workflow for planning, scaffolding, validating, testing, and preparing an MV3 extension for release.\n\n## Why this exists\n\nBuilding the feature is usually not the hardest part of extension work.\n\nThe time sink is everything around it: choosing the right framework, structuring background and content logic correctly, keeping permissions tight, satisfying MV3 rules, getting tests to pass, and cleaning things up for Chrome Web Store review. This plugin is built to handle that layer well.\n\n## Commands\n\n- `/chrome-ext:new` — Start a new extension with a guided multi-phase workflow.\n- `/chrome-ext:validate` — Run manifest, CSP, permission, and lint checks on the current project.\n- `/chrome-ext:add-feature` — Add a popup, options page, content script, side panel, devtools panel, or background handler.\n- `/chrome-ext:publish` — Prepare store assets, disclosure text, and packaged output for submission.\n- `/chrome-ext:migrate-mv2` — Audit an MV2 codebase and generate an MV3 migration plan.\n\n## Specialist agents\n\n- `extension-architect` — Chooses structure, capabilities, and framework direction.\n- `manifest-auditor` — Reviews `manifest.json`, flags risky permissions, checks CSP, and rejects MV2-only patterns.\n- `extension-test-runner` — Runs build, lint, and smoke-test workflows in isolation.\n\nTool grants are deliberately minimal — read/analyze agents can't write, and no agent can publish:\n\n| Agent | Read | Grep/Glob | Bash | WebFetch | Edit/Write |\n|-------|:----:|:---------:|:----:|:--------:|:----------:|\n| `extension-architect` | ✓ | ✓ | — | ✓ | — |\n| `manifest-auditor` | ✓ | ✓ | ✓ | — | — |\n| `extension-test-runner` | ✓ | ✓ | ✓ | — | — |\n\nThe architect plans but never executes shell or edits files; the auditor and test-runner can run validators/builds but never modify your code.\n\n## Safety rails\n\n- A `PostToolUse` hook runs the manifest, CSP, and permission validators after any `manifest.json` write. The edit is applied first; if a critical issue is found, the hook flags it (exit 2) so the session fixes it before continuing.\n- A `PreToolUse` hook blocks live publish commands unless they are explicitly confirmed.\n- The plugin defaults to Manifest V3 only.\n\n## Framework support\n\n- WXT — default recommendation\n- Plasmo — supported\n- CRXJS — supported\n- Vanilla MV3 — supported\n\nUse the one that matches your project. The plugin should help you move faster, not force a rewrite for style points.\n\n## Runtime requirements\n\n- Node.js 18+\n- pnpm, npm, yarn, or bun\n- Python 3.10+ for validator scripts\n- A POSIX shell (`bash`) and `zip` on `PATH`. macOS and Linux have these by default; **on Windows, run the plugin inside WSL or Git Bash** — the scaffold, validate, and publish flows invoke bundled `.sh` scripts (and `build-zip.sh` shells out to `zip` for vanilla/CRXJS projects), which won't run in plain PowerShell or `cmd`.\n- Playwright Chromium for E2E tests\n- Optional GitHub and Chrome Web Store credentials for publishing flows\n\n## Defaults\n\n- Manifest V3 only\n- TypeScript-first output\n- `chrome.activeTab` preferred over broad host permissions\n- Strict CSP, no remote code, no `eval`\n- Reproducible builds\n- `_locales`-based i18n by default\n\n## What it checks\n\nThe validator path looks for problems that routinely waste time during extension development and review:\n\n- Invalid MV3 manifest fields\n- Overbroad or suspicious permissions\n- CSP issues like `unsafe-inline` and `unsafe-eval`\n- Missing referenced files\n- Old MV2 patterns that should not ship\n- Packaging and lint problems that break release flow\n\n## Non-goals\n\nThis plugin does not:\n\n- Guarantee Chrome Web Store approval\n- Publish live by accident\n- Make unsafe permissions acceptable\n- Turn a weak product idea into a good extension\n- Replace framework docs for WXT, Plasmo, or CRXJS\n\n## Known rough edges\n\n- Firefox and Edge workflows are not the primary target yet.\n- Existing repos with unusual layouts may need cleanup before automation works well.\n- Store submission details can change faster than tooling does.\n- Some UI and product decisions still need a human with taste.\n- Windows users need WSL or Git Bash; the helper scripts are not yet ported to a cross-platform runtime ([#5](https://github.com/harry-harish/chrome-extension-builder/issues/5)).\n\n## A good fit\n\nThis plugin is useful if you are:\n\n- Starting a new MV3 extension\n- Migrating older extension code\n- Adding features to an existing extension without breaking structure\n- Preparing for Web Store submission and want stricter checks before upload\n\n## Repository structure\n\n```text\n.claude-plugin/   # plugin.json + marketplace.json\nagents/           # extension-architect, manifest-auditor, extension-test-runner\ncommands/         # the 5 /chrome-ext:* slash commands\nhooks/            # PostToolUse / PreToolUse / UserPromptSubmit\nskills/           # framework + domain skills (WXT, Plasmo, CRXJS, security, i18n, ...)\ntests/            # validator fixtures + drift / guardrail checks\nREADME.md\nCHANGELOG.md\nLICENSE\nSECURITY.md\nPRIVACY.md\nCONTRIBUTING.md\n```\n\n## Validate before release\n\n```bash\n/chrome-ext:validate\n```\n\n## License\n\nMIT\n",
  "bytes": 6928,
  "sha": "5e21ee57556dbdee6a23ba04ed05fbc0efe7a5aace762284a4beda85875484e2",
  "repo_slug": "harry-harish/chrome-extension-builder",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_harry_harish_chrome_extension_builder_ch_11c19b76/readme"
}