https://github.com/version-fox/vfox
A cross-platform and extendable version manager with support for Java, Node.js, Golang, Python, Flutter, .NET & more
https://github.com/version-fox/vfox
asdf bash cli cmd cross-platform development-tools golang linux lua macos nodejs plugin-manager powershell sdk tools version-manager windows zsh
Last synced: about 4 hours ago
JSON representation
A cross-platform and extendable version manager with support for Java, Node.js, Golang, Python, Flutter, .NET & more
- Host: GitHub
- URL: https://github.com/version-fox/vfox
- Owner: version-fox
- License: apache-2.0
- Created: 2023-12-09T08:57:59.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-18T03:13:22.000Z (20 days ago)
- Last Synced: 2026-01-18T08:24:07.827Z (20 days ago)
- Topics: asdf, bash, cli, cmd, cross-platform, development-tools, golang, linux, lua, macos, nodejs, plugin-manager, powershell, sdk, tools, version-manager, windows, zsh
- Language: Go
- Homepage: https://vfox.dev
- Size: 22.2 MB
- Stars: 3,734
- Watchers: 17
- Forks: 149
- Open Issues: 75
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Agents: AGENTS.md
Awesome Lists containing this project
- awesome-version-managers - vfox - A cross-platform, extensible version manager. It supports native Windows and Unix-like. (Version Managers / Generic)
- awesome-ops - version-fox/vfox - 2.0|3614|2023-12-09|2025-11-04 | 跨平台的用于管理 SDK 版本的工具,允许你通过命令行快速安装和切换不同版本的 SDK | (Version-Switch-Tools)
- definitive-opensource - vfox - platform and extendable version manager with support for Java, Node.js, Golang, Python, Flutter, .NET & more | `Cross` | **3.8k** | (Table of Contents / Version Manager)
README
# vfox
[](https://goreportcard.com/report/github.com/version-fox/vfox)
[](LICENSE)
[](https://github.com/version-fox/vfox/releases)
[[English]](./README.md) [[中文文档]](./README_CN.md)
If you **switch between development projects which expect different environments**, specifically different runtime versions or ambient libraries,
or **you are tired of all kinds of cumbersome environment configurations**, `vfox` is the ideal choice for you.
## Introduction
**`vfox` is a cross-platform version manager(similar to `nvm`, `fvm`, `sdkman`, `asdf-vm`, etc.), extendable via plugins**. It allows you to quickly install
and switch between different environment you need via the command line.
## Why use vfox?
- **cross-platform support** (**Windows**, Linux, macOS)
- **consistent commands** to manage all your languages
- supports **different versions for different projects, different shells, and globally**.
- simple **plugin system** to add support for your runtime of choice
- **automatically switches** runtime versions as you traverse your project
- support for existing config files `.node-version`, `.nvmrc`, `.sdkmanrc` for easy migration
- shell completion available for common shells (Bash, ZSH, Powershell, Clink)
## Demo
[](https://asciinema.org/a/650100)
## Quickstart
> For detailed installation instructions, see [Quick Start](https://vfox.dev/guides/quick-start.html)
#### 1. Choose an [installation](https://vfox.dev/guides/quick-start.html#_1-installation) that works for you.
#### 2. ⚠️ **_Hook `vfox` into your shell_ (pick one that works for your shell)** ⚠️
```bash
echo 'eval "$(vfox activate bash)"' >> ~/.bashrc
echo 'eval "$(vfox activate zsh)"' >> ~/.zshrc
echo 'vfox activate fish | source' >> ~/.config/fish/config.fish
# For PowerShell:
if (-not (Test-Path -Path $PROFILE)) { New-Item -Type File -Path $PROFILE -Force }
echo 'Invoke-Expression "$(vfox activate pwsh)"' >> $PROFILE
# For Clink:
# 1. Install clink: https://github.com/chrisant996/clink/releases
# Or Install cmder: https://github.com/cmderdev/cmder/releases
# 2. Find script path: clink info | findstr scripts
# 3. copy internal/shell/clink_vfox.lua to script path
# For Nushell:
vfox activate nushell $nu.default-config-dir | save --append $nu.config-path
```
> Remember to restart your shell to apply the changes.
#### 3. Add an SDK plugin
```bash
$ vfox add nodejs
```
#### 4. Install a runtime
```bash
$ vfox install nodejs@21.5.0
```
#### 5. Switch runtime
```bash
$ vfox use nodejs@21.5.0
$ node -v
21.5.0
```
## Full Documentation
See [vfox.dev](https://vfox.dev) for full documentation.
## Available Plugins
> If you have installed `vfox`, you can view all available plugins with the `vfox available` command.
For more details, see the [Available Plugins](https://vfox.dev/plugins/available.html).
## Contributors
> Thanks to following people who contributed to this project. 🎉🎉🙏🙏
## Contributing
Bug reports, contributions and forks are welcome. All bugs or other forms of discussion happen
on [issues](http://github.com/version-fox/vfox/issues).
See more at [CONTRIBUTING.md](./CONTRIBUTING.md).
Plugin Contributions, please go to [Public Registry](https://github.com/version-fox/vfox-plugins)
## Thanks
> Thanks JetBrains for the free open source license. :)
## COPYRIGHT
[Apache 2.0 license](./LICENSE) - Copyright (C) 2026 Han Li
and [contributors](https://github.com/version-fox/vfox/graphs/contributors)