A minimal bash-based CLI for installing, switching, and removing multiple Node.js versions on macOS and Linux.
version-fox/vfox
A cross-platform version manager for development runtimes like Node.js, Java, Go and Python, extendable through plugins.
Open-source alternative to:nvm
- Stars
- 4,010
- Forks
- 168
- Open issues
- 54
- Last commit
- 2 days ago
What is it?
vfox lets you install and switch between versions of language runtimes and SDKs from the command line. It targets developers who work on several projects that need different runtime versions, and who want one consistent command set instead of a separate tool per language.
Versions can be set per project, per shell, or globally, and vfox switches automatically as you move between project directories. It also reads existing version files such as .node-version, .nvmrc and .sdkmanrc, which eases migration from other managers. Support for each runtime comes from plugins, so new SDKs can be added without changing the core tool.
vfox runs on Windows, Linux and macOS, and provides shell integration for Bash, Zsh, Fish, PowerShell, Clink and Nushell.
Key features
- 01Installs and switches multiple versions of runtimes such as Node.js, Java, Go and Python.
- 02Sets versions per project, per shell, or globally.
- 03Switches versions automatically when changing project directories.
- 04Reads existing files like .nvmrc and .sdkmanrc.
- 05Extensible through a plugin system.
- 06Shell completion for Bash, Zsh, Fish, PowerShell and Clink.
Use cases
- Working on several projects that require different Node.js or Java versions.
- Replacing nvm, sdkman or asdf with one tool across languages.
- Setting up consistent toolchains on Windows and Unix-like systems.
Quick start
- 1
Choose an installation method from the Quick Start guide
- 2
Hook vfox into your shell (bash shown)
echo 'eval "$(vfox activate bash)"' >> ~/.bashrc - 3
Add the Node.js plugin
vfox add nodejs - 4
Install a Node.js runtime version
vfox install nodejs@21.5.0
Things to know
- Requires editing your shell startup files and restarting the shell before it works.
- Some shells, such as Clink on Windows, need extra manual setup steps.
In collections
Topics
FAQ
- What is vfox?
- A cross-platform version manager for development runtimes like Node.js, Java, Go and Python, extendable through plugins. vfox lets you install and switch between versions of language runtimes and SDKs from the command line. It targets developers who work on several projects that need different runtime versions, and who want one consistent command set instead of a separate tool per language.
- Is vfox free to use? What license does it have?
- vfox is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is vfox still maintained?
- Actively maintained. The last commit to vfox was on Nov 5, 2026.
- What can I use vfox for?
- Working on several projects that require different Node.js or Java versions. Replacing nvm, sdkman or asdf with one tool across languages. Setting up consistent toolchains on Windows and Unix-like systems.
- How do I install vfox?
- Choose an installation method from the Quick Start guide Hook vfox into your shell (bash shown): echo 'eval "$(vfox activate bash)"' >> ~/.bashrc Add the Node.js plugin: vfox add nodejs Install a Node.js runtime version: vfox install nodejs@21.5.0
- Where can I get vfox?
- The source code and installation instructions are on GitHub: https://github.com/version-fox/vfox
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Command-line tool for installing and switching between multiple Python versions globally, per project, or per shell session.
A POSIX-compliant bash script for installing and switching between multiple Node.js versions per user and per shell.
A single Rust CLI that installs project tools, sets environment variables, and runs tasks from one mise.toml file.
A Node.js version manager for Windows that installs and switches between multiple Node.js versions per project or globally.
A cross-platform package manager that installs multiple versions side by side and runs environments in rootless, OS-like SubOS isolation.