FVM vs nvm
FVM
fvm.appnvm
github.comSide by side
| Figure | FVM | nvm |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | — | Yes |
| Plans published | 1 | 2 |
| Spec score · Development Environment Managers | 8.7 (#4) | 8.4 (#10) |
| License | The project is licensed under the MIT License. | nvm is distributed under the MIT License, permitting use, modification, distribution and sale subject to retaining notices. |
| Project configuration | The `.fvmrc` file stores a project's Flutter version and can include project-specific settings and flavors. | nvm can use an .nvmrc file to specify a Node.js version for a project, with shell snippets documented for automatic switching. |
| Purpose | FVM manages multiple Flutter SDK versions and lets projects pin a version for consistent app builds. | nvm lets users install and use different Node.js versions from the command line. |
Plans
In their own words
FVM
FVM manages Flutter SDK versions by project, allowing teams to keep builds consistent while using different versions across projects. A project’s `.fvmrc` file records its selected Flutter version and can include project-specific settings and flavors. FVM switches among installed SDKs without downloading them again. It can identify unreferenced versions, preview cleanup candidates, and remove unused SDKs with `fvm cleanup`. The documentation describes commands suitable for CI/CD automation and support for custom Flutter repositories. FVM provides packages for macOS, Linux, and Windows, with architecture availability varying by system. Installation options include a shell script, Homebrew, Chocolatey, Pub, and standalone packages. FVM detects VS Code and updates `.vscode/settings.json` for the Dart Code extension to use the project’s managed SDK. Android Studio and IntelliJ settings must be configured separately to point to the FVM SDK path. JSON API commands expose installed SDKs, releases, cleanup data, environment context, and project configuration. FVM stores known project roots in a machine-local file and says it does not scan disks for projects. The project is licensed under MIT.
nvm
nvm is a free, MIT-licensed command-line tool for installing and managing Node.js versions. It is designed for installation per user and invocation per shell, and works in POSIX-compliant shells including sh, dash, ksh, zsh, and bash. Users can install specific versions, switch between them, set aliases such as a default, and use LTS aliases and commands to select long-term support versions. A project can specify its Node.js version in an.nvmrc file; documented shell snippets can support automatic switching. During installation, nvm can reinstall global npm packages from another installed Node.js version. With the --offline flag, it can install a version that was previously downloaded or cached without network access. The project documents use in Docker, including an example for CI/CD jobs. On Windows, nvm can work through WSL and may work with Git Bash or Cygwin depending on the environment. Fish shell is not supported, and the project points users to community alternatives. The project states that only the latest nvm version is supported.