Move an existing PrimeVue v4 project to OpenVue with one command.
OpenVue is a fork of PrimeVue v4 that keeps the public API unchanged: usePrimeVue, PrimeVueResolver, the primevue Nuxt config key, p- prefixed CSS classes and pass-through options all work exactly as before. Migrating is therefore a package rename, which is exactly and only what @openvue/migrate does: an automated codemod that rewrites your project's imports and package references from PrimeVue to OpenVue.
The tool is ready to use. It handles Vite, Nuxt and Laravel projects, monorepos included, and always shows you what it will change before touching a single file.
Migration is a single command, run from the root of your project. For monorepos, run it at the workspace root so overrides land in the right place.
Run in a terminal, it shows a plan with the detected package manager, PrimeVue version, the files and references it will change, and your git status, then asks how to proceed:
Pass a mode flag (--mode, --dry, --no-install) or --yes to skip the prompt; any non-terminal run such as CI or piped output is non-interactive as well.
Already installed OpenVue yourself? If openvue is found in your package.json or node_modules, the tool switches to sources-only mode: dependencies and node_modules are left completely untouched, no install runs, and only source-file imports are rewritten.
npx @openvue/migrate
The rename mapping:
| From | To |
|---|---|
| primevue, primevue/* | openvue, openvue/* |
| @primevue/core, @primevue/forms, @primevue/icons, @primevue/themes, @primevue/nuxt-module, @primevue/auto-import-resolver, @primevue/metadata, @primevue/mcp | same names under @openvue/* |
| Option | Description |
|---|---|
| [dir] | Directory to migrate (defaults to the current directory) |
| --mode <mode> | full, files-only or dry; runs without prompting |
| --dry | Report what would change without writing any files |
| --no-install | Rewrite files but do not run the package manager install |
| --no-alias | Do not add the primevue to openvue override |
| --force | Do not stop on an uncommitted git working tree |
| --yes, -y | Skip prompts and use defaults (full migration) |
In interactive mode a dirty git tree only asks for confirmation. Non-interactively (with a mode flag, --yes or in CI) it stops unless you pass --force, so the migration stays a single reviewable, revertible diff.
If you just want to evaluate OpenVue first, add only the compatibility override yourself instead of running the codemod; no source changes needed. Use overrides for npm and bun, pnpm.overrides for pnpm, or resolutions for yarn.
Once you decide to stay, run npx @openvue/migrate for the real rename.
{
"overrides": {
"primevue": "npm:openvue@0.0.1-beta.0"
}
}