Free path
Verified on simple-popup with manifest conversion, JS rewrites, HTML output, and `--version`.
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 / free run output
{
"plan": "free",
"license": null,
"inputDir": "./tests/fixtures/simple-popup",
"outDir": "./out",
"reportPath": "./report.html",
"patchPath": null,
"manifestChanges": [
"browser_action/page_action -> action",
"background.scripts -> background.service_worker",
"host permissions moved to host_permissions"
],
"manifestWarnings": [
"background.scripts requires a service worker rewrite"
],
"summary": {
"critical": 0,
"warning": 0,
"info": 1
}
}Plan
free
Warnings
1
Info
1
Report
./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.
Free path
Verified on simple-popup with manifest conversion, JS rewrites, HTML output, and `--version`.
Token unlock
Verified with signed license issuance, Ed25519 verification, and paid CLI execution.
Paid flows
Verified on batch runs, patch export, premium JSON, and DNR drafts for blocking, redirect, and header listeners.
Chrome smoke
The unpacked-extension smoke script exists and fails loudly on managed Chrome instead of faking success.
Advanced rewrites
Verified on executeScript and insertCSS calls that carry allFrames, world, origin, and injectImmediately options.
Evidence-rich DNR
Verified on multi-route webRequest fixtures with draft-rule evidence, redirect, block, and header mutation output.
Manifest-only cases
Verified on CSP and web_accessible_resources conversion, including the remote-hosted-code warning path.
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, while preserving extra executeScript/insertCSS options when possible.
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, including evidence-rich DNR drafts.
Built around real sample extensions, not a toy input. The MVP already runs through free runs, token unlocks, batch mode, and DNR fixtures.
No SaaS dependency required to get value. Run it on a repo, mint a token by hand if needed, and keep moving.
Purchase and unlock
There is no hosted account to sign into. The buyer emails us, we issue a signed token, and the CLI unlocks Pro features locally with a public key. That keeps the handoff explicit and avoids turning the product into SaaS.
Step 1
Use the pricing email link and send the buyer details. The product stays one-time purchase and local-first.
Step 2
We issue a signed Ed25519 license token by email. It carries customer, plan, seat count, and expiry metadata.
Step 3
The customer runs mv3migrate on a local extension folder and passes --license plus the public key to unlock Pro.
Step 4
The CLI writes the converted tree, HTML report, premium JSON, and patch file. The buyer then validates the result in Chrome.
Customer commands
Verified paths
This is not a theoretical migration tool. The current release has been exercised on real fixture trees, actual token issuance, and the paid command-line path that uses the token to unlock premium features.
Third-party verification
Six public repositories passed the current runner. One additional sample was excluded because its manifest file is not valid JSON and the CLI intentionally rejects that input.
Excluded sample
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.
If you buy Pro, the only extra inputs are the signed token and the public key. No account login, no hosted dashboard, and no code upload by default.
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, confirm the HTML report, test the license-token path on a local keypair, and load the output as an unpacked extension in Chrome.
Click the pricing email link, receive a signed token by email, then run mv3migrate with --license and --license-public-key on your local extension folder.
EloLin ecosystem
mv3migrate-site is the public face for docs, issues, and product updates. The other sites stay linked so a user can move between tools without losing context.
EloLin
Open the related product or account surface.
EloLin
Open the related product or account surface.
EloLin
Open the related product or account surface.
EloLin
Open the related product or account surface.
EloLin
Open the related product or account surface.
EloLin
Open the related product or account surface.
Support
Public feedback, bug reports, and feature requests for the website and product.
Sales
Purchase questions, token delivery, and licensing support go here.