vp toolchain prints the tools, versions, and bundling relationships in the active release. vp hooks manages the Vite+ dispatcher for Git hooks, and removes the manual setup steps. vp run no longer fails in the default Codex CLI and Claude Code sandboxes. Those sandboxes deny Unix sockets and shared memory, which task IPC and file-access tracking used. The rest of the release makes the install path more reliable. It fixes npm 12 blocked install scripts, Yarn 2+ integrity pins, and baseline Bun builds for older CPUs. It also fixes downloads that stopped on slow connections.
Highlights
- New
vp toolchaincommand. It prints the tools, versions, and bundling relationships in the active Vite+ release as a tree. The tree shows vite-plus, core, vite, rolldown, oxc, oxc-resolver, and the compiled Vite Task with its build time and revision. Give a tool name to select part of the tree. Use--jsonfor machine-readable output. Use--globalfor the global release (#2111), by @fengmk2 - New
vp hookscommand. It manages the Vite+ dispatcher for Git hooks.enableinstalls or refreshes the dispatcher and setscore.hooksPath.disableremoves the dispatcher and keeps that preference, soprepareandvp configdo not install it again.statusshows the current state. Use--hooks-dirto set a custom directory. Vite+ keeps that directory for later commands. Vite+ does not change project-owned hooks,stagedconfig, orpackage.jsonlifecycle scripts (#2341), by @dennybiasiolli vp runnow works in the default Codex CLI and Claude Code sandboxes. Before this release, a cached task failed withFailed to set up task communication: Operation not permitted. The task code never started. Automatic file-access tracking also failed. Task caching and input tracking now work in both default profiles. You do not need extra sandbox permissions (vite-task#569, vite-task#576), by @wan9chi
Features
vp createnow shows the dependencies whose install scripts npm 12 blocked. Before this release, Vite+ left those dependencies unbuilt and gave no message. To approve them,vp createrunsvp pm approve-buildsand thenvp pm rebuild(#2336), by @fengmk2- Large downloads no longer stop on slow connections. Node.js tarballs and package-manager tarballs now use a 10 minute timeout. Before this release, they used the shared 2 minute per-request limit. That limit stopped healthy downloads below approximately 250 KB/s. It also made
vp env installandvp migrateimpossible to complete. SetVP_DOWNLOAD_TIMEOUTto a different number of seconds (#2386), by @tarikermis - Package-manager downloads now show a byte progress bar. The managed Node.js runtime already showed one. A slow download no longer looks stopped (#2369), by @semimikoh
- You can now select JetBrains editors (IntelliJ, WebStorm, and similar) in the editor setup question. Vite+ writes the Oxc plugin ID to
.idea/externalDependencies.xml. The docs now describe the gitignore strategy for.idea(#2204, #2378), by @KTrain5169 vpnow shows a warning when it falls back to the global CLI in a project that has no project-localvite-plus. If the project declares the dependency,vptells you to runvp install. If the project does not declare it,vppoints to the migration guide.vp migrateand commands outside a project stay silent (#2362), by @liangmiQwQ- Generated editor settings now disable nested Oxlint config resolution. The Vite+ config stays authoritative (#2331), by @liangmiQwQ
Note
Upstream toolchain upgrade: vite 8.2.0 -> 8.2.1, rolldown 1.2.2 -> 1.2.3, oxlint 1.76.0 -> 1.77.0, oxfmt 0.61.0 -> 0.62.0, and the oxc npm packages and Rust crates 0.142.0 -> 0.143.0. oxfmt and oxlint both changed. The new versions can report problems in code that passed before. If your CI runs vp check, run vp fmt after you upgrade (#2373), by @voidzero-guard[bot]
Fixes & Enhancements
- Yarn 2+ pins from
corepack usenow verify against the extracted CLI (bin/yarn.js), not the npm tarball.vp installno longer fails on a cold cache.vp runno longer downloads Yarn again on every run (#2227), by @leslieeilsel vp devno longer crashes at startup withENOENTwhenexperimental.bundledDevis enabled. The bundled dev client path now points to the packaged layout (#2384), by @lofczvp migratenow rejects a workspace member as its target. Before this release, it migrated the enclosing workspace instead. It now tells you to run the command from the workspace root (#2229), by @leslieeilselVP_NODE_VERSION=22and other partial versions now resolve to an exact Node.js release. This applies to shim-dispatched commands such asvp env exec node -v(#2411), by @jong-kyung- Managed
bunxshims now dispatch throughbun x.bunx <package>no longer starts a matching package script recursively. This applies to new Bun installations (#2151), by @liangmiQwQ - Managed Bun now selects the baseline build on x64 CPUs that do not have AVX2. Bun's standard builds require AVX2. Cached installations keep their current files (#2179), by @liangmiQwQ
- Generated Nushell env files now escape and normalize paths correctly. A
VP_HOMEpath that contains spaces or quotes now loads without an error (#2191), by @naokihaba vite-plus/test/browser-*type exports now add.jsextensions to relative shim specifiers. Those specifiers now resolve withNodeNextmodule resolution (#2360), by @eai04191- Tool-backed help is now consistent with upstream. An exact
vp <command> --helpshows the local themed help. A command with more arguments (vp test --help --coverage,vp test list --help) goes to the bundled tool. Deep help and subcommand help stay complete (#2345), by @liangmiQwQ - Vite Task diagnostics now print paths and working directories without Rust debug formatting. Vite+ no longer prints quoted paths or escaped Windows backslashes (vite-task#534), by @liangmiQwQ
- Broad workspace globs no longer find and run package scripts inside
node_modules(vite-task#539), by @jong-kyung
Refactor
- Rename the internal Rust crates from
vite_*tovp_*(#2335), by @fengmk2 - Move the shared CLI helpers into
utils(#2347), by @jong-kyung - Remove a redundant Vite reporter patch from core (#2355), by @jong-kyung
- Remove the duplicate export transformers in tools (#2358), by @jong-kyung
- Move the accent helpers into
crate::help(#2363), by @jong-kyung - Sort installed Node.js versions with node-semver (#2366), by @jong-kyung
- Remove the duplicate package-manager command resolution tests (#2393), by @jong-kyung
- Share the Vite config file order between the CLI code paths (#2409), by @jong-kyung
- Use the silent spinner again in the migrators (#2408), by @jong-kyung
Docs
- Document how to write custom Oxlint plugins in the lint guide (#2381), by @connorshea
- Document manual installation in the migrate guide (#2365), by @liangmiQwQ
- Add a View Prompt dialog for the setup prompt (#2400), by @dennybiasiolli
- Correct the documented
overridesbehavior to match Vite+ (#1942), by @liangmiQwQ - Explain
setup-vite-plus-actionversion pinning in the CI guide (#2359), by @fengmk2 - Correct the config and staged paths in the CLI
BUNDLING.md(#2334), by @dennybiasiolli - Remove unused performance data from the docs (#2392), by @jong-kyung
- Add the v0.2.8 release learnings to the release-manager skill (#2333), by @fengmk2
Chore
- Update the compiled Vite Task to
d05b1dc(#2339, #2403), by @wan9chi - Update the Rust nightly toolchain to
2026-08-02(#2342), by @wan9chi - Update the repository pnpm to v11 (#1997), by @renovate[bot]
- Remove the unused VitePress bundling from core (#2332), by @jong-kyung
- Remove the unused tool subcommands (#2324), by @jong-kyung
- Remove the unused
build:srctask (#2396), by @jong-kyung - Handle upstream help differences in the dependency upgrade workflow (#2330), by @liangmiQwQ
- Publish preview builds from fork PRs with GitHub OIDC (#2387), by @fengmk2
- Require the preview publish approval only for fork PRs (#2404), by @fengmk2
- Correct the publishing workflow after its first real runs (#2397), by @fengmk2
- Deploy the production docs on release, and deploy a main preview on push (#2389), by @fengmk2
- Check the format of docs PRs with the
vpbuilt from the checkout (#2388), by @fengmk2 - Run the e2e migrate test at the clone root (#2410), by @fengmk2
- Pin the
dev_engines_runtime_pnpm11snapshot to the seeded default Node version (#2390), by @fengmk2 - Use
pnpm testagain as the full gate (#2376), by @jong-kyung - Remove the global compile checks that did nothing (#2394), by @jong-kyung
Bundled Versions
| Tool | Version | Source |
|---|---|---|
| vite | 8.2.1
| 4216158
|
| rolldown | 1.2.3
| 52dbd19
|
| tsdown | 0.22.14
| npm |
| vitest | 4.1.10
| npm |
| oxlint | 1.77.0
| npm |
| oxlint-tsgolint | 7.0.2001
| npm |
| oxfmt | 0.62.0
| npm |
Upgrade
vp upgradeNew Contributors
@eai04191, @KTrain5169, @lofcz, @tarikermis, @leslieeilsel
Full Changelog: v0.2.8...v0.2.9
Published Packages
@voidzero-dev/vite-plus-core@0.2.9vite-plus@0.2.9
Installation
macOS/Linux:
curl -fsSL https://vite.plus | bashWindows:
irm https://vite.plus/ps1 | iexOr download and run vp-setup.exe from the assets below.
Docker:
docker run --rm -it -v "$PWD:/app" -w /app ghcr.io/voidzero-dev/vite-plus:0.2.9 vp buildRun any vp command without installing it; see the Docker guide for more.