{"adoption": {"forks": 284, "observed_at": "2026-08-28T04:09:21.769263+00:00", "stars": 5506}, "canonical_url": "https://ross.abutalabs.com/products/fvm", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Flutter Version Management: A simple CLI to manage Flutter SDK versions.", "domain": ["developer-tools", "mobile-development", "cross-platform"], "enriched": true, "function": ["cli", "developer-tools", "package-manager"], "health_score": 100, "homepage": "https://leoafarias.github.io/fvm/", "language": "Dart", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["leoafarias/fvm", "leoafarias/sidekick"], "name": "FVM", "platform": ["windows", "cli", "cross-platform"], "pushed_at": "2026-08-24T16:03:41+00:00", "repo": "leoafarias/fvm", "stars": 5506, "tags": ["flutter", "dart", "version-manager", "sdk-management", "flutter-sdk", "sidekick", "ci-consistency", "developer-experience", "command-line", "linux", "macos", "docker"], "topics": ["flutter", "cli", "dart", "flutter-sdk-versions", "flutter-releases", "sdk", "fvm"], "urls": [{"kind": "homepage", "url": "https://leoafarias.github.io/fvm/"}], "use_cases": ["manage multiple flutter sdk versions on one machine", "pin a specific flutter version per project", "switch flutter channels without reinstalling the sdk", "keep my team on the same flutter version", "test a new flutter release without breaking my main setup", "install flutter from a specific commit", "ensure consistent flutter version in ci pipelines"], "what_it_is": "FVM (Flutter Version Management) is a command-line tool for installing, caching, and switching between multiple Flutter SDK versions on a per-project basis. It keeps Flutter environments consistent across teams and CI pipelines, and is accompanied by a GUI companion app called Sidekick.", "when_to_avoid": ["You only ever use a single Flutter version globally and never switch", "You don't develop with Flutter or Dart at all", "You prefer relying solely on your IDE's bundled Flutter SDK management"], "when_to_choose": ["You work across multiple Flutter projects that require different SDK versions", "Your team needs reproducible, consistent Flutter environments across machines and CI", "You frequently test Flutter channels, releases, or specific commits", "You want fast SDK switching instead of slow channel-change reinstalls"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/leoafarias/fvm", "repo": "leoafarias/fvm", "role": "main", "score": 99}, {"path": "/repos/leoafarias/sidekick", "repo": "leoafarias/sidekick", "role": "frontend", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:56:16.578014+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b802afb0b5b1b799282e312d1afce154862589e2544dc5ddad2d832000688a45", "fetched_at": "2026-08-28T04:09:21.769263+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leoafarias/fvm"}, {"content_hash": "eb09e8d9b73959d65b31d8081df9588088ba4991305892756835c955d5163773", "fetched_at": "2026-08-29T08:51:19.741498+00:00", "kind": "homepage", "missing": false, "url": "https://leoafarias.github.io/fvm/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:56:16.578014+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b802afb0b5b1b799282e312d1afce154862589e2544dc5ddad2d832000688a45", "fetched_at": "2026-08-28T04:09:21.769263+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leoafarias/fvm"}, {"content_hash": "eb09e8d9b73959d65b31d8081df9588088ba4991305892756835c955d5163773", "fetched_at": "2026-08-29T08:51:19.741498+00:00", "kind": "homepage", "missing": false, "url": "https://leoafarias.github.io/fvm/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:56:16.578014+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b802afb0b5b1b799282e312d1afce154862589e2544dc5ddad2d832000688a45", "fetched_at": "2026-08-28T04:09:21.769263+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leoafarias/fvm"}, {"content_hash": "eb09e8d9b73959d65b31d8081df9588088ba4991305892756835c955d5163773", "fetched_at": "2026-08-29T08:51:19.741498+00:00", "kind": "homepage", "missing": false, "url": "https://leoafarias.github.io/fvm/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:56:16.578014+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b802afb0b5b1b799282e312d1afce154862589e2544dc5ddad2d832000688a45", "fetched_at": "2026-08-28T04:09:21.769263+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leoafarias/fvm"}, {"content_hash": "eb09e8d9b73959d65b31d8081df9588088ba4991305892756835c955d5163773", "fetched_at": "2026-08-29T08:51:19.741498+00:00", "kind": "homepage", "missing": false, "url": "https://leoafarias.github.io/fvm/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:56:16.578014+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b802afb0b5b1b799282e312d1afce154862589e2544dc5ddad2d832000688a45", "fetched_at": "2026-08-28T04:09:21.769263+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leoafarias/fvm"}, {"content_hash": "eb09e8d9b73959d65b31d8081df9588088ba4991305892756835c955d5163773", "fetched_at": "2026-08-29T08:51:19.741498+00:00", "kind": "homepage", "missing": false, "url": "https://leoafarias.github.io/fvm/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:56:16.578014+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b802afb0b5b1b799282e312d1afce154862589e2544dc5ddad2d832000688a45", "fetched_at": "2026-08-28T04:09:21.769263+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leoafarias/fvm"}, {"content_hash": "eb09e8d9b73959d65b31d8081df9588088ba4991305892756835c955d5163773", "fetched_at": "2026-08-29T08:51:19.741498+00:00", "kind": "homepage", "missing": false, "url": "https://leoafarias.github.io/fvm/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:21.769263+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:56:16.578014+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b802afb0b5b1b799282e312d1afce154862589e2544dc5ddad2d832000688a45", "fetched_at": "2026-08-28T04:09:21.769263+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leoafarias/fvm"}, {"content_hash": "eb09e8d9b73959d65b31d8081df9588088ba4991305892756835c955d5163773", "fetched_at": "2026-08-29T08:51:19.741498+00:00", "kind": "homepage", "missing": false, "url": "https://leoafarias.github.io/fvm/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:56:16.578014+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b802afb0b5b1b799282e312d1afce154862589e2544dc5ddad2d832000688a45", "fetched_at": "2026-08-28T04:09:21.769263+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leoafarias/fvm"}, {"content_hash": "eb09e8d9b73959d65b31d8081df9588088ba4991305892756835c955d5163773", "fetched_at": "2026-08-29T08:51:19.741498+00:00", "kind": "homepage", "missing": false, "url": "https://leoafarias.github.io/fvm/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:56:16.578014+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b802afb0b5b1b799282e312d1afce154862589e2544dc5ddad2d832000688a45", "fetched_at": "2026-08-28T04:09:21.769263+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leoafarias/fvm"}, {"content_hash": "eb09e8d9b73959d65b31d8081df9588088ba4991305892756835c955d5163773", "fetched_at": "2026-08-29T08:51:19.741498+00:00", "kind": "homepage", "missing": false, "url": "https://leoafarias.github.io/fvm/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:56:16.578014+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b802afb0b5b1b799282e312d1afce154862589e2544dc5ddad2d832000688a45", "fetched_at": "2026-08-28T04:09:21.769263+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leoafarias/fvm"}, {"content_hash": "eb09e8d9b73959d65b31d8081df9588088ba4991305892756835c955d5163773", "fetched_at": "2026-08-29T08:51:19.741498+00:00", "kind": "homepage", "missing": false, "url": "https://leoafarias.github.io/fvm/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 99}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2749, "days_push": 9, "days_rel": 9, "gap_med": 6.5, "n_releases_24m": 13}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}