NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #976 most downloaded on pub.dev
A simple cli to manage Flutter SDK versions per project. Support channels, releases, and local cache for fast switching between versions.
Last release 1 months ago
04 Sep 2026
Release timing varies
gaps range from 8 days to 10 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
144 releases · first in 2019
fix: wait for proxied Flutter commands to finish cleanup after Ctrl+C before FVM exits with status 130, preventing terminals from being left in raw mo
pub_updater 0.4 and 0.5 in dependency resolution while retaining Dart 3.6 compatibility (#1022)See the full changelog for changes in earlier releases.
One column per quarter.
feat: add fvm cleanup to preview unused cached SDKs and exact same-line stable patch upgrades, and to remove unused versions with --remove-unused . Re
fvm cleanup to preview unused cached SDKs and exact same-line stable patch upgrades, and to remove unused versions with --remove-unused. Recommended upgrade targets stay cached until a project or global pin moves; fvm list Unused now points herefvm api cleanup with upgrades, unused, and removable. unused matches fvm list Unused and fvm api list unreferencedVersions; removable is what --remove-unused would deletefvm list has no local project version to markSee the full changelog for changes in earlier releases.
feat: add a Projects column to fvm list that shows how many known projects pin each cached SDK. Versions that no known project pins and that are not s
Projects column to fvm list that shows how many known projects pin each cached SDK. Versions that no known project pins and that are not selected globally are labeled Unused. FVM records projects after fvm use or fvm install and reads their current .fvmrc values when listingfvm api list as projects and unreferencedVersionsmyfork/3.24.0@beta to the installed myfork/3.24.0 SDK in the Local and Projects columnsSee the full changelog for changes in earlier releases.
chore: prepare v4.1.5 release
chore: prepare v4.1.5 release (#1067)
See the full changelog for changes in earlier releases.
fix: stop git-cache maintenance from running destructive git commands against repositories FVM does not own
GIT_DIR, GIT_WORK_TREE, GIT_INDEX_FILE, and the rest of the git rev-parse --local-env-vars set) when it runs git, flutter, or dart. Tools launched through FVM from inside a git hook, such as fvm dart run in a pre-commit hook, no longer see the hook's repository variables and will read the real index instead of the hook's staged index. Transport and auth variables like GIT_SSH_COMMAND and GIT_ASKPASS are preserved. (#1060)See the full changelog for changes in earlier releases.
Moving the repository between accounts left the release tool naming an
owner that only redirected. GitHub keeps those redirects alive, and
cli_pkg does not follow them on POST, so pkg-github-release failed with
307 Moved Permanently after every test job had already passed and the
v4.1.3 deploy published nothing.
The repository is back on leoafarias, so the owner constant itself is
correct and unchanged here. This only records why it is load-bearing, so
the next account move updates it deliberately instead of rediscovering
this through a failed release.
The 4.1.3 tag never published anything: the deploy failed at the GitHub
release step because the repository had moved accounts, so pub.dev,
Homebrew, Chocolatey, Docker and the binaries were all skipped. Releasing
the same changes as 4.1.4 rather than reusing the unpublished 4.1.3 tag.
fix: stop rebuilding the git cache on every command when macOS leaves .DS_Store files in it
.DS_Store files in it (#1043)See the full changelog for changes in earlier releases.
Bumps version to 4.1.2 and finalizes the CHANGELOG.
fix: prevent git cache bloat and stale SDK installs caused by outdated cache clones
See the full changelog for changes in earlier releases.
feat: opt out of update checks for quieter CI and offline runs
feat: migrate install script to v2 with user-local default install
.fvm/fvm_config.json file loading (#996)fix: remove leading newline from fvm dart/flutter output
fix: preserve all project settings on fvm install
fix: version detection for Flutter 3.38+ (version file removal)
add: fvm install now runs setup by default
fvm install now runs setup by defaultfvm doctor crash when version not pinnedadd: Manage Flutter SDKs from custom or forked repositories
sdkPath in melos.yamlupdateMelosSettings configuration option to control Melos integration per projectNothing published for this version
Nothing published for this version
fix: --fvm-skip-input flag not applying to context
--fvm-skip-input flag not applying to contextfvm list now displays the cache path even if no version is installedadd: support for skipping input requests by @Rexios80. Input requests are skipped when the --fvm-skip-input flag is passed.
--fvm-skip-input flag is passed.Display the configured version in the fvm list command by @digoreis
fvm list command by @digoreisImproved messages when nested .fvmrc file is found.
Improved mirror creation logging
Disable git cache on CI environment by @leoafarias
Fixed: Version weight handles custom versions properly by @quyenvsp
Fixed: fvm api context command not been parsed correctly by @leoafarias
fvm api context command not been parsed correctly by @leoafariasFixed: Empty flavors map been added to the project config by @leoafarias
Initial release of JSON API, allows for better integration of third-party tools and CI/CD workflows.
Improvement: versioned brew formulae by @leoafarias
Added: fvm use [version] --force now skips install confirmation prompt by @mrgnhnt96
fvm use [version] --force now skips install confirmation prompt by @mrgnhnt96install and use, --skip-pub-get by @mrgnhnt96Adds skipping version mismatch handling when using force or running with a custom fvm version. #653
Removed fvm update command. Due to issue with brew and chocolatey install.
fvm update command. Due to issue with brew and chocolatey install.Fixed issue when config is found in directory no pubspec.yaml. #638
Adds .gitignore even if project is not a git repository. As IDEs and tools use it as a reference for project indexing.
Implemented better validation checks for flavors #639
However fvm_config.json is now deprecated in favor of .fvmrc file. FVM will migrate it automatically.
fvm use [version] and fvm install now also create legacy fvm_config.json file for easier 3.0 migration path.fvm_config.json is now deprecated in favor of .fvmrc file. FVM will migrate it automatically.fvm flutter command falls back to global fvm version if version not found in directory.
fvm flutter command falls back to global fvm version if version not found in directory.Added fallback when cannot validate Flutter SDK version using git tags. #627
VsCode settings now supports jsonc (comments, trailing comma)
fvm install command not creating sdk reference #618Added check on update command for homebrew and chocolatey deployment.
Removed validation for long commit hashes. FVM will now accept any length hash that git can return as a reference.
Fixed Dart SDK download on brew installations.
You can now use fvm use {version} --env {flavor} as an alias for flavor. Might be deprecated in the future since env has become a better description f…
flutter commands instead of fvm flutterfvm in unprivileged mode, it will not require admin rights to run; however, local Flutter SDK project references will be absolute paths instead of relative links.fvm flutter command proxy.fvm doctor command. Now provides much better output and information about the project and environment.fvm releases output.fvm list output.fvm global command.--update-check flag on fvm configfvm releases now defaults to stable channel. Use --all flag to see all releases, or filter by channel.fvm use {flavor}fvm remove --all.fvmrc instead of .fvm/fvm_config.json, and .fvm can be added to .gitignore, FVM will migrate it automatically.fvm use {version} --env {flavor} as an alias for flavor. Might be deprecated in the future since env has become a better description for environment specific settings than flavor.commit hash, hash needs to be 10 digits. FVM will now validate it and provide the correct hash if it can..fvmrc instead of .fvm/fvm_config.json. FVM will migrate it automatically. However .fvm should be ignored, if you depend on fvm_config.json in your tools or CI, you should update your configuration.fvm install - Will not setup by default. Use --setup flag to setup Flutter SDK. Flag --skip-setup is removed.fvm releases - Defaults to stable releases. Use --all flag to see all releases, or filter by channel using --channel {channel}.fvm flavor - Removed in favor of fvm use {flavor}.fvm use - Will always setup by default. Use --skip-setup flag to skip setup.FVM_HOME is now FVM_CACHE_PATH.FVM_GIT_CACHE is now FVM_FLUTTER_URL.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Filter out Mac releases based on architecture.
Upgraded minimum Dart version to 2.17.0 for better Flutter 3.0 compatibility.
Updated Flutter releases endpoint.
Implemented fvm exec command. Execute terminal commands with the configured Flutter/Dart SDK version in the environment.
fvm exec command. Execute terminal commands with the configured Flutter/Dart SDK version in the environment.fvm use command will install configured version by default if no version is provided.Nothing published for this version
Fixed an issue with routing to older Dart SDK directory path (before 1.17.5).
Clean dart command output stdout Issue #361.
dart command output stdout Issue #361.dart pub cache repair Issue #352.null check exception Issue #358.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Ensures SDK is setup when running use command.
use command.Fix archive URL from release info.
Small fix when checking for upgrade.
Your coding agent can read these notes before it upgrades. Set up the MCP server →