awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
creationix avatar

creationix/nvm

0
View on GitHub↗
93,948 stars·10,242 forks·Shell·MIT·20 views

Nvm

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 through version aliases and default version settings, software management via installation and uninstallation of specific releases, and environment isolation to prevent conflicts between binaries and modules.

The toolset is loaded into the current shell process via the source command to enable the modification of shell state.

Features

  • Node.js Version Managers - Provides a comprehensive system for installing and switching between multiple Node.js runtime versions.
  • Dynamic Script Loading - Loads the manager into the current shell process via sourcing to enable direct modification of shell state.
  • Runtime Version Switching - Toggles between different runtime versions automatically based on directory-level configuration files.
  • Configuration-Based Switching - Read a configuration file in a directory to switch to the required runtime version when entering that folder.
  • Shell Environment Managers - Dynamically updates the shell PATH environment variable to swap active runtime versions.
  • Version Selection Interfaces - Reads project-root configuration files to automatically select and install the required runtime version.
  • Directory-Based Environment Switching - Automatically switches the Node.js runtime when entering a project directory based on a local configuration file.
  • Multi-Version Installations - Downloads and installs multiple specific versions of the Node.js runtime environment.
  • Directory-Based Version Resolution - Automatically switches the active Node.js version by detecting configuration files in the current working directory.
  • Isolated Runtime Directories - Isolates different runtime versions in distinct filesystem directories to prevent binary and module conflicts.
  • Package Migrators - Automates the migration of global packages from one installed runtime version to another.
  • Runtime Version Mappings - Provides a mechanism to map human-readable aliases to specific runtime versions for consistent environment switching.
  • Version Aliases - Allows creating custom aliases (like 'lts/iron') to simplify referencing specific runtime versions.
  • Runtime Version Removal - Provides functionality to uninstall specific Node.js versions to reclaim disk space.
  • Remote Version Discovery - Displays a list of Node.js versions currently installed locally or available for download from remote sources.
  • Release Track Management - Organizes and tracks long-term support (LTS) release lines to ensure environment stability.
  • POSIX Shell Utilities - Implemented as a lightweight POSIX bash script to ensure compatibility and avoid external binary dependencies.
  • Per-Command Version Runtimes - Provides the ability to run a command using a specific Node.js version without permanently switching the active runtime.
  • Runtime Isolation - Ensures that different Node.js versions and their global packages remain isolated in distinct filesystem directories.
  • Default Version Settings - Allows users to define a global default Node.js version that persists across new terminal sessions.
  • Version Migrations - Installs new runtime versions while automatically migrating global packages from a previous installation.
  • Development Environment - Node version manager for macOS and Linux.

Star history

Star history chart for creationix/nvmStar history chart for creationix/nvm

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

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

Start searching with AI

Projects sharing features with Nvm

These projects share indexed features with Nvm. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • rbenv/rbenvrbenv avatar

    rbenv/rbenv

    16,710View on GitHub↗

    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

    Shellbashrubyruby-installation
    View on GitHub↗16,710
  • moovweb/gvmmoovweb avatar

    moovweb/gvm

    11,645View on GitHub↗

    Gvm is a Go version manager, environment orchestrator, and dependency isolator. It provides a system for installing, removing, and switching between different versions of the Go programming language on a single machine. The tool manages native dependencies and creates isolated package sets to prevent version conflicts between different project environments. It uses environment variable overlays and directory isolation to link native code without modifying the host operating system. The software covers the full language lifecycle, including remote version cataloging, active version switching,

    Shelldependency-managergolang
    View on GitHub↗11,645
  • tj/ntj avatar

    tj/n

    19,515View on GitHub↗

    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

    Shell
    View on GitHub↗19,515
  • pyenv-win/pyenv-winpyenv-win avatar

    pyenv-win/pyenv-win

    7,006View on GitHub↗

    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

    VBScriptpyenvpyenv-alternativepyenv-for-windows
    View on GitHub↗7,006
Compare all 30 related projects→

Frequently asked questions

What does creationix/nvm do?

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.

What are the main features of creationix/nvm?

The main features of creationix/nvm are: Node.js Version Managers, Dynamic Script Loading, Runtime Version Switching, Configuration-Based Switching, Shell Environment Managers, Version Selection Interfaces, Directory-Based Environment Switching, Multi-Version Installations.

Which projects share features with creationix/nvm?

Projects with overlapping indexed features include: rbenv/rbenv — rbenv is a Ruby version manager and shell environment manager designed to install, switch between, and manage multiple… moovweb/gvm — Gvm is a Go version manager, environment orchestrator, and dependency isolator. It provides a system for installing,… tj/n — n is a command line version manager and binary manager for the Node.js runtime environment. It functions as a runtime… sstephenson/rbenv — rbenv is a Ruby version manager and shell shim environment manager. It allows for the installation of multiple Ruby… pyenv-win/pyenv-win — pyenv-win is a version manager for Windows that enables the installation and switching of multiple Python versions… version-fox/vfox — Vfox is a command-line utility designed to manage multiple programming language runtimes and development tools on a…