EVERYTHING XIAOMI
Get listed

FVM

FVM is a free tool for managing Flutter SDK versions by project.

Place
#11 of 50
Score
6.7
FVM's website

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.

All about pricing
PlanPriceWhat it gives you
FVMFreeOpen-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

  1. Open the FVM website or documentation
  2. Install FVM with its shell script, Homebrew, Chocolatey, Pub, or a standalone package
  3. Configure a project’s Flutter version in `.fvmrc`
  4. Use FVM commands to select or switch among installed SDKs
  5. Configure Android Studio or IntelliJ to use the FVM SDK path when needed
  6. 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

All alternatives
  1. 1DevPod logo

    DevPod

    Free planOpen sourceLinuxmacOSSelf-hostedWindows
    7.4Free plan
  2. 2

    nvm

    Free planOpen sourceLinuxmacOSSelf-hostedWindows
    7.4Free plan
  3. 3ActiveState Platform logo

    ActiveState Platform

    Free planWebAPILinuxmacOS
    7.2Free plan
  4. 4Flox logo

    Flox

    Free planWebExtensionLinuxmacOS
    7.1From $20 a month
  5. 5

    GHCup

    Free planWebLinuxmacOSSelf-hosted
    7.0Free plan
  6. 6devenv logo

    devenv

    Free planWebLinuxmacOSWindows
    6.9Free plan