{"adoption": {"forks": 157, "observed_at": "2026-08-28T04:08:30.818776+00:00", "stars": 3970}, "canonical_url": "https://ross.abutalabs.com/products/vfox", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A cross-platform and extendable version manager with support for Java, Node.js, Golang, Python, Flutter, .NET & more", "domain": ["developer-tools", "cross-platform"], "enriched": true, "function": ["cli", "package-manager", "developer-tools", "plugin-system", "configuration-management", "sdk"], "health_score": 97, "homepage": "https://vfox.dev", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["version-fox/vfox"], "name": "version-fox/vfox", "platform": ["windows", "cli", "cross-platform"], "pushed_at": "2026-08-21T06:47:55+00:00", "repo": "version-fox/vfox", "stars": 3970, "tags": ["version-manager", "sdk-manager", "asdf-alternative", "nvm-alternative", "sdkman-alternative", "lua-plugins", "shell-integration", "runtime-switching", "toml-config", "environment-management", "command-line", "linux", "macos"], "topics": ["cross-platform", "plugin-manager", "version-manager", "linux", "macos", "windows", "bash", "cmd", "golang", "lua", "powershell", "zsh", "asdf", "cli", "development-tools", "nodejs", "sdk", "tools"], "urls": [], "use_cases": ["manage multiple java or node.js versions on windows without wsl", "switch sdk versions automatically when entering a project directory", "replace nvm, sdkman, fvm, and asdf with a single version manager", "install and switch between python, golang, and flutter from one cli", "share consistent tool versions across a team via one config file", "add version management for a custom runtime via plugins", "migrate from asdf keeping existing .tool-versions or .nvmrc files"], "what_it_is": "vfox is a cross-platform, plugin-extensible version manager (similar to nvm, sdkman, and asdf-vm) for installing and switching SDKs such as Java, Node.js, Go, Python, Flutter, and .NET. Written in Go, it unifies per-project, per-shell, and global version management behind one CLI and one .vfox.toml config, with a simple Lua plugin API and shell hooks for automatic version switching.", "when_to_avoid": ["You only need one language runtime, where a dedicated manager like nvm or pyenv may be simpler", "You rely on CMD, which only supports global scope and is not recommended", "Your CI/Docker pipelines are non-interactive and you prefer not to use vfox exec or container-native tooling", "You depend on a very specific asdf plugin ecosystem or shim-based behavior that vfox does not replicate"], "when_to_choose": ["You work across Windows, Linux, and macOS and want one consistent version manager everywhere", "You juggle many language runtimes and want a single CLI and config instead of per-language managers", "You need project-level, session-level, or global versions with automatic switching as you change directories", "You want to extend version management to any tool via a simple Lua plugin API", "You are coming from asdf/nvm/sdkman and want compatibility with .tool-versions, .nvmrc, .node-version, or .sdkmanrc"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/vfox", "repo": "version-fox/vfox", "role": "main", "score": 87}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.818776+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:24:22.334897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b13911aa530c0c88a520be35c56dfb76b2eab9cf9ab455a951df579f51108cb", "fetched_at": "2026-08-28T04:08:30.818776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/version-fox/vfox"}, {"content_hash": "d5344c1015bc7a81f277c8977e988bf78a19c7cc5b49288ee398ea373eabd612", "fetched_at": "2026-08-29T09:17:49.069395+00:00", "kind": "homepage", "missing": false, "url": "https://vfox.dev"}, {"content_hash": "922fb92c2f2ca4eeb137d4e41314e603e35599088b80b8fb4a7616f5c39e96f6", "fetched_at": "2026-08-29T09:17:49.071772+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/intro.html"}, {"content_hash": "f8c3173390545e135ea339843ac20db55bcccf965918f62ca8307f73adfdfbf2", "fetched_at": "2026-08-29T09:17:49.073603+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/faq.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.818776+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:24:22.334897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b13911aa530c0c88a520be35c56dfb76b2eab9cf9ab455a951df579f51108cb", "fetched_at": "2026-08-28T04:08:30.818776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/version-fox/vfox"}, {"content_hash": "d5344c1015bc7a81f277c8977e988bf78a19c7cc5b49288ee398ea373eabd612", "fetched_at": "2026-08-29T09:17:49.069395+00:00", "kind": "homepage", "missing": false, "url": "https://vfox.dev"}, {"content_hash": "922fb92c2f2ca4eeb137d4e41314e603e35599088b80b8fb4a7616f5c39e96f6", "fetched_at": "2026-08-29T09:17:49.071772+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/intro.html"}, {"content_hash": "f8c3173390545e135ea339843ac20db55bcccf965918f62ca8307f73adfdfbf2", "fetched_at": "2026-08-29T09:17:49.073603+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/faq.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:24:22.334897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b13911aa530c0c88a520be35c56dfb76b2eab9cf9ab455a951df579f51108cb", "fetched_at": "2026-08-28T04:08:30.818776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/version-fox/vfox"}, {"content_hash": "d5344c1015bc7a81f277c8977e988bf78a19c7cc5b49288ee398ea373eabd612", "fetched_at": "2026-08-29T09:17:49.069395+00:00", "kind": "homepage", "missing": false, "url": "https://vfox.dev"}, {"content_hash": "922fb92c2f2ca4eeb137d4e41314e603e35599088b80b8fb4a7616f5c39e96f6", "fetched_at": "2026-08-29T09:17:49.071772+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/intro.html"}, {"content_hash": "f8c3173390545e135ea339843ac20db55bcccf965918f62ca8307f73adfdfbf2", "fetched_at": "2026-08-29T09:17:49.073603+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/faq.html"}], "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:08:30.818776+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.818776+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.818776+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:24:22.334897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b13911aa530c0c88a520be35c56dfb76b2eab9cf9ab455a951df579f51108cb", "fetched_at": "2026-08-28T04:08:30.818776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/version-fox/vfox"}, {"content_hash": "d5344c1015bc7a81f277c8977e988bf78a19c7cc5b49288ee398ea373eabd612", "fetched_at": "2026-08-29T09:17:49.069395+00:00", "kind": "homepage", "missing": false, "url": "https://vfox.dev"}, {"content_hash": "922fb92c2f2ca4eeb137d4e41314e603e35599088b80b8fb4a7616f5c39e96f6", "fetched_at": "2026-08-29T09:17:49.071772+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/intro.html"}, {"content_hash": "f8c3173390545e135ea339843ac20db55bcccf965918f62ca8307f73adfdfbf2", "fetched_at": "2026-08-29T09:17:49.073603+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/faq.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.818776+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.818776+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:24:22.334897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b13911aa530c0c88a520be35c56dfb76b2eab9cf9ab455a951df579f51108cb", "fetched_at": "2026-08-28T04:08:30.818776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/version-fox/vfox"}, {"content_hash": "d5344c1015bc7a81f277c8977e988bf78a19c7cc5b49288ee398ea373eabd612", "fetched_at": "2026-08-29T09:17:49.069395+00:00", "kind": "homepage", "missing": false, "url": "https://vfox.dev"}, {"content_hash": "922fb92c2f2ca4eeb137d4e41314e603e35599088b80b8fb4a7616f5c39e96f6", "fetched_at": "2026-08-29T09:17:49.071772+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/intro.html"}, {"content_hash": "f8c3173390545e135ea339843ac20db55bcccf965918f62ca8307f73adfdfbf2", "fetched_at": "2026-08-29T09:17:49.073603+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/faq.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.818776+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.818776+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.818776+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:24:22.334897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b13911aa530c0c88a520be35c56dfb76b2eab9cf9ab455a951df579f51108cb", "fetched_at": "2026-08-28T04:08:30.818776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/version-fox/vfox"}, {"content_hash": "d5344c1015bc7a81f277c8977e988bf78a19c7cc5b49288ee398ea373eabd612", "fetched_at": "2026-08-29T09:17:49.069395+00:00", "kind": "homepage", "missing": false, "url": "https://vfox.dev"}, {"content_hash": "922fb92c2f2ca4eeb137d4e41314e603e35599088b80b8fb4a7616f5c39e96f6", "fetched_at": "2026-08-29T09:17:49.071772+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/intro.html"}, {"content_hash": "f8c3173390545e135ea339843ac20db55bcccf965918f62ca8307f73adfdfbf2", "fetched_at": "2026-08-29T09:17:49.073603+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/faq.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.818776+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.818776+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:24:22.334897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b13911aa530c0c88a520be35c56dfb76b2eab9cf9ab455a951df579f51108cb", "fetched_at": "2026-08-28T04:08:30.818776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/version-fox/vfox"}, {"content_hash": "d5344c1015bc7a81f277c8977e988bf78a19c7cc5b49288ee398ea373eabd612", "fetched_at": "2026-08-29T09:17:49.069395+00:00", "kind": "homepage", "missing": false, "url": "https://vfox.dev"}, {"content_hash": "922fb92c2f2ca4eeb137d4e41314e603e35599088b80b8fb4a7616f5c39e96f6", "fetched_at": "2026-08-29T09:17:49.071772+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/intro.html"}, {"content_hash": "f8c3173390545e135ea339843ac20db55bcccf965918f62ca8307f73adfdfbf2", "fetched_at": "2026-08-29T09:17:49.073603+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/faq.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:24:22.334897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b13911aa530c0c88a520be35c56dfb76b2eab9cf9ab455a951df579f51108cb", "fetched_at": "2026-08-28T04:08:30.818776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/version-fox/vfox"}, {"content_hash": "d5344c1015bc7a81f277c8977e988bf78a19c7cc5b49288ee398ea373eabd612", "fetched_at": "2026-08-29T09:17:49.069395+00:00", "kind": "homepage", "missing": false, "url": "https://vfox.dev"}, {"content_hash": "922fb92c2f2ca4eeb137d4e41314e603e35599088b80b8fb4a7616f5c39e96f6", "fetched_at": "2026-08-29T09:17:49.071772+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/intro.html"}, {"content_hash": "f8c3173390545e135ea339843ac20db55bcccf965918f62ca8307f73adfdfbf2", "fetched_at": "2026-08-29T09:17:49.073603+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/faq.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:24:22.334897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b13911aa530c0c88a520be35c56dfb76b2eab9cf9ab455a951df579f51108cb", "fetched_at": "2026-08-28T04:08:30.818776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/version-fox/vfox"}, {"content_hash": "d5344c1015bc7a81f277c8977e988bf78a19c7cc5b49288ee398ea373eabd612", "fetched_at": "2026-08-29T09:17:49.069395+00:00", "kind": "homepage", "missing": false, "url": "https://vfox.dev"}, {"content_hash": "922fb92c2f2ca4eeb137d4e41314e603e35599088b80b8fb4a7616f5c39e96f6", "fetched_at": "2026-08-29T09:17:49.071772+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/intro.html"}, {"content_hash": "f8c3173390545e135ea339843ac20db55bcccf965918f62ca8307f73adfdfbf2", "fetched_at": "2026-08-29T09:17:49.073603+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/faq.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:24:22.334897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b13911aa530c0c88a520be35c56dfb76b2eab9cf9ab455a951df579f51108cb", "fetched_at": "2026-08-28T04:08:30.818776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/version-fox/vfox"}, {"content_hash": "d5344c1015bc7a81f277c8977e988bf78a19c7cc5b49288ee398ea373eabd612", "fetched_at": "2026-08-29T09:17:49.069395+00:00", "kind": "homepage", "missing": false, "url": "https://vfox.dev"}, {"content_hash": "922fb92c2f2ca4eeb137d4e41314e603e35599088b80b8fb4a7616f5c39e96f6", "fetched_at": "2026-08-29T09:17:49.071772+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/intro.html"}, {"content_hash": "f8c3173390545e135ea339843ac20db55bcccf965918f62ca8307f73adfdfbf2", "fetched_at": "2026-08-29T09:17:49.073603+00:00", "kind": "site_page", "missing": false, "url": "https://vfox.dev/guides/faq.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 71, "rhythm": 81}, "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": 998, "days_push": 12, "days_rel": 126, "gap_med": 8.0, "n_releases_24m": 29}, "score": 87, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}