# version-fox/vfox

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/version-fox-vfox).**

3,910 stars · 157 forks · Go · Apache-2.0

## Links

- GitHub: https://github.com/version-fox/vfox
- Homepage: https://vfox.dev
- awesome-repositories: https://awesome-repositories.com/repository/version-fox-vfox.md

## Topics

`asdf` `bash` `cli` `cmd` `cross-platform` `development-tools` `golang` `linux` `lua` `macos` `nodejs` `plugin-manager` `powershell` `sdk` `tools` `version-manager` `windows` `zsh`

## Description

Vfox is a command-line utility designed to manage multiple programming language runtimes and development tools on a single machine. It provides a unified interface for installing, switching, and configuring software versions across different operating systems, ensuring consistent development environments.

The project distinguishes itself through a modular, plugin-based architecture that allows for the integration of diverse language runtimes and utilities beyond built-in defaults. It utilizes a combination of shim-based execution, symlink management, and dynamic shell-hook environment injection to maintain active tool versions, providing a consistent experience across Windows, macOS, and Linux.

The tool automates environment setup by traversing directory trees to resolve project-specific configuration files, enabling automatic version switching when navigating between different project folders. It supports granular runtime scope configuration, allowing users to define tool requirements at global, session, or project levels.

The software is distributed as a command-line tool that integrates directly into common shell environments to manage path mappings and environment variables.

## Tags

### Development Tools & Productivity

- [Runtime Version Managers](https://awesome-repositories.com/f/development-tools-productivity/development-environment-management/environment-provisioning-configuration/developer-environment-tooling/runtime-version-managers.md) — Provides a unified command-line interface for installing, switching, and enforcing consistent runtime versions across development environments. ([source](https://github.com/version-fox/vfox#readme))
- [Command Shims](https://awesome-repositories.com/f/development-tools-productivity/command-shims.md) — Intercepts command calls using lightweight wrappers to redirect execution to the currently active tool version.
- [Runtime Version Switching](https://awesome-repositories.com/f/development-tools-productivity/runtime-version-detectors/runtime-version-switching.md) — Automatically detects project configuration files to update the active runtime version when navigating between project environments. ([source](https://github.com/version-fox/vfox#readme))
- [Shell Environment Managers](https://awesome-repositories.com/f/development-tools-productivity/shell-environment-managers.md) — Hooks into shells to automatically detect project requirements and activate the correct runtime versions based on directory context. ([source](https://github.com/version-fox/vfox/blob/main/README.md))
- [Cross-Platform Toolchains](https://awesome-repositories.com/f/development-tools-productivity/cross-platform-toolchains.md) — Maintains a consistent development environment and unified command interface across different operating systems.
- [Development Environment Setups](https://awesome-repositories.com/f/development-tools-productivity/development-environment-setups.md) — Expands local toolsets by adding support for new programming languages and utilities through a plugin system.
- [Plugin Systems](https://awesome-repositories.com/f/development-tools-productivity/plugin-systems.md) — Provides a plugin system to integrate additional language runtimes and utilities beyond built-in defaults. ([source](https://github.com/version-fox/vfox#readme))

### Programming Languages & Runtimes

- [Language Runtime Managers](https://awesome-repositories.com/f/programming-languages-runtimes/language-runtime-managers.md) — Installs and switches between multiple versions of various programming language runtimes on a single machine.
- [Version Managers](https://awesome-repositories.com/f/programming-languages-runtimes/language-ecosystems-tooling/version-managers.md) — Provides a command-line interface for installing and switching between multiple versions of development tools across operating systems.
- [Multi-Version Installations](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtime-management-utilities/pre-release-runtime-installers/multi-version-installations.md) — Downloads and manages multiple specific versions of programming language runtimes and development tools. ([source](https://vfox.dev/guides/quick-start.html))
- [Symlink-Based Version Switching](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtime-management-utilities/symlink-based-version-switching.md) — Manages multiple software installations by updating symbolic links to point the system path to the desired version.
- [Shell Environment Injections](https://awesome-repositories.com/f/programming-languages-runtimes/shell-functions/shell-environment-injections.md) — Modifies terminal sessions by dynamically injecting environment variables and path mappings for selected tool versions.

### Software Engineering & Architecture

- [Directory-Based Version Resolution](https://awesome-repositories.com/f/software-engineering-architecture/directory-based-version-resolution.md) — Determines the active runtime version by traversing directory trees to locate project-specific configuration files.
- [Plugin-Based Extensibility](https://awesome-repositories.com/f/software-engineering-architecture/plugin-based-extensibility.md) — Supports a modular architecture that allows external scripts to define and manage diverse language runtimes.
- [Project Configuration](https://awesome-repositories.com/f/software-engineering-architecture/project-configuration.md) — Automatically switches to the correct software versions when entering a project directory based on local configuration files.
- [Language Support Plugins](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures/language-support-plugins.md) — Uses a modular plugin architecture to support various programming languages and software runtimes through a unified interface.

### DevOps & Infrastructure

- [Environment Variable Management](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/environment-management/environment-variable-management.md) — Merges path and variable settings across project, session, and global scopes to ensure correct tool versions are active. ([source](https://github.com/version-fox/vfox/blob/main/AGENTS.md))
