FVM
FVM is a free tool for managing Flutter SDK versions by project.
What FVM is
FVM is a free tool for managing Flutter SDK versions by project. Each project can pin a version and project-specific settings in an `.fvmrc` file, so teams can keep builds consistent while using different SDK versions across projects. FVM switches between installed versions without downloading them again, and its cleanup command can identify unreferenced SDKs, preview candidates, and remove unused versions. It supports macOS, Linux, and Windows, with architecture support varying by system. Installation options include a shell script, Homebrew, Chocolatey, Pub, and standalone packages. FVM can update VS Code settings for the Dart Code extension; Android Studio and IntelliJ must be configured separately to use the FVM SDK path. The documentation also covers CI/CD commands, custom Flutter repositories, Melos monorepos, JSON API commands, and a Dart MCP server setup. FVM keeps known project paths in a machine-local file and says it does not scan disks for projects. The project is licensed under MIT.
Good
- Pins each project's Flutter version in `.fvmrc`.
- Switches among installed SDKs without re-downloading.
- Previews cleanup candidates before removing unused SDKs.
- Provides commands for CI/CD automation.
- Available for macOS, Linux, and Windows.
Watch out
- Android Studio and IntelliJ need separate SDK configuration.
- Architecture support varies by operating system.
- Keeps absolute project-root paths in a local file.
Who it suits
FVM suits Flutter developers and teams who need project-specific SDK versions or consistent builds across collaborators. It also fits workflows that use CI/CD automation or custom Flutter repositories.
Verdict
FVM centralizes Flutter SDK version management around each project and can help teams keep versions aligned. Developers using Android Studio or IntelliJ should account for the separate SDK-path setup.
Plans and prices
From FVM's own pricing page, checked 2 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| FVM | Free | Open-source Flutter SDK version management · macOS, Linux, and Windows |
The facts
Each one read from FVM's own pages, with the date it was checked.
What it does
- Automation
- The maker describes FVM as CI/CD friendly and provides commands for automation.checked 2 Oct 2026
- Cache management
- FVM can show SDKs used by known projects and preview unused SDKs and patch upgrades before cleanup.checked 2 Oct 2026
- CI/CD
- The documentation describes FVM as CI/CD friendly with commands suitable for automation.checked 1 Oct 2026
- Custom forks
- FVM supports custom Flutter repositories through fork configuration.checked 1 Oct 2026
- Custom repositories
- FVM supports custom Flutter repositories.checked 2 Oct 2026
- Fast switching
- FVM changes SDK versions instantly without re-downloading them.checked 1 Oct 2026
- IDE limitation
- FVM does not change Android Studio or IntelliJ settings, which must be configured to use the FVM SDK path.checked 1 Oct 2026
- Install methods
- FVM can be installed with its shell script, Homebrew, Chocolatey, Pub or standalone GitHub packages.checked 1 Oct 2026
- JSON API
- FVM provides command-line JSON API commands for listing SDKs and releases, cleanup information, environment details, and project configuration.checked 2 Oct 2026
- License
- The project is licensed under the MIT License.checked 1 Oct 2026
- Local data handling
- FVM stores known project roots in a machine-local `projects.json` file, never scans disks and stores absolute paths.checked 1 Oct 2026
- Local project data
- FVM says it keeps known project-root paths in a machine-local file and does not scan disks for projects.checked 2 Oct 2026
- MCP integration
- The Dart MCP server can be pointed at `.fvm/flutter_sdk` so AI assistants use the Flutter SDK pinned by FVM.checked 1 Oct 2026
- Other integrations
- The documentation covers Android Studio and IntelliJ configuration, Melos monorepos, and a Dart MCP server setup.checked 2 Oct 2026
- Per-project versions
- Each project can use a different Flutter SDK version through FVM configuration.checked 1 Oct 2026
- Project configuration
- The `.fvmrc` file stores a project's Flutter version and can include project-specific settings and flavors.checked 2 Oct 2026
- Purpose
- FVM manages multiple Flutter SDK versions and lets projects pin a version for consistent app builds.checked 2 Oct 2026
- Support and community
- The site points users to documentation and GitHub feedback, and describes the project as driven by open-source community contributors.checked 2 Oct 2026
- Supported systems
- The installation page lists support for macOS, Linux, and Windows, with architecture support varying by platform.checked 2 Oct 2026
- Switching
- It lets developers switch between installed SDK versions without re-downloading them.checked 2 Oct 2026
- VS Code integration
- FVM can update VS Code settings to point to the Flutter SDK version managed for a project.checked 2 Oct 2026
The company
- Maker
- The site footer credits Leo Farias; it does not state a headquarters or founding date.checked 2 Oct 2026
- Team consistency
- FVM uses `.fvmrc` so team members can use the same Flutter version for a project.checked 2 Oct 2026
Where it runs
- Supported platforms
- Standalone packages support macOS x64/arm64, Linux x64/arm64/riscv64 and Windows x64/arm64.checked 1 Oct 2026
The full review of FVM
FVM is a Flutter SDK version manager for developers working across projects with different Flutter requirements. Its project-level pins and automation support make it a focused option for teams that want consistent SDK choices without a general environment-management layer.
Overview
Each project can use its own Flutter SDK version, recorded in `.fvmrc`. That lets developers move between projects without reinstalling Flutter and gives teammates a shared version reference. The file can also hold project-specific settings and flavors.
FVM is deliberately limited to Flutter SDK management, rather than managing a broad set of languages and tools. Its MIT license and open-source community model suit teams comfortable relying on community-driven software; documentation and GitHub feedback are the support routes.
Key features
Project pins and quick switching
FVM switches among installed SDK versions without downloading them again. This is useful when a developer maintains projects on different Flutter releases, while the `.fvmrc` pin can reduce version drift across a team. That consistency depends on developers and automation using the project’s FVM-managed SDK.
Cache cleanup and automation
FVM can show SDKs that no project references, preview cleanup candidates, and remove unused versions with fvm cleanup. This gives developers a way to reclaim space without guessing which cached SDKs are still needed. The project also describes its commands as suitable for CI/CD automation, making the same project configuration useful in build workflows.
IDE and developer-tool integration
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 need a separate SDK-path configuration, so teams using those IDEs should account for that setup rather than expect FVM to change their settings automatically. A Dart MCP server can also be pointed at `.fvm/flutter_sdk` so AI assistants use the pinned SDK.
Custom repositories and API
Custom Flutter repositories are supported through fork configuration. JSON API commands expose installed SDKs, releases, cleanup data, environment context, and project configuration, which can help when integrating FVM into scripts or tooling.
Pricing
FVM is free: the FVM plan costs nothing and covers open-source Flutter SDK version management on macOS, Linux, and Windows. There is no free trial because the free plan is the product’s offering. No seat or usage quota is part of the plan, so it fits individual developers and teams that need project-level version control without a paid tier.
Platforms
FVM supports macOS, Linux, and Windows, with standalone packages for macOS x64 and arm64, Linux x64, arm64, and riscv64, and Windows x64 and arm64. It can be installed through its shell script, Homebrew, Chocolatey, Pub, or standalone GitHub packages. Its platform support is useful across common development systems, though supported architectures vary.
For local project tracking, FVM stores known project-root paths in a machine-local `projects.json` file. It does not scan disks for projects, and those paths are absolute.
Who it's for
FVM is a strong fit for Flutter developers and teams juggling projects that require different SDK versions, especially when CI/CD should follow the same project pin. It is less compelling for developers seeking a general-purpose environment manager, or for teams unwilling to configure Android Studio or IntelliJ to use the FVM SDK path.
Pros and cons
- Project-specific Flutter versions: `.fvmrc` lets separate projects use different SDKs and gives teams a shared version reference.
- Quick switching without another download: moving among installed SDKs avoids repeating the download for each version change.
- Useful cleanup controls: previewing unused SDKs before removing them reduces the risk of deleting versions that projects still need.
- Automation and VS Code support: CI/CD commands and automatic VS Code configuration help carry the project pin into daily development and builds.
- IDE setup remains manual elsewhere: Android Studio and IntelliJ require users to configure the FVM SDK path themselves.
- Narrow scope: FVM manages Flutter versions, not a wider development environment.
Alternatives
For a broader category comparison, see Development Environment Managers.
- ActiveState Platform may suit teams looking beyond Flutter SDK version management; its free organization plan is limited to public projects, with a paid organization option using custom pricing.
- devenv is a free, MIT-licensed alternative for Linux, macOS, and WSL, but requires Nix; choose it when that broader Nix-based setup fits your environment.
- Flox offers a free Personal plan with its CLI, catalog access, unlimited public environments, and three private FloxHub environments; consider it when environment management beyond Flutter is the priority.
- frum is a free, MIT-licensed Ruby version manager for Linux, macOS, and Windows; choose it for Ruby rather than Flutter.
- Nix is a free, open-source package manager and is a better fit when package management, rather than Flutter SDK pinning, is the need.
- nvm is a free, open-source Node.js version manager; choose it for Node.js version control.
- PortBay has a free Community plan with project, sandbox-run, attachment, and Mac limits; consider it when those sandboxed-run features match the task.
- rustup is a free Rust toolchain installer and manager, so it is the relevant choice for Rust toolchains.
Verdict
Choose FVM if your work centers on Flutter and you want projects and CI/CD to share a pinned SDK version without repeated downloads. Its main trade-off is the narrow Flutter focus, plus manual SDK-path configuration in Android Studio and IntelliJ; developers who need broader environment management or automatic setup in those IDEs should look elsewhere.
Getting started
- Open the FVM website or documentation
- Install FVM with its shell script, Homebrew, Chocolatey, Pub, or a standalone package
- Configure a project’s Flutter version in `.fvmrc`
- Use FVM commands to select or switch among installed SDKs
- Configure Android Studio or IntelliJ to use the FVM SDK path when needed
- Point the Dart MCP server at `.fvm/flutter_sdk` if using that integration
Limits worth knowing
FVM is free and has no paid-plan limits described. Android Studio and IntelliJ settings are not changed automatically and require separate configuration.
Questions
Is FVM free?
Yes. FVM is provided as a free project licensed under the MIT License.
Which systems support FVM?
FVM supports macOS, Linux, and Windows, with architecture availability varying by platform.
Can projects use different Flutter versions?
Yes. Each project can define its own version through an `.fvmrc` file.
Does FVM work with CI/CD?
Its documentation describes FVM as CI/CD friendly and provides commands suitable for automation.
Does FVM configure IDEs automatically?
It can update VS Code settings for the Dart Code extension. Android Studio and IntelliJ must be configured separately.
Alternatives to FVM
- 1

DevPod
Free planOpen sourceLinuxmacOSSelf-hostedWindows7.4Free plan - 2
nvm
Free planOpen sourceLinuxmacOSSelf-hostedWindows7.4Free plan - 3

ActiveState Platform
Free planWebAPILinuxmacOS7.2Free plan - 4

Flox
Free planWebExtensionLinuxmacOS7.1From $20 a month - 5
GHCup
Free planWebLinuxmacOSSelf-hosted7.0Free plan - 6

devenv
Free planWebLinuxmacOSWindows6.9Free plan
