← Blog

2026.10.09 · 4 min · vite · tooling · javascript

Vite+ 1.0: one CLI instead of six tools.

VoidZero shipped Vite+ 1.0 on 2026.09.28: one free command, vp, and one vite-plus dependency in place of Vite, Vitest, ESLint, Prettier, tsup and Turbo. What it is as of 2026.10, what runs underneath, and what it doesn't do yet.

A typical frontend repo has six tools installed before anyone writes a feature: Vite to serve and build, Vitest to test, ESLint to lint, Prettier to format, tsup to package a library and Turbo to run tasks across a monorepo. Six dependencies, six config files, six sets of plugins and versions to keep in step.

On 2026.09.28, VoidZero, Evan You's company, released Vite+ 1.0, which puts all of that behind one command, vp, one vite-plus dependency and one vite.config.ts. It is MIT-licensed and free. This is where it stands as of 2026.10.

Watch the 60-second version on Instagram.

6 TOOLS1 DEPENDENCYFIG. 01 / SIX INTO ONE

One verb per job

Vite+ doesn't reinvent the tools underneath. Each vp command is a front end for an engine that already exists, most of them built by VoidZero itself:

REPLACESVITE+RUNS ONVITEvp devVITE 8 · ROLLDOWNvp buildESLINT · PRETTIERvp checkOXLINT · OXFMTVITESTvp testVITESTTSUPvp packTSDOWNTURBOvp runVITE TASKESLINT · PRETTIERvp checkOXLINT · OXFMTFIG. 02 / THE COMMAND MAP
CommandJobRuns on
vp createScaffold a projectVite+ and framework templates
vp installInstall dependenciesYour package manager
vp devDev server with HMRVite 8 and Rolldown
vp buildProduction buildVite 8 and Rolldown
vp checkFormat, lint, type-checkOxfmt, Oxlint (types through tsgolint)
vp testUnit, component and browser testsVitest
vp packLibrary builds and binariestsdown
vp runCached, monorepo-aware task runnerVite Task
vp envNode.js versionsVite+

The one that changes the most day to day is vp check. Formatting, linting and type checking were three tools and three commands; now they are one. VoidZero says Oxlint is 50 to 100 times faster than ESLint and Oxfmt up to 30 times faster than Prettier. Those are the vendor's own numbers, not mine, but they match the general pattern of Rust rewrites of JavaScript tooling.

One config file

Everything lives in vite.config.ts, but defineConfig now comes from vite-plus instead of vite. Vite's own blocks (server, build, preview) stay where they were, and each tool gets a block next to them: lint, fmt, check, test, pack, run, staged (checks on staged files) and create.

vite.config.ts
import { defineConfig } from "vite-plus";
 
export default defineConfig({
  lint: {
    ignorePatterns: ["dist/**"],
    options: { typeAware: true, typeCheck: true }, // type errors show up in vp check
  },
  fmt: { singleQuote: true, semi: false },
  test: { include: ["src/**/*.test.ts"] },
});

Type checking in vp check is opt-in: it runs only with typeAware and typeCheck switched on, as above. vp check --fix formats and applies autofixes.

It wraps Vite, it doesn't replace it

The name invites the wrong conclusion. VoidZero's announcement is explicit that Vite+ is not a replacement for Vite: vp dev and vp build are Vite 8. It isn't a framework or a package manager either, and a project doesn't have to use Vite before it adopts Vite+.

The other common misreading is that it costs money. That was the original plan: VoidZero announced Vite+ in 2025 as a commercial product for companies. It changed course, and the alpha went out under the MIT licence in March 2026. The 1.0 announcement mentions no paid tier.

Trying it

Install the global CLI, then start fresh or migrate:

terminal
curl -fsSL https://vite.plus | bash    # macOS / Linux
irm https://vite.plus/ps1 | iex        # Windows (PowerShell)
 
vp create     # new project
vp migrate    # existing project: shows its plan before changing files

After that, the daily loop is four verbs:

terminal
vp dev        # dev server
vp check      # format + lint + types
vp test       # run tests once
vp build      # production build

What to watch for

  • vp test exits. Plain Vitest stays in watch mode; vp test runs once. Use vp test watch for the old behaviour.
  • It manages Node for you. By default the CLI takes over your global Node.js runtime and package manager. vp env off opts out, and vp implode removes the CLI and its data.
  • Migration is a real change. You are swapping ESLint for Oxlint and Prettier for Oxfmt, so check that the rules and plugins you rely on carry over, and expect some diff on the first vp check --fix. vp migrate shows its plan before it touches files; read the migration guide before pointing it at a large repo.
  • 1.0 is not finished. VoidZero calls it "far from feature-complete". Remote caching, deeper monorepo diagnostics, vp release and vp docs are still to come.

Should you switch

Adoption is already real: the announcement reports close to two million weekly npm downloads and more than 2,600 public repositories depending on vite-plus. For a new project, I'd start on it: one dependency and four verbs is a better first hour than wiring six tools together. For an existing repo with a tuned ESLint setup, the question is whether every plugin you rely on has an Oxlint equivalent. Check that list first.

I am moving most of my own Vite and React projects to it. This site stays on Next.js, which Vite+ does not replace.


Sources: VoidZero, Announcing Vite+ 1.0 · Vite+ guide · Vite+ config reference · Vite+, vp check · Vite+, vp test · heise, Vite+ becomes open source · azukiazusa, Try Vite+