Skip to content
SPECIFICTION
Get listed

GHCup

haskell.org

Free plan WebWindowsmacOSLinuxSelf-hosted
Visit haskell.org
Spec score 8.6 #1 of 30 in Runtime Version Managers

What it is

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.

Spec sheet

Purpose
GHCup is the main installer for the general purpose language Haskell.Read 9 Oct 2026 · haskell.org
Platforms
The supported platforms list includes Windows, macOS, FreeBSD, Linux, and Windows WSL2; support varies by tool and architecture.Read 9 Oct 2026 · haskell.org
Security
The installation instructions use HTTPS with TLS 1.2 or later for the Linux, macOS, FreeBSD, and WSL2 bootstrap command.Read 9 Oct 2026 · haskell.org
Binary limitations
GHCup uses precompiled binaries, which can encounter missing libtinfo or other distribution compatibility problems.Read 9 Oct 2026 · haskell.org
Configuration
GHCup configuration can be placed in ~/.ghcup/config.yaml, and command-line options override configuration file settings.Read 9 Oct 2026 · haskell.org
Cross compilation
The FAQ lists GHC cross-compilation among GHCup's functionality.Read 8 Oct 2026 · haskell.org
Experimental support
The site describes HLS bindists on macOS aarch64 as experimental and Stack and HLS binaries on Linux ARM as experimental.Read 8 Oct 2026 · haskell.org
Help
The project directs users to troubleshooting, IRC, Discord, or its bug reporting page for help.Read 9 Oct 2026 · haskell.org
Installation
The site provides terminal installation instructions for Linux, macOS, FreeBSD, and WSL2, and PowerShell instructions for Windows.Read 8 Oct 2026 · haskell.org
Installation requirements
On macOS, running GHCup may prompt the user to install command line tools; on Windows, msys2 should be set up during installation.Read 9 Oct 2026 · haskell.org
Linux distribution support
The project says it supports GNU/Linux distributions compatible with upstream GHC binaries.Read 9 Oct 2026 · haskell.org
Maintainer
The team page lists Julian Ospald as GHCup's author and maintainer.Read 9 Oct 2026 · haskell.org
Managed tools
GHCup supports GHC, cabal-install, Haskell Language Server (HLS), and Stack.Read 9 Oct 2026 · haskell.org
Stack integration
Stack can be configured to use GHC versions installed and managed by GHCup through a hook or the system GHC on PATH.Read 9 Oct 2026 · haskell.org
Stack integration caveat
When Stack setup-info metadata is used, GHCup warns that compatible HLS binaries are not guaranteed and latest or recommended shortcuts do not work.Read 9 Oct 2026 · haskell.org
Support limits
The site says WSL1 is unsupported and macOS versions earlier than 10.13 are not supported.Read 8 Oct 2026 · haskell.org
Toolchain
GHCup supports GHC, cabal-install, HLS, and Stack versions.Read 8 Oct 2026 · haskell.org
User interface
The FAQ lists a TUI among GHCup's functionality.Read 8 Oct 2026 · haskell.org
Version management
GHCup provides installation and management for versions of GHC, cabal, HLS, and Stack.Read 9 Oct 2026 · haskell.org
Windows support
The project describes Windows support as being in early stages and says GHCup uses a shim wrapper because Windows does not support symbolic links properly.Read 9 Oct 2026 · haskell.org

Plans and prices

GHCup Free Haskell toolchain installation and management Read 9 Oct 2026 · haskell.org

Every GHCup plan and price →

Strong points and limits

Strong points

  • Manages GHC, cabal-install, HLS, and Stack versions.
  • Stack can use GHC versions managed by GHCup.
  • Includes a terminal user interface.
  • Lists GHC cross-compilation functionality.
  • Free and open source.

Limits

  • WSL1 is unsupported.
  • macOS earlier than 10.13 is unsupported.
  • Windows support is described as early stage.
  • Some ARM binaries are experimental.

Who it suits

GHCup suits Haskell developers who want to install and manage versions of the core toolchain. Its installation instructions cover Linux, macOS, Windows, FreeBSD, and WSL2, subject to the listed support limits.

GHCup in depth

Read the full write-up

Overview

GHCup installs and manages the main Haskell tools. It is a strong fit for developers who want one version manager for that toolchain, including in CI/CD. Windows, older macOS releases and some ARM binaries need extra care.

Key features

GHCup manages versions of GHC, cabal-install, Haskell Language Server (HLS) and Stack. Stack can use GHC versions installed by GHCup, which helps keep those tools within one managed setup. Shell integration and CI/CD usage are supported, and the FAQ also identifies a text-based interface and GHC cross-compilation.

Configuration can live in ~/.ghcup/config.yaml, with command-line options taking precedence. The notable gap is project-level automation: GHCup does not pin versions by project or switch versions automatically. Developers who need those behaviors should plan to manage selection themselves or choose another approach.

On Linux, GHCup relies on precompiled binaries, so missing libtinfo and other distribution compatibility issues can interrupt setup. Its Linux support is for distributions compatible with upstream GHC binaries. When using Stack setup-info metadata, compatible HLS binaries are not guaranteed, and Stack's latest and recommended shortcuts do not work.

Pricing

GHCup is open source and free. Its sole plan, GHCup, costs nothing and covers Haskell toolchain installation and management. There is no trial or paid tier; there are no seat counts, quotas or renewal terms to weigh. The free plan provides the same focused toolchain management without a paid upgrade path.

Platforms

Installation instructions cover Linux, macOS, FreeBSD and WSL2, with PowerShell instructions for Windows. On Unix-like systems, run the installer as a non-root user; on Windows, use a non-admin account. macOS may prompt for command line tools, and Windows installation should set up msys2.

Windows support is in its early stages. GHCup uses a shim wrapper because Windows does not properly support symbolic links, and WSL1 is unsupported. macOS releases earlier than 10.13 are also unsupported. HLS binaries on macOS aarch64, and Stack and HLS binaries on Linux ARM, are experimental. Those limits make GHCup a less predictable choice on those configurations than on compatible mainstream systems.

Who it's for

GHCup suits Haskell developers who need to install or update the language compiler and its companion tools on a supported system, including users bringing the toolchain into CI/CD. It is less suitable for developers who depend on automatic per-project version changes, Windows users who need mature support, or anyone relying on the unsupported or experimental configurations above.

Pros and cons

Pros: Manages GHC, cabal-install, HLS and Stack together, and lets Stack use GHCup-managed GHC versions.

Pros: Free and open source, with shell integration and CI/CD use supported.

Pros: Offers configuration-file settings, a text-based interface and GHC cross-compilation functionality.

Cons: No project version pinning or automatic switching, so version selection is not handled for each project.

Cons: Windows support remains early-stage, while WSL1 and macOS earlier than 10.13 are unsupported.

Cons: Some ARM binaries are experimental; Linux binary compatibility and Stack's HLS metadata caveat can complicate setup.

Alternatives

For another language-focused version manager, Jabba manages Java versions and supports Linux, macOS and Windows. Choose it for Java rather than Haskell. rustup is the corresponding free option for Rust on those three operating systems.

GVM manages Go versions and supports Linux and macOS; it is a better fit when Go is the target. nvm manages Node.js versions and covers Linux, macOS, self-hosted environments and Windows, making it the relevant alternative for Node.js toolchains. fnm is another free option for version management on Linux, macOS and Windows.

axe-playwright is free and supports Linux and web, with Playwright as a peer dependency. ClearerVoice-Studio and RVM are also listed as free options spanning Linux, macOS, self-hosted, web and Windows; their short descriptions do not give a more specific basis for choosing between them.

For broader browsing, see Runtime Version Managers or Development Environment Managers.

Verdict

Choose GHCup if you want a free, open-source way to manage the main Haskell tools together, particularly on a system compatible with upstream GHC binaries. Its breadth across the core toolchain is the main reason to choose it; the lack of project-level pinning and switching, alongside Windows and ARM caveats, is the reason to look elsewhere when those requirements matter.

Verdict

GHCup provides version management for the main Haskell tools, with installation guidance for several operating systems. Check its platform and binary caveats, particularly for Windows, older macOS releases, and ARM.

Where Specifiction places it

Alternatives to GHCupAll alternatives →