Skip to content
SPECIFICTION
Get listed

GHCup vs nvm

GHCup

haskell.org

nvm

github.com

Side by side

FigureGHCupnvm
Price fromFreeFree
Free planYesYes
Free trial——
Open source—Yes
WebYes—
WindowsYesYes
macOSYesYes
LinuxYesYes
Self-hostedYesYes
Plans published12
Spec score · Runtime Version Managers8.6 (#1)8.5 (#4)
Spec score · Development Environment Managers8.5 (#7)8.4 (#10)
PurposeGHCup is the main installer for the general purpose language Haskell.nvm lets users install and use different Node.js versions from the command line.
SecurityThe installation instructions use HTTPS with TLS 1.2 or later for the Linux, macOS, FreeBSD, and WSL2 bootstrap command.The GitHub repository links to a security policy, but the README does not state a security certification or compliance standard.
Version managementGHCup provides installation and management for versions of GHC, cabal, HLS, and Stack.Users can install specific Node.js versions, switch between them, and set aliases such as a default version.
Windows supportThe project describes Windows support as being in early stages and says GHCup uses a shim wrapper because Windows does not support symbolic links properly.The original project targets Unix-like systems and Windows WSL; native Windows users are directed to the separate nvm-windows project.

Plans

GHCup

  • GHCupFree

GHCup pricing →

nvm

  • nvmFree
  • nvmFree

nvm pricing →

In their own words

GHCup

GHCup is a free, open-source installer and version manager for the Haskell toolchain. It installs and manages GHC, cabal-install, Haskell Language Server (HLS), and Stack versions; Stack can also be configured to use GHC versions managed by GHCup. Listed functionality includes a terminal user interface and GHC cross-compilation. Installation guidance covers terminal commands for Linux, macOS, FreeBSD, and WSL2, alongside PowerShell instructions for Windows. The project describes Windows support as being in an early stage and uses a shim wrapper because Windows does not properly support symbolic links. On macOS, GHCup may prompt for command line tools; Windows setup includes msys2. The installer should be run as a non-root user on Unix-like systems and a non-admin user on Windows. GHCup relies on precompiled binaries, so compatibility can depend on the distribution and libraries such as libtinfo. WSL1 and macOS versions earlier than 10.13 are unsupported. Some ARM binaries are experimental: Stack and HLS on Linux ARM, and HLS bindists on macOS aarch64. Configuration can be stored in ~/.ghcup/config.yaml, with command-line options taking precedence.

Visit haskell.org

nvm

nvm is a free, MIT-licensed command-line tool for installing and managing Node.js versions. It is designed for installation per user and invocation per shell, and works in POSIX-compliant shells including sh, dash, ksh, zsh, and bash. Users can install specific versions, switch between them, set aliases such as a default, and use LTS aliases and commands to select long-term support versions. A project can specify its Node.js version in an.nvmrc file; documented shell snippets can support automatic switching. During installation, nvm can reinstall global npm packages from another installed Node.js version. With the --offline flag, it can install a version that was previously downloaded or cached without network access. The project documents use in Docker, including an example for CI/CD jobs. On Windows, nvm can work through WSL and may work with Git Bash or Cygwin depending on the environment. Fish shell is not supported, and the project points users to community alternatives. The project states that only the latest nvm version is supported.

Visit github.com