Monday, October 26, 2026 4,350 lists 78,101 records on file
List your app or device

  1. Home
  2. Development Environment Managers
  3. FVM

FVM

What it is

FVM manages Flutter SDK versions for individual projects, so teams can keep builds consistent while using different Flutter versions across projects. Each project’s `.fvmrc` can pin a version and hold project-specific settings or flavors. FVM switches among installed SDKs without downloading them again, and its cleanup command can identify unreferenced versions, preview candidates, and remove unused SDKs. The documentation describes commands for CI/CD automation and supports configuration for custom Flutter repositories. FVM can update VS Code settings for the Dart Code extension; Android Studio and IntelliJ require separate configuration to use the FVM SDK path. It also provides JSON API commands for SDKs, releases, cleanup data, environment context, and project configuration. FVM is free under the MIT License, with installation options including a shell script, Homebrew, Chocolatey, Pub, and standalone packages. It supports macOS, Linux, and Windows, with available architectures varying by system.

For and against

For

  • Pin a different Flutter SDK version for each project.
  • Switch installed SDKs without downloading them again.
  • Preview and remove unused SDK versions.
  • Offers commands suited to CI/CD automation.
  • Free and licensed under MIT.

Against

  • Android Studio and IntelliJ need separate SDK-path configuration.
  • Architecture support varies by operating system.
  • FVM stores absolute project-root paths locally.

The verdict

FVM brings project-level Flutter version pinning, SDK switching, and cleanup into one tool. Teams using Android Studio or IntelliJ should account for the separate SDK-path setup.

Who it suits

FVM suits Flutter developers and teams that need project-specific SDK versions or consistent builds. It is also relevant to teams automating builds through CI/CD.

Plans and prices

FVM

Free

Open-source Flutter SDK version management · macOS, Linux, and Windows

Every plan, in full

On the record

Automation
The maker describes FVM as CI/CD friendly and provides commands for automation.fvm.app · read 2 Oct 2026
Cache management
FVM can show SDKs used by known projects and preview unused SDKs and patch upgrades before cleanup.fvm.app · read 2 Oct 2026
CI/CD
The documentation describes FVM as CI/CD friendly with commands suitable for automation.fvm.app · read 1 Oct 2026
Custom forks
FVM supports custom Flutter repositories through fork configuration.fvm.app · read 1 Oct 2026
Custom repositories
FVM supports custom Flutter repositories.fvm.app · read 2 Oct 2026
Fast switching
FVM changes SDK versions instantly without re-downloading them.fvm.app · read 1 Oct 2026
IDE limitation
FVM does not change Android Studio or IntelliJ settings, which must be configured to use the FVM SDK path.fvm.app · read 1 Oct 2026
Install methods
FVM can be installed with its shell script, Homebrew, Chocolatey, Pub or standalone GitHub packages.fvm.app · read 1 Oct 2026
JSON API
FVM provides command-line JSON API commands for listing SDKs and releases, cleanup information, environment details, and project configuration.fvm.app · read 2 Oct 2026
License
The project is licensed under the MIT License.github.com · read 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.fvm.app · read 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.fvm.app · read 2 Oct 2026
Maker
The site footer credits Leo Farias; it does not state a headquarters or founding date.fvm.app · read 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.fvm.app · read 1 Oct 2026
Other integrations
The documentation covers Android Studio and IntelliJ configuration, Melos monorepos, and a Dart MCP server setup.fvm.app · read 2 Oct 2026
Per-project versions
Each project can use a different Flutter SDK version through FVM configuration.fvm.app · read 1 Oct 2026
Project configuration
The `.fvmrc` file stores a project's Flutter version and can include project-specific settings and flavors.fvm.app · read 2 Oct 2026
Purpose
FVM manages multiple Flutter SDK versions and lets projects pin a version for consistent app builds.fvm.app · read 2 Oct 2026

The review

FVM is a Flutter SDK version manager for developers who need different projects to use different releases. It is a strong fit for teams standardizing Flutter versions across development and CI, but Android Studio and IntelliJ require separate SDK-path configuration.

Overview

FVM lets each project select its own Flutter SDK, avoiding the need to reinstall Flutter whenever work moves between projects with different version requirements. The project’s .fvmrc records the chosen version and can also hold settings and flavors, giving teammates a common reference for builds.

This is a focused Flutter tool, not a broad environment manager. Its MIT license and open-source community model will suit teams comfortable relying on community-driven software; documentation and GitHub feedback are the support routes. FVM also keeps known project-root paths in a machine-local file and does not scan disks for projects.

Key features

Project pins and quick switching

FVM switches among installed Flutter SDKs without downloading them again. That makes it practical to move between projects with different version needs, while the shared project pin can reduce version drift across a team. The benefit depends on developers and build automation using the project’s configured SDK rather than another Flutter installation.

Cleanup and automation

FVM can show SDKs no project references, preview candidates for removal, and delete unused versions with fvm cleanup. This gives teams a way to reclaim space without guessing which versions are still in use. Its commands are described as suitable for CI/CD automation, making the same project-version approach usable in build workflows.

Editor and developer integrations

FVM detects VS Code and updates .vscode/settings.json so the Dart Code extension uses the project-managed SDK. Android Studio and IntelliJ do not receive automatic settings changes; developers using those IDEs must configure the FVM SDK path themselves. FVM also documents Melos monorepo setup and a Dart MCP server configuration pointing at .fvm/flutter_sdk, so AI assistants can use the pinned SDK.

Custom repositories and API

Teams using custom Flutter repositories can configure forks. JSON API commands expose installed SDKs, releases, cleanup data, environment context, and project configuration, which can help scripts consume FVM state without relying only on interactive workflows.

Pricing

FVM is free and open source. The FVM plan costs free 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 paid tier is described. The trade-off is scope rather than a reduced quota: FVM manages Flutter SDK versions, not general-purpose development environments.

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. Installation options include a shell script, Homebrew, Chocolatey, Pub, and standalone GitHub packages. The platform label also includes an API; FVM provides JSON API commands for SDK, cleanup, environment, and project data.

Who it's for

FVM is best for Flutter developers and teams that need project-specific SDK versions and want local work and CI to follow a shared pin. It is also useful for maintaining several installed releases and cleaning up versions no project uses. Developers who expect automatic configuration in Android Studio or IntelliJ should account for the manual SDK-path step; those seeking a manager for multiple languages will likely want a broader tool.

Pros and cons

  • Pro: Project-level version pins let multiple Flutter projects use different SDKs while giving teammates a common build reference.
  • Pro: Switching among installed versions avoids repeated downloads, and cleanup includes a preview before removal.
  • Pro: CI/CD-oriented commands and JSON API support make the tool usable in automation as well as local development.
  • Con: Android Studio and IntelliJ need manual SDK-path configuration, unlike FVM’s VS Code settings update.
  • Con: Its Flutter-only focus does not replace a general environment manager for teams managing other language toolchains.

Alternatives

For a broader set of options, see Development Environment Managers.

  • ActiveState Platform is a better fit for teams seeking a broader platform with a free organization plan limited to public projects, plus a paid enterprise option with custom pricing.
  • frum is a free, MIT-licensed choice for Ruby version management on Linux, macOS, and Windows rather than Flutter.
  • GHCup is a free option for installing and managing the Haskell toolchain.
  • Jabba is a free, Apache-licensed Java version manager for Linux, macOS, and Windows.
  • PortBay offers a free Community plan for up to six projects, with two sandboxed runs, 10 MB of task attachments, and one Mac.
  • devenv is a free, MIT-licensed option for Linux, macOS, web, and Windows, but requires Nix and works on WSL for Windows use.
  • Flox is a freemium alternative with a free Personal plan that includes its CLI, catalog access, unlimited public environments, and three private FloxHub environments.
  • fnm is a free version manager for Linux, macOS, and Windows, with no paid plans.

Verdict

Flutter teams that want project-level SDK pins, fast switching, and a usable path into CI/CD should choose FVM: it keeps version management focused and free. Look elsewhere if you need one environment manager for several languages or expect Android Studio and IntelliJ configuration to happen automatically.

Alternatives to FVM

Every alternative, ranked