CLI Commands
A practical reference for the current vs command surface.
This page summarizes the commands exposed by vs-cli today.
Registry and plugin discovery
vs update
Update a locally added plugin, or update all locally added plugins:
vs update nodejs
vs update --allvs update <plugin>updates one locally added plugin.vs update --allupdates all locally added plugins.- In the current help surface,
vs updatewithout a plugin name is not the registry-refresh workflow.
vs available
List plugins from the cached registry index:
vs availableRegistry-backed commands such as vs available, vs search, and vs add <name> refresh the cached index on demand when a registry source is configured.
vs search
List available versions for a plugin:
vs search nodejs
vs search nodejs -- --ltsAdditional trailing arguments are passed through to the plugin backend.
vs add and vs remove
Add a plugin from the registry:
vs add nodejs
vs add nodejs denoAdd a plugin directly from a source directory or URL:
vs add deno --source /path/to/plugin --backend wasi
vs add nodejs --source /path/to/plugin --backend lua --alias nodeRemove a locally added plugin entry:
vs remove nodejsvs add accepts one or more plugin names, or a single explicit --source.
Install, activate, and inspect runtimes
vs install
Install explicit tool specs:
vs install nodejs@20.11.1
vs install nodejs deno@1.40.5Install all tools currently configured for the working context:
vs install --allWhen you omit the version and use plugin only, the current implementation chooses the first version returned by the plugin backend.
vs uninstall
vs uninstall nodejs@20.11.1vs use
Activate an already installed runtime:
vs use nodejs@20.11.1 -g
vs use nodejs@20.11.1 -p
VS_SESSION_ID=my-shell vs use nodejs@20.11.1 -sImportant details:
vs useonly activates installed versions.- If you omit a scope flag,
vs usedefaults to session scope. - In interactive terminals,
vs use nodejscan prompt you to choose from installed versions. - In non-interactive environments,
vs userequires an explicit version.
Project scope can skip the .vs/sdks/<plugin> link while still writing .vs.toml:
vs use deno@1.40.5 -p --unlinkvs unuse
Remove an active version assignment:
vs unuse nodejs -g
vs unuse nodejs -p
vs unuse nodejs -sLike vs use, vs unuse defaults to session scope when no explicit scope flag is provided.
Inspection commands
vs current
vs current nodejs
vs list
vs list nodejs
vs info nodejs
vs info nodejs@20.11.1
vs cd
vs cd nodejs
vs cd nodejs --pluginNotes:
vs infosupports-f/--formatfor placeholder-based output formatting.vs cdprints a path in non-interactive mode and can open an interactive shell when a TTY UI is available.vs cd nodejs --pluginresolves the plugin source directory instead of the active runtime directory.
Shell and execution helpers
Generate activation scripts:
vs activate bash
vs activate zshGenerate completions:
vs completion bashExecute a command with the resolved environment:
vs exec nodejs node -v
vs exec nodejs@20.11.1 node -vConfig, migration, and self-upgrade
vs config --list
vs config registry.address /absolute/path/to/index.json
vs config --unset registry.address
vs migrate --source ~/.vfox
vs upgrade
vs upgrade --yes`vs upgrade` is self-upgrade
vs upgrade checks GitHub releases for unsdk/vs, compares the running version with the latest published tag, downloads the matching archive for the current OS, architecture, and compiled feature set, and replaces the running binary. It does not upgrade an installed plugin.