Real fixtures
Validated against simple-popup, content-script-injector, and webrequest-blocker samples.
mv3migrate scans a Chrome extension, rewrites the common MV2 patterns, flags the dangerous ones, and produces a report you can hand to a developer or use to keep moving locally.
mv3migrate / demo output
Manifest
Auto
Codemods
4+
Warnings
Explicit
Report
HTML
What it does not do
It does not pretend every MV2 extension is a safe auto-convert. When migration is ambiguous, it leaves a warning instead of hiding the risk.
Local validation
mv3migrate is not a promise of full automation. It is a narrow tool that is useful exactly where MV2 to MV3 migration usually slows down: common manifest edits, code-level API swaps, and transparent warnings for the hard parts.
Real fixtures
Validated against simple-popup, content-script-injector, and webrequest-blocker samples.
Automated tests
Node test coverage for manifest conversion, source scanning, codemod rewrites, and CLI output.
Clear warnings
Blocking webRequest listeners stay visible as critical findings instead of being hidden by a false success.
Built for migration work
The product is intentionally narrow: automate the common parts, surface the risky parts, and give the user a report they can trust.
Moves the obvious MV2 fields to MV3: browser_action, page_action, background scripts, host permissions, WAR, and CSP.
Updates common API calls like browserAction, pageAction, executeScript, insertCSS, and getBackgroundPage.
Flags webRequestBlocking, eval, and non-trivial patterns that should not be silently “fixed”.
Writes a JSON summary and an HTML report so a migration is easy to inspect, share, and review.
Built around real sample extensions, not a toy input. The MVP already runs through three fixture classes.
No SaaS dependency required to get value. Run it on a repo, inspect the diff, and keep moving.
How it works
Every output can be inspected locally. No hidden service, no opaque upload, no false claim that the hard parts are “done”.
Walk the tree, find manifest.json, detect MV2-only APIs, and map risky files before any rewrite happens.
Convert the manifest, replace the straightforward API calls, and keep the rest of the code untouched.
Open the HTML report, inspect the critical items, and decide whether the output is ready or needs manual work.
Install
The CLI is local-first. Point it at a repo, get a transformed output directory, and inspect the report before you decide what to keep or change.
FAQ
Developers and maintainers who already have MV2 code and need a first-pass migration path instead of a blank template.
No. It automates the common shape of the work and explicitly leaves ambiguous cases as warnings.
The official tools help, but they do not complete the whole migration. This product is focused on the missing middle.
Run the CLI on fixtures, inspect the transformed output, and confirm the report matches the files you expect to change.