Volta

Warning

volta is unmaintained. Volta’s maintainers declared the project unmaintained on 2025-11-14 and recommend migrating to mise. The final release, 2.0.2, dates back to 2024-12-05.

Volta manages JavaScript command-line tools, installing each package from the npm registry into its own isolated image pinned to a specific Node runtime.

Tools installed with volta install never land in npm’s global prefix: Volta keeps them under its own VOLTA_HOME layout and exposes their binaries through shims on PATH. The npm executable found on a Volta-equipped host is itself such a shim, and npm --global operations do not see Volta-managed tools, hence this dedicated backend (requested in #1995).

Volta has no command listing outdated packages, so outdated (and with it the synthesized upgrade --all) is unsupported: upgrades are targeted, by reinstalling the latest release of a named package.

What mpm adds to volta

mpm reaches across every manager at once, not volta alone: mpm installed and mpm outdated cover volta alongside npm, pnpm, yarn, yarn-berry and any other manager you run in one table, mpm upgrade --all updates them together, and mpm sbom exports the whole machine as one bill of materials.

Every mpm command also gains --dry-run and --plan previews, cross-scheme version comparison and purl identifiers. See manager augmentations for how each one is built.

Your volta commands, in mpm

You already know volta: each operation maps one-to-one onto mpm, in an interface shared by every manager.

To…

With volta

With mpm

List what’s installed

volta list all --format plain

mpm --volta installed

Install a package

volta install typescript@3.4.1

mpm install pkg:volta/typescript@3.4.1

Upgrade one package

volta install ember-cli

mpm --volta upgrade ember-cli

Remove a package

volta uninstall ember-cli

mpm remove pkg:volta/ember-cli

Prefix any command above with --dry-run to simulate the underlying manager calls without touching the system: the safe way to watch what mpm would do before trusting it.

Platforms

  • 🐧 Linux

  • 🍎 macOS

  • 🪟 Windows

Operations

Operation

Supported

installed

outdated

orphans

search

install

upgrade

upgrade_all

remove

sync

cleanup

doctor

Ecosystem

  • Accepted purl types: pkg:npm, pkg:volta

Selecting and configuring volta

Deselect volta for a single run with --no-volta, or persist the choice in your configuration:

[mpm]
volta = false

Keep it enabled but tune how mpm drives it with a per-manager override:

[mpm.managers.volta]
timeout = 900

mpm config-template volta prints every overridable attribute as a ready-to-paste block.

Recipes

A few jobs you would otherwise script around volta, one mpm command each:

  • Snapshot and clone a machine: mpm --volta dump volta.toml, then mpm restore volta.toml on the next one.

  • Export a compliance SBOM: mpm --volta sbom (CycloneDX by default, --spdx for SPDX).

How mpm drives volta

  • CLI names, in lookup order: volta

  • Extra CLI search paths: ~/.volta/bin

The version is extracted from the output of volta --version with:

r"(?P<version>\S+)"

Privilege escalation

mpm runs this manager as the current user and never prepends sudo by default. Flip the policy for its privileged operations with --sudo or the per-manager sudo override.

See privilege escalation for the full policy.

Cooldown

State of Volta’s release-age gating, from the cooldown support table:

  • Status: ➖ N/A (unmaintained since November 2025)

  • Reference: volta-cli/volta

With --cooldown set, mpm skips this manager’s install and upgrade operations rather than run them unguarded (fail-closed); --allow-unsupported-managers opts back in.

Reference traces

Raw native outputs captured in the manager source: the reference mpm’s parsers were written against. If you know Volta well and a transcript below looks wrong, or a newer release changed its output format, report it.

$ volta list all --format plain
runtime node@12.4.0 (default)
package-manager npm@6.13.4 (default)
package-manager yarn@1.16.0 (default)
package @larksuite/cli@1.0.79 / lark-cli / node@12.4.0 npm@built-in (default)
package ember-cli@3.10.0 / ember / node@12.4.0 npm@built-in (default)
package typescript@3.4.1 / tsc, tsserver / node@12.4.0 npm@built-in (default)

Feed any of these through mpm and the raw output becomes one uniform table, the same shape for every manager: filter it, project columns, or export it (mpm --volta installed --output json, or csv, toml, yaml), each package carrying a purl and a version comparable across managers.