For a tool for managing project development environments, the strongest matches are asdf-vm/asdf (asdf is a plugin-driven command-line version manager that supports), sdkman/sdkman-cli (SDKMAN is a version manager for JVM-based languages and) and nvm-sh/nvm (nvm is a command-line version manager specifically for Node). jenv/jenv and tj/n round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Finde die besten Umgebungen zur Versionsisolierung für deine Projekte. Vergleiche die Top-Tools nach Aktivität und Stars, um die beste Lösung für deinen Stack zu finden.
This project is a command-line tool designed to manage multiple versions of programming language runtimes and development tools on a single machine. It provides a unified interface for installing and switching between different versions of software, ensuring that specific tool versions are consistently applied across various development environments. The system distinguishes itself through a modular, plugin-driven architecture that allows for the integration of new languages and tools via external scripts. It utilizes a shim-based execution mechanism that intercepts command calls, automatical
asdf is a plugin-driven command-line version manager that supports many languages through external plugins, provides isolated per-project versioning, and offers both global and local overrides, making it a comprehensive fit for installing, managing, and switching between multiple language runtimes.
SDKMAN is a command-line utility for installing, tracking, and managing multiple versions of software development kits on Unix systems. It functions as a software installer and environment manager that automates the downloading and configuration of development tools for Linux and macOS. The tool enables the installation of parallel SDK versions on a single system and provides the capability to toggle between them to change the active environment for a shell session. It specifically facilitates the setup of Java development environments, including the management of various Java Development Kit
SDKMAN is a version manager for JVM-based languages and tools (Java, Kotlin, Scala, etc.) that handles installation, switching, and isolation via its CLI and project-level config, so it fits the general intent but is limited to the Java ecosystem rather than covering all programming languages broadly.
This project is a command-line tool designed for managing multiple runtime versions on a local machine. It functions as a shell-based environment manager that enables users to install, switch between, and maintain different versions of a runtime to support project-specific requirements or diverse shell sessions. By dynamically updating system paths and environment variables, it provides a consistent interface for runtime version control across various Unix-like operating systems. The tool distinguishes itself through its portable, POSIX-compliant shell implementation, which ensures reliable e
nvm is a command-line version manager specifically for Node.js, offering full version switching, isolation, and per-project configuration, but it only handles a single language, so it lacks the multi-language support this search requires.
Manage your Java environment
jenv/jenv manages multiple isolated Java versions with CLI commands for switching per directory/file and supports global overrides, squarely behaving as a version manager for one language; while it lacks multi-language support, its identity fits the requested tool type for Environments needing Java version isolation and switching alone.
n is a command line version manager and binary manager for the Node.js runtime environment. It functions as a runtime environment switcher, allowing for the installation and management of multiple Node.js versions to maintain compatibility across different projects. The tool orchestrates the downloading and caching of Node.js binaries from official or custom distribution mirrors. It enables switching between installed versions via a command line interface or interactive menu, providing the ability to execute scripts using specific versions from a local cache without performing a full system i
n is a command-line version manager for Node.js, supporting multiple isolated versions, easy switching, and project-specific settings, but it manages only one runtime rather than multiple languages.
nvm is a Node.js version manager implemented as a POSIX bash script. It serves as a shell environment manager and runtime orchestrator for installing, switching, and managing multiple versions of the Node.js runtime on POSIX systems. The tool allows for the automation of runtime switching by reading configuration files in project directories to select the required version. It supports the management of long-term support releases and the migration of global packages between different installed versions of the runtime. The project covers broader capabilities including runtime management throug
nvm is a dedicated Node.js version manager that delivers version switching, isolated environments, per-project version resolution, and CLI management — but it only handles Node.js, not the multiple programming languages your search specifies.
pyenv is a Python version manager and runtime orchestrator that allows for the installation and switching of multiple Python versions on a single machine without affecting the system installation. It functions as a shell-based version controller that manages binaries through shims to redirect executable calls to specific versions. The tool is a plugin-extensible system, allowing users to add custom subcommands and logic via shell script plugins. This architecture enables the extension of the command line interface through a dedicated plugins directory. It provides capabilities for side-by-si
pyenv is a dedicated Python version manager that installs and switches isolated Python versions via shell shims and per-project assignments, but it only supports Python rather than multiple languages as this search requests.
rbenv is a Ruby version manager and shell environment manager designed to install, switch between, and manage multiple versions of the Ruby programming language. It functions as a project runtime isolator and an extensible versioning framework that ensures the correct Ruby binaries are executed based on the current context. The system uses a shim-based command interception model to resolve the active version before delegating execution to the binary. It allows for locking specific Ruby versions and environment variables to individual directories, ensuring project environment isolation. The ar
rbenv is a focused Ruby version manager that offers isolated environments, per-project version locking, and CLI switching, but it only supports Ruby, so it lacks the multi-language scope the visitor requested.
Mise is a development environment orchestrator that manages software runtimes, environment variables, and task execution. It functions as a version manager and task runner, providing a unified interface to synchronize project-specific configurations and dependencies across different machines. By automating the installation and switching of tools, it ensures that development environments remain consistent and reproducible. The project distinguishes itself through a hierarchical configuration system that automatically discovers settings by traversing the directory tree. It uses shim-based comma
Mise is a version manager and development environment orchestrator that installs and switches between multiple isolated runtimes per project, with a CLI, shim-based version selection, and global/local overrides — exactly what you need for managing multiple language versions on one system.
pyenv-win is a version manager for Windows that enables the installation and switching of multiple Python versions without affecting the system global installation. It functions as a multi-version installer and environment controller that ensures isolation and reproducibility across different projects. The tool uses a shim-based routing system to intercept executable calls and direct them to specific versioned binaries. This allows for both system-wide default configurations and local directory-level overrides, where a specific version is automatically activated when entering a project folder
pyenv-win is a Python-specific version manager for Windows that provides isolated environments, automatic per-project version selection, and both global and local overrides via shims, but it only supports a single language rather than the multiple-language management the visitor asked for.
Phpbrew is a PHP version manager and build tool used to compile and manage multiple versions of PHP from source within a local user directory. It provides a self-contained development environment that allows for installing and switching between different language versions without requiring root access. The system distinguishes itself by using a variant-driven build configuration, allowing users to compile binaries with specific feature sets, flags, and custom configuration options. It also functions as an extension manager that downloads, compiles, and activates third-party extensions from re
Phpbrew is a dedicated PHP version manager that handles building, switching, and isolating multiple PHP versions from source, but it only supports a single language rather than the multiple languages you’re looking for.
rustup is a programming language toolchain manager that automates the installation, versioning, and configuration of the Rust compiler and its associated build tools. It serves as a toolchain installer and version manager, enabling the deployment of the language ecosystem across different operating systems. The system manages multiple compiler versions across stable, beta, and nightly release channels, allowing users to switch between these versions to meet different environment requirements. It also functions as a cross-compilation manager by installing pre-compiled standard libraries to bui
rustup is a dedicated version manager for the Rust language, handling installation, switching, and isolation of compiler versions with a CLI and per-project overrides — it squarely meets the core need but is limited to a single language rather than the multi-language scope you may be looking for.
Volta is a cross-platform toolchain orchestrator and JavaScript toolchain manager. It functions as a version manager for Node.js and related package managers, allowing for the installation and coordination of multiple runtimes across a system. The project operates as a project-based version switcher, automatically detecting and switching to the required tool versions based on the current directory. This ensures environment consistency across different developer machines by resolving versions through project configuration.
Volta is a version manager for Node.js and JavaScript toolchains, providing automatic per-project version switching, isolated environments, and a command-line interface—but it focuses solely on JavaScript-related runtimes, not multiple distinct programming languages.
RVM is a Ruby version manager and build automation tool designed to install and switch between multiple versions of the Ruby interpreter on a single system. It serves as a dependency isolator and shell environment wrapper, allowing for the creation of named library sets to prevent version conflicts between different projects. The project distinguishes itself as a deployment orchestrator that automates the provisioning of Ruby runtimes across remote servers and build agents. It generates standalone executable wrappers to ensure specific runtimes and library sets are loaded for scheduled tasks,
RVM is a specialized Ruby version manager that handles installation, switching, and environment isolation for Ruby runtimes, so it fits the category of a programming language version manager, though it covers only Ruby rather than multiple languages as your search requests.
This project is a command-line tool designed to manage multiple isolated language runtime versions on a single development machine. It enables users to install, switch between, and maintain different runtime versions, ensuring that project-specific requirements are met without conflicting with system-wide software. The tool distinguishes itself through a shim-based execution environment that intercepts system calls and dynamically routes them to the correct runtime version based on the current directory. By traversing the file system hierarchy to locate configuration files, it automatically a
pyenv is a dedicated version manager for Python, providing isolated environments and automatic per-project version switching—exactly the right kind of tool, though limited to a single language.
pkgx is a cross-platform tool orchestrator and portable package runner that enables the execution of specific software versions without requiring permanent installation on the host system. It functions as a multi-ecosystem package wrapper, providing a unified interface to launch tools and managers from various language ecosystems. The project serves as an ephemeral environment provider and script dependency manager, allowing users to declare and automatically inject required software versions into scripts via a shebang line. This allows for the bootstrapping of temporary shells and containers
pkgx lets you run specific versions of tools and languages ephemerally without permanent installation, supporting multiple ecosystems and per‑project version selection via shebang, making it a version manager that fits your request despite its unique stateless approach.
Manage your app's Node.js environment
nodenv is a version manager specifically for Node.js, so it fits the category of programming language version manager but only supports a single runtime rather than the multiple languages your search requires.
This project is a command-line utility designed to manage development environments by installing, switching, and pinning multiple versions of programming languages, SDKs, runtimes, and database engines. It functions as a centralized controller for complex toolchains, ensuring that specific software versions are maintained consistently across different machines and project directories. The tool distinguishes itself through an interactive terminal interface that allows users to browse and select software versions visually, reducing the need to memorize complex command-line arguments. It also pr
gvcgo/version-manager is a general version manager that handles thousands of SDKs via a TUI and CLI, covering the core needs of installing, switching, and managing multiple isolated versions across platforms.
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 injecti
vfox is a cross-platform, extendable version manager that handles multiple languages like Java, Node.js, Go, and Python, fitting the need for installing, managing, and switching between isolated language versions via the command line.
Pixi is a conda environment manager that creates reproducible, lock-file-backed environments with cross-platform support and multi-language dependency resolution. It combines package management from both conda-forge and PyPI simultaneously, coordinating their dependency graphs to prevent conflicts, while pinning every transitive dependency to exact versions in a cross-platform lock file for bit-for-bit identical environments across machines. The project distinguishes itself by also functioning as a cross-platform task runner that executes user-defined commands and multi-step pipelines inside
Pixi lets you create isolated conda environments with different language runtimes (e.g., Python, R) and switch between them via CLI, which matches the core need for installing and managing multiple language versions — though it operates as a broader environment/package manager rather than a narrow runtime version switcher like nvm or pyenv.
| Repository | Stars | Sprache | Lizenz | Letzter Push |
|---|---|---|---|---|
| asdf-vm/asdf | 25.1K | Go | mit | |
| sdkman/sdkman-cli | 6.8K | Shell | Apache-2.0 | |
| nvm-sh/nvm | 93.8K | Shell | MIT | |
| jenv/jenv | 6.6K | Shell | MIT | |
| tj/n | 19.5K | Shell | MIT | |
| creationix/nvm | 93.9K | Shell | MIT | |
| yyuu/pyenv | 44.9K | Shell | MIT | |
| rbenv/rbenv | 16.7K | Shell | MIT | |
| jdx/mise | 29.9K | Rust | MIT | |
| pyenv-win/pyenv-win | 7K | VBScript | mit |