pinset
中文
Tool management

pinset use

Select or change project tool versions, update configuration and lock, and install the selected tools by default.

View source on GitHub ↗

When to use

Use for first selection, upgrades or switching back. use decides versions; install restores versions already decided by the lock.

Examples

pinset use node@24 pnpm@10
pinset use python@3.14 --plan

Result: the first resolves exact versions, updates .pinset/config.toml and .pinset/lock.toml, installs and prepares command entries. The second previews only.

Behavior

Usually fetches official version/artifact metadata. Installation downloads or reuses verified cache. Configuration and lock updates are transactional. Installs and bindings write Pinset home and local project state; Python may prepare .venv. --no-install commits choices and lock only. Preview can access the network without writing state.

pnpm needs a Node selection. After editing selectors or Rust options, explicitly run use tool@selector to regenerate matching locks; installation and execution do not do this automatically. Do not repeat tools in one invocation. See custom tools for other CLIs.

Notes: pnpm 10 CJS, 11 ESM and 12 native releases are supported. Native packages and shared files are locked and verified. A mismatch between project declarations and the locked pnpm/runtime fails instead of switching toolchains.

Parameters, exit codes and common errors

ParameterMeaning
<tool@selector>...One or more choices, such as node@24.
--globalChange global defaults.
--no-installCommit choices and lock without installation.
--planResolve and preview only.

Success exits 0; failure exits 1. PINSET_SELECTOR_REQUIRED means a missing selector; PINSET_SELECTION_DUPLICATE, repeated tools; PINSET_PLATFORM_UNAVAILABLE, no target artifact. Adjust choices rather than bypassing lock verification.

/en/docs/commands/useDocumented version · Pinset 3.1.0