Setup prompt

I want to use Vite+ in my project. Vite+ is the unified toolchain for the web behind the `vp` CLI — one tool combining Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task, plus runtime and package-manager management.

First, read https://viteplus.dev/llms-full.txt and https://viteplus.dev/guide to learn Vite+'s commands and configuration. Inspect the worktree and preserve unrelated changes. Determine whether I want a new project or want to migrate or upgrade an existing project. Follow only the matching flow below.

For a new project:

Read https://viteplus.dev/guide/create and choose the template, target directory, package manager, and intended Vite+ release or preview for my project. Use the target CLI's `help create` output to select supported options. Scaffold with `vp create`; do not overwrite existing project files.

A global installation is optional. To install the global `vp` CLI when it is not already available:
- macOS / Linux: curl -fsSL https://vite.plus | bash
- Windows (PowerShell): irm https://vite.plus/ps1 | iex

Open a new terminal after installation. Follow https://viteplus.dev/guide/upgrade to select the target release or preview and check `vp toolchain --global` before scaffolding.

Without a global installation, use a supported Node.js runtime from the compatibility guide. For the 1.0.0-rc.0 release, run `pnpm dlx --package=vite-plus@1.0.0-rc.0 vp create` or `npx --package=vite-plus@1.0.0-rc.0 vp create`. Replace 1.0.0-rc.0 with the intended release version. For a preview, use the version from its PR and pass `--registry=https://registry-bridge.viteplus.dev` to pnpm or npx before the vp command.

Run `vp install`, `vp check`, and `vp test`, then `vp build` for applications or `vp pack` for libraries. Without a global CLI, install with the project's package manager and run the local CLI through it, such as `pnpm exec vp check` or `npm exec -- vp check`. Explain how to use `vp dev` for the dev server and `vp run <task>` for project scripts or tasks. Report the setup changes, validation results, and any remaining work. Do not commit or push unless I ask.

For an existing project, including one that already uses Vite+, follow these migration or upgrade instructions:

Migrate this project to Vite+ while preserving its application, test, and library build behavior.

Read these guides before making changes:

- https://viteplus.dev/guide/migrate
- https://viteplus.dev/guide/migrate-rules
- https://viteplus.dev/guide/vitest-v5
- https://vitest.dev/guide/migration/
- https://github.com/rolldown/tsdown/releases/tag/v0.23.0

Inspect the worktree and preserve unrelated changes. Identify the workspace root, package manager, scripts, configuration files, and tools in use. If the project already uses Vite+, follow the upgrade flow in the migration guide and keep the existing setup; do not use --full unless I request it.

For a project that does not use Vite+ yet, check the prerequisites for the tools it uses: Vite 8+ and Vitest 4.1+. Complete any required upstream upgrades and validate them before starting the Vite+ migration. Then keep those manifests, lockfile, and installed packages available so the migrator can identify the original Vitest version. Do not install vite-plus or upgrade Vitest to the target's bundled version before running migration.

Use the CLI from the target Vite+ 1.0 release or its preview build. Use a supported Node.js runtime from the compatibility guide. A global installation is optional:

- With a global vp installation, follow https://viteplus.dev/guide/upgrade to select the target release and check `vp toolchain --global`. Run `vp help` and `vp help migrate`, then `vp migrate --no-interactive` from the workspace root.
- Without a global installation, run the target CLI through the package manager from the workspace root. For the 1.0.0-rc.0 release, use `pnpm dlx --package=vite-plus@1.0.0-rc.0 vp migrate --no-interactive` or `npx --package=vite-plus@1.0.0-rc.0 vp migrate --no-interactive`. First run the same command with `help migrate` instead of `migrate --no-interactive` to read its help. These commands fetch the target CLI without replacing the old project dependencies first.

Replace 1.0.0-rc.0 with the intended release version. For a preview, use the version from its PR and pass `--registry=https://registry-bridge.viteplus.dev` to pnpm or npx before the vp command.

Do not run migration with an old project's node_modules/.bin/vp. Migrate monorepos from the workspace root so shared manifests, catalogs, overrides, and lockfiles remain consistent.

Resolve BLOCK findings and rerun migration. Review every REVIEW finding and manual-migration warning using the linked guidance, even if migration exits with success. Keep the generated Vitest v4 and tsdown <0.23 compatibility settings and comments for the first validation run.

Review the resulting changes against the migration rules:

- Confirm Vite and test imports use the supported vite-plus and vite-plus/test* entries. Keep type augmentations on their upstream module identities and the community WebDriverIO provider on @vitest/browser-webdriverio.
- Preserve dependencies, aliases, catalogs, and overrides configured by the migrator. On pnpm, keep the configured vite and vitest entries. Retain upstream packages when the migration rules require them.
- Move remaining tool-specific configuration into the appropriate blocks in vite.config.ts. Review manual follow-up for lint, formatting, packaging, and hooks without discarding project-specific behavior.
- Distinguish built-ins from tasks: `vp dev` and `vp test` run built-in tools; `vp run dev` and `vp run test` run the corresponding project scripts or tasks. The packageManager field selects the package manager used by `vp install`, `vp add`, and `vp remove`.

Run `vp install`, `vp check`, and `vp test`, plus configured browser, coverage, and benchmark suites. Run `vp build` for applications and `vp pack` for libraries, including both where the workspace contains both. Check library consumers against emitted imports and declarations. Without a global CLI, install with the project's package manager and invoke the updated local CLI through it, such as `pnpm exec vp check` or `npm exec -- vp check`. Fix failures without weakening assertions or dropping test coverage.

After establishing a passing baseline, try to remove the generated "Vitest v4 compatibility" settings with no code changes or small, localized fixes:

1. Use the migration diff and generated comments to identify additions in root, workspace, and inline project configs. Read each linked explanation and check the effective setting after removal, including inherited values. Preserve pre-existing user settings and settings whose origin is unclear.
2. Remove one added setting at a time and first run the affected projects and suites without code changes. If needed, make small, localized application, test, or setup fixes that preserve test intent, such as correcting a locator or adjusting mock setup in a few tests. Do not weaken assertions, accept snapshot changes without review, or reduce the test set. For fakeTimers.toNotFake, remove only the added Temporal entry and preserve other exclusions. Do not weaken coverage enforcement: retain glob-threshold perFile: true unless I approve aggregate checking, even if coverage passes.
3. Keep a removal only when the affected tests pass and still execute the same tests without new skips. Remove that setting's generated comment too. If removal requires widespread test edits or shared setup refactoring, keep compatibility for now and report the follow-up work. Restore the setting and its comment if validation still fails, cannot run, or leaves uncertainty about behavior. Undo only cleanup-specific trial edits; preserve completed migration fixes and unrelated work.
4. Run the full validation commands again with the accepted removals together. Report each candidate's config path, removed or retained status, code changes, commands and results, and the reason for retaining it. Distinguish a deferred rewrite from a setting you could not validate.

For projects that use vp pack, also review the generated "tsdown <0.23 compatibility" settings after a passing library build. Use the migration diff and linked comments to distinguish inserted settings from pre-existing user choices. Removing deps.resolveDepSubpath: true preserves external subpath imports as written; check that consumers can still resolve the emitted imports. Removing attw.profile: 'strict' adopts the esm-only profile, which skips node10 and CommonJS resolution checks. Keep strict if those checks are part of the package's intended support. Do not drop intended declaration checks merely to make a build pass. Remove one setting and its generated comment at a time, then run vp pack and the package's consumer checks. Restore the setting and comment if validation fails or the required consumer behavior is unclear. Report which settings remain and why.

Report the migration changes, validation results, retained compatibility settings, and unresolved findings. Do not commit or push unless I ask.
Skip to content

Getting Started

Vite+ is the unified toolchain and entry point for web development.

It brings together Vite, Vitest, Oxlint, Oxfmt, Rolldown, tsdown, and Vite Task in a single vite-plus package for a blazing fast frontend toolchain.

Vite+ also ships a global vp CLI that manages Node.js and package managers and makes Vite+ easier to use across projects. You can use either CLI independently, but we recommend using them together.

If you already have a Vite project, run vp migrate to migrate it to Vite+, or give your coding agent our migration prompt.

Building with an AI assistant? View and copy a prompt to create a new project, migrate an existing project, or upgrade Vite+:

Install vp Globally

The commands below install the global vp CLI, which manages Node.js and package managers and makes vp available across projects. If you only need the frontend toolchain in a single project, you can install the project-local CLI instead.

macOS / Linux

bash
curl -fsSL https://vite.plus | bash

Windows

powershell
irm https://vite.plus/ps1 | iex

Alternatively, download and run vp-setup.exe.

SmartScreen warning

The vp-setup.exe is not yet code-signed. Your browser may show a warning when downloading. Click "...""Keep""Keep anyway" to proceed. If Windows Defender SmartScreen blocks the file when you run it, click "More info""Run anyway".

The installer scripts and vp-setup.exe read environment variables such as VP_VERSION and VP_HOME.

If you use Nushell with custom XDG directories, read the Nushell startup requirements before installing.

After installation, open a new shell and run:

bash
vp help

INFO

Vite+ will manage your global Node.js runtime and package manager. If you'd like to opt out of this behavior, run vp env off. If you realize Vite+ is not for you, type vp implode, but please share your feedback with us.

Using a minor platform (CPU architecture, OS) ?

Prebuilt binaries are distributed for the following platforms (grouped by Node.js v24 platform support tier):

  • Tier 1
    • Linux x64 glibc (x86_64-unknown-linux-gnu)
    • Linux arm64 glibc (aarch64-unknown-linux-gnu)
    • Windows x64 (x86_64-pc-windows-msvc)
    • macOS x64 (x86_64-apple-darwin)
    • macOS arm64 (aarch64-apple-darwin)
  • Tier 2
    • Windows arm64 (aarch64-pc-windows-msvc)
  • Experimental
    • Linux x64 musl (x86_64-unknown-linux-musl)
  • Other
    • Linux arm64 musl (aarch64-unknown-linux-musl)

If a prebuilt binary is not available for your platform, installation will fail with an error.

On Alpine Linux (musl), you need to install libstdc++ before using Vite+:

sh
apk add libstdc++

This is required because the managed unofficial-builds Node.js runtime depends on the GNU C++ standard library.

Quick Start

With the global CLI installed, create a project, install dependencies, and use the default commands:

bash
vp create # Create a new project
vp install # Install dependencies
vp dev # Start the dev server
vp check # Format, lint, type-check
vp test # Run JavaScript tests
vp build # Build for production

You can also run vp on its own to open the interactive command line. In a local-only setup, run the same commands through your package manager, such as pnpm exec vp check.

Core Commands

Vite+ covers the full frontend development cycle, from starting a project through development, checks, tests, and production builds. Most commands are available from both distributions; machine-level environment and self-management commands require the global CLI.

Set Up a Project

Project Toolchain

  • vp check runs format, lint, and type checks together.
  • vp lint and vp fmt run the individual checks directly.
  • vp test runs tests with Vitest.
  • vp dev starts the development server powered by Vite.
  • vp build builds apps, and vp preview previews the production build locally.
  • vp pack builds libraries or standalone artifacts.
  • vp toolchain shows the active project toolchain; use --global to inspect the global installation instead.
  • vp run runs tasks across workspaces with caching.
  • vp cache clean clears task cache entries.
  • vp exec runs local project binaries, while vp dlx and vpx download and run package binaries.
  • vp config installs the Git hook dispatcher and configures agent integration.
  • vp hooks manages the Git hook dispatcher, and vp staged runs checks on staged files.
  • Monorepo Guide covers multi-package project structure and commands.

Global CLI

  • vp env manages Node.js and package-manager environments, and vp node runs scripts with the resolved environment.
  • vp upgrade updates the global vp installation itself.
  • vp implode removes the global vp installation and related Vite+ data from your machine.

Workflow

Reference

  • Troubleshooting covers common command, configuration, and integration problems.

INFO

Vite+ ships with many predefined commands such as vp build, vp test, and vp dev. These commands are built-in and cannot be changed. If you want to run a command from your package.json scripts, use vp run <command> or vpr <command>.

Learn more about vp run.