Saturday, October 24, 2026 4,350 lists 78,096 records on file
List your app or device

  1. Home
  2. Runtime Version Managers
  3. GHCup

GHCup

What it is

GHCup is an installer and version manager for Haskell tools. It handles versions of GHC, cabal-install, Haskell Language Server (HLS), and Stack, and Stack can be set up to use GHC versions managed by GHCup. Its listed functionality also includes a terminal user interface and GHC cross-compilation. GHCup is free and open source, with a listed plan at no cost. Installation guidance covers terminal instructions for Linux, macOS, FreeBSD, and WSL2, plus PowerShell instructions for Windows. The project describes Windows support as being in early stages and uses a shim wrapper because Windows does not support symbolic links properly. On macOS, running 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 uses precompiled binaries, so compatibility can depend on distribution support and libraries such as libtinfo. WSL1 and macOS versions before 10.13 are unsupported, while some ARM binaries are experimental.

For and against

For

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

Against

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

The verdict

GHCup brings several Haskell tools under one version-management workflow. Check its platform limits and binary compatibility notes before installation, especially on Windows or ARM systems.

Who it suits

GHCup suits Haskell developers who want to install and manage GHC and related tools across supported systems. It may also fit teams using Stack or CI/CD workflows.

Plans and prices

GHCup

Free

Haskell toolchain installation and management

Every plan, in full

On the record

Binary limitations
GHCup uses precompiled binaries, which can encounter missing libtinfo or other distribution compatibility problems.haskell.org · read 9 Oct 2026
Configuration
GHCup configuration can be placed in ~/.ghcup/config.yaml, and command-line options override configuration file settings.haskell.org · read 9 Oct 2026
Cross compilation
The FAQ lists GHC cross-compilation among GHCup's functionality.haskell.org · read 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 · read 8 Oct 2026
Help
The project directs users to troubleshooting, IRC, Discord, or its bug reporting page for help.haskell.org · read 9 Oct 2026
Installation
The site provides terminal installation instructions for Linux, macOS, FreeBSD, and WSL2, and PowerShell instructions for Windows.haskell.org · read 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 · read 9 Oct 2026
Linux distribution support
The project says it supports GNU/Linux distributions compatible with upstream GHC binaries.haskell.org · read 9 Oct 2026
Maintainer
The team page lists Julian Ospald as GHCup's author and maintainer.haskell.org · read 9 Oct 2026
Managed tools
GHCup supports GHC, cabal-install, Haskell Language Server (HLS), and Stack.haskell.org · read 9 Oct 2026
Purpose
GHCup is the main installer for the general purpose language Haskell.haskell.org · read 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 · read 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 · read 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 · read 9 Oct 2026
Support limits
The site says WSL1 is unsupported and macOS versions earlier than 10.13 are not supported.haskell.org · read 8 Oct 2026
Toolchain
GHCup supports GHC, cabal-install, HLS, and Stack versions.haskell.org · read 8 Oct 2026
User interface
The FAQ lists a TUI among GHCup's functionality.haskell.org · read 8 Oct 2026
Version management
GHCup provides installation and management for versions of GHC, cabal, HLS, and Stack.haskell.org · read 9 Oct 2026

The review

Overview

GHCup is a free installer and version manager for Haskell’s core tools. It is best suited to developers maintaining a Haskell toolchain across supported systems. Its broad tool coverage is useful, though Windows and ARM compatibility caveats deserve attention before setup.

Key features

GHCup manages versions of GHC, cabal-install, Haskell Language Server (HLS), and Stack in one workflow. Stack can use GHC versions installed through GHCup, which helps keep these tools coordinated. Shell integration and CI/CD usage extend that workflow beyond a single local setup.

A text interface and GHC cross-compilation are also part of its functionality. Users can put configuration in ~/.ghcup/config.yaml, with command-line options taking precedence. GHCup does not provide project version pinning or automatic switching, so developers who need each project to select its own toolchain automatically will need another approach.

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

Pricing

GHCup is open source and costs nothing. Its free plan covers Haskell toolchain installation and management, with no trial or paid tier to consider. That makes the full toolset accessible without a subscription, though it does not add project pinning or automatic switching.

Platforms

GHCup supports Linux, macOS, Windows, self-hosted environments, and web. Its Linux support depends on compatibility with upstream GHC binaries, which can run into missing libtinfo or other distribution-specific issues. WSL2 is supported; WSL1 is not. macOS releases earlier than 10.13 are unsupported.

Windows support remains in early stages, and GHCup uses a shim wrapper because Windows does not handle symbolic links properly. On macOS ARM, HLS bindists are experimental; on Linux ARM, Stack and HLS binaries are experimental. These limitations make GHCup a more predictable choice on compatible Linux and macOS setups than on Windows or ARM systems.

Who it's for

GHCup fits Haskell developers who want one free tool to install and manage the principal compiler, build, language-server, and Stack versions, including in CI/CD workflows. It is less suitable for users who depend on automatic per-project version selection or whose system relies on unsupported WSL, older macOS, or experimental ARM binaries.

Pros and cons

  • Pros: Manages GHC, cabal-install, HLS, and Stack together, reducing the number of separate version-management workflows.
  • Pros: Supports shell integration and CI/CD usage, so it can serve both developer machines and build workflows.
  • Pros: Free and open source, with cross-compilation and a text interface among its functionality.
  • Cons: No project version pinning or automatic switching, leaving per-project toolchain selection to other means.
  • Cons: Windows support is early-stage, while several ARM binaries are experimental.
  • Cons: Precompiled binaries can have Linux distribution compatibility problems; Stack setup-info metadata also does not guarantee compatible HLS binaries, and latest or recommended shortcuts do not work with it.

Alternatives

For other free version managers, see Runtime Version Managers and Development Environment Managers. Choose Jabba for Java version management on Linux, macOS, or Windows. rustup is a free option for readers considering another runtime version manager.

axe-playwright is MIT-licensed software with a Playwright peer dependency. PHPBrew manages PHP on Linux, macOS, and self-hosted systems, though building PHP requires development packages and unsupported older versions may fail. asdf is an open-source tool version manager for Linux and macOS. chruby is MIT-licensed and requires bash 3 or later, or zsh. elan manages Lean versions under Apache-2.0 and MIT licenses. fnm is another free option for Linux, macOS, and Windows.

Verdict

Choose GHCup if you work with Haskell and want a free, centralized way to manage its core toolchain, with shell integration and CI/CD support. Its main advantage is the breadth of Haskell tools it handles together; look elsewhere if automatic project-specific switching is essential, or verify platform compatibility carefully before relying on its Windows or experimental ARM support.

Alternatives to GHCup

Every alternative, ranked