GHCup
GHCup is an installer and version manager for the Haskell toolchain.
What GHCup is
GHCup is an installer and version manager for the Haskell toolchain. It installs and manages GHC, cabal-install, Haskell Language Server (HLS), and Stack, and Stack can be configured to use GHC versions managed by GHCup. The FAQ also lists a terminal interface and GHC cross-compilation among its capabilities. It is free and open source, with shell integration and CI/CD use supported. Installation guidance covers Linux, macOS, FreeBSD, and WSL2 using terminal instructions, plus PowerShell for Windows. 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 Linux distribution and library compatibility can affect operation. WSL1 and macOS releases earlier than 10.13 are unsupported; some ARM binaries are experimental. Windows support is described as being in its early stages. macOS may prompt for command line tools, while Windows setup includes msys2.
Good
- Manages GHC, cabal-install, HLS, and Stack versions.
- Stack can use GHCup-managed GHC versions.
- Includes shell integration and a terminal interface.
- Free and open source.
Watch out
- WSL1 is unsupported.
- macOS versions before 10.13 are unsupported.
- Some ARM binaries are experimental.
- Windows support is in early stages.
Who it suits
GHCup suits Haskell developers who want to install and manage GHC and related tools across supported systems. It can also suit teams using Stack or CI/CD workflows.
Verdict
GHCup brings several Haskell tools under one installer and version manager. Check its operating-system limits and binary compatibility before choosing it for a particular environment.
Plans and prices
From GHCup's own pricing page, checked 9 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| GHCup | Free | Haskell toolchain installation and management |
The facts
Each one read from GHCup's own pages, with the date it was checked.
What it does
- Binary limitations
- GHCup uses precompiled binaries, which can encounter missing libtinfo or other distribution compatibility problems.checked 9 Oct 2026
- Configuration
- GHCup configuration can be placed in ~/.ghcup/config.yaml, and command-line options override configuration file settings.checked 9 Oct 2026
- Cross compilation
- The FAQ lists GHC cross-compilation among GHCup's functionality.checked 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.checked 8 Oct 2026
- Help
- The project directs users to troubleshooting, IRC, Discord, or its bug reporting page for help.checked 9 Oct 2026
- Installation
- The site provides terminal installation instructions for Linux, macOS, FreeBSD, and WSL2, and PowerShell instructions for Windows.checked 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.checked 9 Oct 2026
- Maintainer
- The team page lists Julian Ospald as GHCup's author and maintainer.checked 9 Oct 2026
- Managed tools
- GHCup supports GHC, cabal-install, Haskell Language Server (HLS), and Stack.checked 9 Oct 2026
- Purpose
- GHCup is the main installer for the general purpose language Haskell.checked 9 Oct 2026
- Security
- The installation instructions use HTTPS with TLS 1.2 or later for the Linux, macOS, FreeBSD, and WSL2 bootstrap command.checked 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.checked 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.checked 9 Oct 2026
- Support limits
- The site says WSL1 is unsupported and macOS versions earlier than 10.13 are not supported.checked 8 Oct 2026
- Toolchain
- GHCup supports GHC, cabal-install, HLS, and Stack versions.checked 8 Oct 2026
- User interface
- The FAQ lists a TUI among GHCup's functionality.checked 8 Oct 2026
- Version management
- GHCup provides installation and management for versions of GHC, cabal, HLS, and Stack.checked 9 Oct 2026
Where it runs
- Linux distribution support
- The project says it supports GNU/Linux distributions compatible with upstream GHC binaries.checked 9 Oct 2026
- Platforms
- The supported platforms list includes Windows, macOS, FreeBSD, Linux, and Windows WSL2; support varies by tool and architecture.checked 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.checked 9 Oct 2026
The full review of GHCup
Overview
GHCup is a free installer and version manager for Haskell’s core toolchain. It is best suited to developers who need to install or maintain GHC, cabal-install, HLS and Stack across supported environments. Its focused scope is useful, but its Windows and ARM caveats matter when choosing a tool for a specific machine.
Key features
GHCup installs and manages versions of GHC, cabal-install, Haskell Language Server (HLS) and Stack, bringing the main Haskell components together in one tool. Stack can be configured to use GHCup-managed GHC versions, which is useful for developers who want Stack in the same managed toolchain. Shell integration and CI/CD usage are supported, but there is no project version pinning or automatic switching; teams seeking per-project version selection should look elsewhere or account for that gap.
The FAQ also identifies a text-based user interface and GHC cross-compilation among GHCup’s functionality. Its configuration can be stored in ~/.ghcup/config.yaml, while command-line options take precedence. These options give users ways to manage setup, but do not fill the missing automatic project-level switching.
Pricing
GHCup is open source and costs nothing. The free plan covers Haskell toolchain installation and management, with no trial required. There are no paid tiers, seat limits or plan quotas to weigh against a cheaper option.
Platforms
Installation instructions cover Linux, macOS, FreeBSD and WSL2 through terminal commands, plus Windows through PowerShell. On Unix-like systems, the installer should be run as a non-root user; on Windows, use a non-admin account. macOS setup may prompt for command line tools, and Windows installation should set up msys2.
There are real compatibility boundaries. WSL1 and macOS versions earlier than 10.13 are unsupported. Windows support is described as early-stage, and GHCup uses a shim wrapper because Windows does not properly support symbolic links. The project supports GNU/Linux distributions compatible with upstream GHC binaries, but precompiled binaries can fail on distribution-specific dependencies such as libtinfo. HLS bindists on macOS aarch64 and Stack and HLS binaries on Linux ARM are experimental, so those environments are a less dependable fit.
Stack setup-info metadata brings a further HLS caveat: compatible HLS binaries are not guaranteed, and the latest or recommended shortcuts do not work in that configuration.
Who it's for
GHCup is a strong fit for Haskell developers who want one free utility to install and manage the main toolchain, including in shell-based workflows and CI/CD. It is less suitable when a project requires automatic per-project version changes, or when Windows, ARM, or a Linux distribution’s binary compatibility is central to the environment.
Pros and cons
- Pros: One tool manages GHC, cabal-install, HLS and Stack, and Stack can use GHCup-managed GHC versions.
- Pros: Free and open source, with shell integration, CI/CD use, a text interface and cross-compilation functionality.
- Cons: No project version pinning or automatic switching, limiting hands-off per-project toolchain selection.
- Cons: Early-stage Windows support, unsupported WSL1, and experimental binaries for some ARM and macOS aarch64 use cases narrow the dependable platform range.
- Cons: Precompiled binaries may encounter distribution compatibility problems, including missing libtinfo.
Alternatives
For broader development-environment management, browse Development Environment Managers or Runtime Version Managers. ActiveState Platform is another option if a freemium platform with public projects on its free organization plan and a free trial suits your needs. Choose devenv if you want a free, MIT-licensed option and are prepared to use Nix. FVM is a free open-source Flutter SDK version manager, while frum focuses on Ruby version management.
Flox offers a freemium personal plan with its CLI, catalog access and public and private FloxHub environments. Nix is a free open-source package manager, and nvm is a free open-source Node.js version manager. PortBay has a free Community plan for users who need its project and sandbox allowances.
Verdict
Choose GHCup if you want a free, Haskell-focused manager for installing and maintaining the core toolchain, with shell integration and CI/CD support. Its main advantage is keeping GHC and the surrounding Haskell tools in one place; look elsewhere if automatic project-level switching is essential or your environment depends on its less mature Windows and experimental ARM support.
Getting started
- Visit https://www.haskell.org/ghcup/ and choose the instructions for your system.
- On Linux, macOS, FreeBSD, or WSL2, follow the terminal installation instructions; on Windows, use the PowerShell instructions.
- Run the installer as a non-root user on Unix-like systems or a non-admin user on Windows.
- On macOS, install command line tools if prompted; on Windows, set up msys2 during installation.
- Use GHCup to install and manage GHC, cabal-install, HLS, and Stack versions.
Limits worth knowing
WSL1 and macOS versions earlier than 10.13 are unsupported. Stack and HLS binaries on Linux ARM and HLS bindists on macOS aarch64 have experimental support; precompiled binaries can also encounter distribution compatibility or missing-library problems.
Questions
What does GHCup install?
It installs and manages versions of GHC, cabal-install, Haskell Language Server (HLS), and Stack.
Does GHCup cost anything?
GHCup is free and open source; its listed plan is free.
Which systems have installation instructions?
The site provides terminal instructions for Linux, macOS, FreeBSD, and WSL2, and PowerShell instructions for Windows.
Can Stack use a GHC version installed by GHCup?
Yes. Stack can be configured to use GHC versions installed and managed by GHCup.
Which systems are unsupported or have experimental support?
WSL1 and macOS versions earlier than 10.13 are unsupported. Stack and HLS binaries on Linux ARM, and HLS bindists on macOS aarch64, are experimental.
Who maintains GHCup?
The project team page names Julian Ospald as GHCup’s author and maintainer.


