FREEDOM251

Freedom251 › Runtime Version Managers

GHCup

Free plan LinuxMacSelf-hostedWebWindows

Visit GHCup Alternatives Pricing

GHCup's own site

What GHCup is

GHCup is a free, open-source installer and version manager for the Haskell toolchain. It manages versions of GHC, cabal-install, Haskell Language Server (HLS), and Stack; Stack can be set up to use GHC versions installed through GHCup. Listed functionality also includes a terminal user interface and GHC cross-compilation. Installation guidance covers terminal commands for Linux, macOS, FreeBSD, and WSL2, as well as PowerShell instructions for Windows. On Unix-like systems, the project instructs users to run the installer as a non-root user; on Windows, use a non-admin account. macOS may prompt for command line tools, and Windows setup includes msys2. GHCup configuration can be stored in ~/.ghcup/config.yaml, while command-line options override file settings. GHCup uses precompiled binaries, so compatibility can depend on the Linux distribution and available libraries such as libtinfo. The project describes Windows support as early stage. WSL1 and macOS versions before 10.13 are unsupported, while HLS bindists on macOS aarch64 and Stack and HLS binaries on Linux ARM are experimental. Help options include troubleshooting, IRC, Discord, and bug reporting.

Who it suits

GHCup suits Haskell users who want to install and manage versions of the main toolchain components. It also supports those using Stack or GHC cross-compilation.

What it does well

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

What to know first

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

Limits

WSL1 and macOS versions earlier than 10.13 are unsupported. HLS bindists on macOS aarch64, and Stack and HLS binaries on Linux ARM, are experimental.

Plans

PlanBilled and limitsPrice
GHCupHaskell toolchain installation and managementFree

As haskell.org lists them, read 9 Oct 2026. The maker's own page has the final word.

Getting started

  1. Visit the GHCup website and choose the installation instructions for your system.
  2. On Linux, macOS, FreeBSD, or WSL2, follow the terminal instructions; use PowerShell instructions on Windows.
  3. Run the installer as a non-root user on Unix-like systems or a non-admin user on Windows.
  4. On macOS, install command line tools if prompted; on Windows, set up msys2 during installation.
  5. Use GHCup to install and manage versions of GHC, cabal-install, HLS, and Stack.

GHCup is a free installer and version manager for Haskell’s core tools. It is best for developers who want to manage GHC, cabal-install, HLS and Stack across their development environments. Its narrow focus is a strength, but the lack of automatic project switching and the caveats around Windows and ARM make it a less complete fit for some setups.

Overview

GHCup brings several central parts of a Haskell toolchain under one manager, rather than asking developers to handle each tool’s versions separately. That focus makes it a practical choice for Haskell work; it is not a general project environment manager, and it does not pin tool versions to individual projects or switch them automatically.

Key features

GHCup installs and manages GHC, cabal-install, Haskell Language Server (HLS) and Stack. Stack can be configured to use GHC versions managed by GHCup, which helps keep those parts of a setup aligned. Shell integration and CI/CD use are supported, while the FAQ also identifies a text interface and GHC cross-compilation. Configuration can be stored in ~/.ghcup/config.yaml; command-line options override its settings.

The missing project pinning and automatic switching matter for developers who expect each repository to select its own compiler and tools. GHCup can manage versions, but that alone does not provide that per-project workflow. There is also an HLS caveat when Stack setup-info metadata is used: compatible HLS binaries are not guaranteed, and the latest and recommended shortcuts do not work.

Pricing

GHCup costs nothing. Its free plan covers Haskell toolchain installation and management, and the project is open source. There is no paid tier or trial to weigh; its cost advantage comes with a focused scope rather than a broader set of environment-management features.

Platforms

Installation instructions cover Linux, macOS, FreeBSD, WSL2 and Windows, but support is not uniform. WSL1 is unsupported, and macOS releases earlier than 10.13 are outside the supported range. On Unix-like systems, the installer should be run 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 described as being in early stages, with a shim wrapper used because Windows does not handle symbolic links properly. GHCup relies on precompiled binaries, which can fail when a system lacks libtinfo or has other distribution compatibility problems. Linux support is for distributions compatible with upstream GHC binaries. HLS bindists on macOS aarch64 and Stack and HLS binaries on Linux ARM are experimental, so those environments carry extra uncertainty.

Who it's for

GHCup suits Haskell developers who want a free, dedicated way to install and manage the language’s main compiler and supporting tools, including in CI/CD workflows. It is a stronger fit for users whose systems match the supported binary environments and who are comfortable managing versions without automatic project-level selection. Those needing WSL1 support, older macOS compatibility, or mature Windows and ARM binary support should consider their environment carefully.

Pros and cons

  • Pros: One manager handles GHC, cabal-install, HLS and Stack, reducing the need to manage these core Haskell tools separately.
  • Pros: Free, open-source use includes shell integration and CI/CD support.
  • Pros: Stack can use GHCup-managed GHC versions, and the tool also supports a text interface and GHC cross-compilation.
  • Cons: No project version pinning or automatic switching means versions are not selected per project by GHCup.
  • Cons: Experimental ARM and macOS aarch64 binaries, early-stage Windows support and binary compatibility issues can complicate installation on some systems.
  • Cons: Stack setup-info metadata does not guarantee compatible HLS binaries, and disables the latest and recommended shortcuts.

Alternatives

For a broader development-environment manager, compare Development Environment Managers; for tools centered on managing runtime versions, see Runtime Version Managers.

ActiveState Platform has a free organization plan limited to public projects and a paid enterprise option with custom pricing; choose it if those organization-focused terms suit your work. devenv is a free, MIT-licensed option that requires Nix and works on Linux, macOS and WSL, making it relevant if you want a Nix-based setup. Flox offers a free Personal plan with its CLI, catalog access, unlimited public environments and three private environments; consider it if those environment features suit your needs.

frum is a free Ruby version manager, while FVM is a free open-source Flutter SDK version manager. Jabba is a free Java version management tool under Apache License 2.0, and vfox is free and Apache 2.0 licensed. DDEV is free and open source under Apache 2.0.

Verdict

Choose GHCup if you need a free, focused manager for Haskell’s core toolchain and your platform fits its binary support. The key reason to choose something else is the lack of automatic project-specific version selection; Windows and experimental ARM support are further reasons to check fit before committing.

Verdict

GHCup brings installation and version management for several core Haskell tools into one utility. Users should check its stated platform limits and experimental binary support before choosing an environment.

Questions

How much does GHCup cost?

GHCup is free, with a plan priced at $0.

What tools can GHCup manage?

It installs and manages versions of GHC, cabal-install, HLS, and Stack. Stack can be configured to use GHC versions managed by GHCup.

Which systems have installation instructions?

Instructions cover Linux, macOS, FreeBSD, and WSL2 through the terminal, and Windows through PowerShell. WSL1 is unsupported.

Is GHCup open source?

Yes. GHCup is listed as open source.

Are there operating system or binary limitations?

macOS versions earlier than 10.13 are unsupported, and Windows support is described as early stage. Some ARM binaries are experimental, and precompiled binaries can encounter compatibility problems.

Where can I get help?

The GHCup homepage directs users to troubleshooting, IRC, Discord, or bug reporting for help.

Facts from GHCup's own pages

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

Where GHCup stands on Freedom251

Look at these too