This guide is the release-ready CLI reference for vex.
It is based on the current command surface exposed by vex --help and the clap definitions in src/cli/.
Use it when you want the full command map in one place without jumping between README sections.
- Tool specs use the form
tool@version, for examplenode@20,go@1.24, orpython@3.12.8. - The built-in tool names are
node,go,java,rust, andpython. vexsupports both project-local version files and global defaults in~/.vex/tool-versions.- Commands that support JSON output use
--json. - Use
vex help <command>orvex <command> --helpfor the in-terminal help view.
vex init
vex install
vex sync
vex use
vex relink
vex list
vex list-remote
vex current
vex uninstall
vex env
vex local
vex global
vex lock
vex upgrade
vex outdated
vex prune
vex alias
vex exec
vex run
vex doctor
vex repair
vex self-update
vex tui
vex python
vex rust
Initialize ~/.vex, configure shell integration, or bootstrap a project template.
Usage:
vex init [--shell <shell>]
vex init --list-templates
vex init --template <template>
vex init --template <template> --dry-run
vex init --template <template> --add-onlyOptions:
--shell <shell>- valid values:
auto,zsh,bash,fish,skip
- valid values:
--template <template>- initialize the current directory with an official template
--list-templates- print the available built-in templates
--dry-run- preview template changes without writing files
--add-only- merge only safe files such as
.tool-versionsand.gitignore, then create missing starter files
- merge only safe files such as
Examples:
vex init --shell auto
vex init --list-templates
vex init --template rust-cli
vex init --template python-venv --add-onlyPrint the generated shell hook for auto-switching.
Usage:
vex env <shell>
vex env <shell> --exportsArguments:
<shell>zsh,bash,fish, ornu
Examples:
vex env zsh
vex env fish
vex env nuNotes:
vex env <shell>prints the long-lived shell hook you add to your shell config.vex env <shell> --exportsprints the current directory's resolved export/unset block and is primarily used internally by the shell hook.
Run health checks for the current installation.
The report includes core PATH/symlink checks, managed npm global bin checks, and active PATH conflicts from other tool managers that can shadow vex.
Usage:
vex doctor
vex doctor --json
vex doctor --verboseOptions:
--json- print machine-readable diagnostics
--verbose- include extra provenance and captured-environment details in text output
Preview or apply safe legacy home-directory migrations into ~/.vex.
Usage:
vex repair migrate-home
vex repair migrate-home --tool <tool>
vex repair migrate-home --applyExamples:
vex repair migrate-home
vex repair migrate-home --tool rust
vex repair migrate-home --applyInstall one or more tool specs, or install from version files when no spec is provided.
Usage:
vex install [spec...]
vex install --from <source>
vex install --frozenOptions:
--no-switch- install without automatically activating the new version
--force- reinstall even if the version already exists
--from <source>- install from a version file,
vex-config.toml, HTTPS URL, or Git repository
- install from a version file,
--frozen- require
.tool-versions.lockand fail if the lockfile is missing or out of sync
- require
--offline- use only cached metadata and archives
Examples:
vex install node@20
vex install node@20 go@1.24
vex install python@3.12 --no-switch
vex install node@20 --force
vex install --from vex-config.toml
vex install --frozen
vex install node@20 --offlineInstall missing versions from the current managed context.
Usage:
vex sync
vex sync --from <source>
vex sync --frozenOptions:
--from <source>- sync from a version file,
vex-config.toml, HTTPS URL, or Git repository
- sync from a version file,
--frozen- strictly enforce
.tool-versions.lock
- strictly enforce
--offline- use only cached data
Examples:
vex sync
vex sync --from https://company.example/vex-config.toml
vex sync --frozen
vex sync --offlineSwitch the current active version for a tool, or auto-resolve from version files.
Usage:
vex use <spec>
vex use --autoOptions:
--auto- read version files such as
.tool-versions,.node-version, or.python-version
- read version files such as
Examples:
vex use node@22
vex use python@3.12
vex use --autoRebuild managed binary links for the active toolchain.
Usage:
vex relink <tool>Notes:
- currently only
nodeis supported - use this after
npm install -g <package>adds a new executable to the active Node toolchain - it only rebuilds links under
~/.vex/bin; it does not install packages or change shell configuration
Examples:
vex relink nodeWrite a tool pin into the current directory's .tool-versions.
Usage:
vex local <spec>Example:
vex local node@20.11.0Write a global default version into ~/.vex/tool-versions.
Usage:
vex global <spec>Example:
vex global go@1.24Remove an installed toolchain version.
Usage:
vex uninstall <spec>Example:
vex uninstall node@20.11.0Manage official Rust targets and components for the active Rust toolchain.
Usage:
vex rust target list
vex rust target add <name>...
vex rust target remove <name>...
vex rust component list
vex rust component add <name>...
vex rust component remove <name>...Examples:
vex rust target add aarch64-apple-ios aarch64-apple-ios-sim
vex rust component add rust-srcGenerate .tool-versions.lock from the current managed context.
Usage:
vex lockExample:
vex lockList locally installed versions for one tool.
Usage:
vex list <tool>
vex list <tool> --jsonExample:
vex list node
vex list python --jsonList available upstream versions.
Usage:
vex list-remote <tool>
vex list-remote <tool> --filter <filter>Options:
--filter,-f- valid values:
all,lts,major,latest
- valid values:
--no-cache- bypass the remote-version cache
--offline- use only cached remote data
--json- print machine-readable output
Examples:
vex list-remote node
vex list-remote node --filter lts
vex list-remote node --filter major --no-cache
vex list-remote python --json
vex list-remote node --offlineShow active versions in the current environment.
Usage:
vex current
vex current --jsonInstall and switch to the latest version of one tool, or upgrade the whole managed context.
Usage:
vex upgrade <tool>
vex upgrade --allOptions:
--all- upgrade every managed tool in the current context
Examples:
vex upgrade node
vex upgrade --allShow which managed tools are behind the latest available version.
Usage:
vex outdated
vex outdated <tool>
vex outdated --jsonExamples:
vex outdated
vex outdated python
vex outdated --jsonRemove unused caches, stale locks, and unreferenced toolchains.
Usage:
vex prune
vex prune --dry-runOptions:
--dry-run- preview removals without deleting anything
Alias:
vex gc- exact alias for
vex prune
- exact alias for
Examples:
vex prune --dry-run
vex gcvex alias is a command group. There is no vex alias <tool> shortcut.
Create a user-defined alias for one tool version.
Usage:
vex alias set <tool> <alias> <version> [--project]Options:
--project- store the alias in
.vex.tomlinstead of~/.vex/aliases.toml
- store the alias in
Examples:
vex alias set node production 20.11.0
vex alias set node lts-current 20.11.0 --projectList aliases globally, per project, or for one tool.
Usage:
vex alias list
vex alias list [tool]Options:
--project- show only project aliases
--global- show only global aliases
Examples:
vex alias list
vex alias list node
vex alias list --projectRemove an alias.
Usage:
vex alias delete <tool> <alias> [--project]Examples:
vex alias delete node production
vex alias delete node lts-current --projectRun one command inside the resolved vex environment without changing global symlinks.
Usage:
vex exec -- <command> [args...]Examples:
vex exec -- node -v
vex exec -- python -m pytest
vex exec -- cargo testRun a named task from [commands] in .vex.toml.
Usage:
vex run <task> [args...]Examples:
vex run test
vex run lint
vex run dev -- --host 0.0.0.0vex python currently accepts a single subcommand word rather than nested clap subcommands.
Supported values:
init- create
.venvusing the activevex-managed Python and record that version in.tool-versions
- create
freeze- run
pip freezeand writerequirements.lock
- run
sync- create
.venvif needed and restore dependencies fromrequirements.lock
- create
Usage:
vex python init
vex python freeze
vex python syncRecommended workflow:
vex install python@3.12
cd my-project
vex python init
pip install requests flask
vex python freeze
vex python syncLaunch the interactive terminal dashboard.
Usage:
vex tuiNotes:
- requires an interactive terminal
- intended for current-version overview, health warnings, disk usage, and quick actions
Download and install the latest published vex release for the current architecture.
Usage:
vex self-updateUse any of these when you want the built-in CLI help:
vex --help
vex help
vex help install
vex install --help
vex alias --help