awesome-repositories.comBlog
© 2026 Bringes Technology SRL·VAT RO45896025·hello@bringes.io
MCPBlogSitemapPrivacyTerms
Nvm | Awesome Repository
← All repositories

nvm-sh/nvm

0
View on GitHub↗
91,751 stars·9,884 forks·Shell·mit·4 views

Nvm

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Let's find more awesome repositories

Features

  • Path-Based Version Switchers - Swaps active runtime binaries by dynamically modifying the system PATH variable to target version-specific directories.
  • Shell-Based - Integrates directly into POSIX shell sessions to facilitate the installation and active management of various runtime versions.
  • Symlink-Based Version Switching - Updates symbolic links to point to specific runtime directories, enabling seamless switching between multiple installed versions.
  • Cross-Shell Managers - Maintains consistent runtime version control across a wide range of shell types and operating system configurations.
  • Runtime Version Managers - Enforces consistent runtime versions by configuring necessary environment variables and directory structures on local machines.
  • Version Managers - Downloads runtime binaries and updates shell profiles to ensure persistent access to multiple software versions.
  • Shell Initialization Managers - Injects management logic into startup files to intercept commands and dynamically adjust environment variables.
  • Lazy-Loading Mechanisms - Defers the initialization of management logic until a version-specific command is explicitly invoked to improve shell startup performance.
  • POSIX-Compliant Shell Scripts - Utilizes strictly portable shell syntax to ensure reliable execution and environment management across Unix-like systems.
  • Runtime Execution Wrappers - Wraps command execution to ensure operations run within the context of a specific, selected runtime version.
  • Environment Consistency Tools - Standardizes development environments by ensuring all team members utilize identical runtime versions and configuration settings.
  • Cross-Version Testing - Facilitates testing applications against multiple runtime versions to verify compatibility and behavior across different release cycles.
  • Shell Environment Configurations - Orchestrates shell-level paths and environment variables to ensure runtime binaries remain accessible across distinct terminal sessions.
  • Development Environment Configurations - Supports flexible deployment via shell scripts, allowing for manual, git-based, or containerized environment setup.
  • Shell Completions - Activates tab completion for shell sessions to simplify the discovery and execution of version management commands.
  • Version Manager Updaters - Automates the update process to ensure the management tool remains current with the latest features and security patches.
  • Containerized Version Managers - Encapsulates runtime management within container images to provide consistent environments across development and production.
  • Package Manager Configurations - Configures registry URLs and environment-specific variables to streamline package installation and dependency resolution.
  • Pre-release Runtime Installers - Facilitates the discovery and installation of nightly or beta runtime builds to enable testing of pre-release software features.
  • Environment Variable Managers - Sets environment variables to define paths, mirrors, and default configurations for runtime management.
  • Environment Variables - Controls runtime behavior by managing persistent shell variables that define the active execution context.
  • Test Version Managers - Executes automated test suites to verify the functional integrity of version management logic across diverse environments.
  • 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 execution across a wide range of shell environments. It utilizes lazy-loading function aliasing to defer the execution of management logic until a command is actually invoked, minimizing overhead during shell startup. Furthermore, it employs directory-symlink-based switching and persistent environment variable configuration to maintain a stable and predictable execution context for developers.

    Beyond core version switching, the project supports a broad range of environment configuration capabilities. It facilitates the installation of pre-release and nightly builds, provides command-line tab completion for improved usability, and includes automated mechanisms for updating the manager itself. The system is designed to enforce environment consistency across development teams, allowing for standardized runtime configurations and simplified cross-version development workflows.

    Installation is performed via shell scripts, which integrate the manager into the user's shell profile to ensure persistent access to versioning commands across terminal sessions.