coldwa.st
All guidesHaskellConceptsCabal & buildsToolchainCompilerPerformanceEditor & HLS

Haskell · toolchain · setup

Install Haskell with GHCup: the 2026 toolchain guide

By ColdwastUpdated Jun 14, 20267 min read#haskell#ghcup#cabal
Syntax-highlighted source code on a dark screen
Syntax-highlighted source code on a screen.

If you are starting with Haskell in 2026, the question "how do I install it?" has one clear answer: GHCup. It is the official, cross-platform installer and version manager for the whole toolchain — the compiler (GHC), the build tool (cabal-install), Stack, and the editor backend (HLS, the Haskell Language Server). This guide walks through a clean install, switching versions, and the pitfalls people hit most often.

What GHCup actually manages

GHCup is a single tool that installs and switches between multiple versions of each component, so you are never locked to one compiler:

It replaced the older "Haskell Platform" bundle precisely because real projects need different GHC versions, and GHCup makes switching trivial.

Installing GHCup

On Linux and macOS, the official one-liner fetches an interactive installer:

curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

As with any install script, read what it does first — the source is on GitHub (haskell/ghcup-hs). On Windows, run the PowerShell installer documented on the GHCup site; it sets up the same toolchain plus the required MSYS2 environment.

The installer offers to add GHCup to your shell profile so ghc, cabal and friends are on your PATH. Accept that, then restart your shell.

The interactive way: ghcup tui

A laptop on a desk showing source code in an editor
A laptop showing source code in an editor.

The fastest way to manage versions is the terminal UI:

ghcup tui

It lists every available GHC, Cabal, Stack and HLS version with their status (installed, set, recommended). You select what to install or activate with the keyboard — no need to memorise commands.

The command-line equivalents

If you prefer scripts or CI, the same actions are plain commands:

# install the recommended versions
ghcup install ghc recommended
ghcup install cabal recommended
ghcup install hls recommended

# make a specific GHC the active one
ghcup set ghc 9.10.1

# see what is installed
ghcup list

Use the version numbers GHCup marks as recommended unless a project pins something specific in its cabal.project or stack.yaml.

First build, to confirm it works

cabal update          # refresh the package index
mkdir hello && cd hello
cabal init --simple --non-interactive
cabal run

If that prints output, your toolchain is healthy. From here, the build itself is parallel by default — see our guide on how Cabal uses your cores, and the deeper changes that landed in Cabal 2.0 and the new-build model.

Common pitfalls

For the vocabulary used across these guides — install plans, snapshots, sandboxes — the older Cabal sandboxes guide covers how isolation evolved into today's per-project builds.

Stack or Cabal after GHCup?

GHCup installs both, so the choice is yours. Cabal with its modern per-project build model is the default most newcomers should start with; Stack adds curated package snapshots that some teams prefer for reproducibility. Both work with the GHC that GHCup manages, and you can switch later without reinstalling the compiler.

FAQ

Is GHCup the official way to install Haskell? Yes — it is the recommended installer on haskell.org and the standard entry point for the toolchain in 2026.

Does GHCup work on Windows? Yes, via its PowerShell installer, which also sets up the MSYS2 environment GHC needs on Windows.

Can I have several GHC versions at once? Yes — that is the whole point. Install many, switch the active one with ghcup set ghc <version>.

Do I still need the Haskell Platform? No. GHCup superseded it; install the components you need individually.

Independent, community-maintained guide. coldwa.st is a programming-resources site; this article is new, original writing about GHCup and the current Haskell toolchain, not affiliated with or authored by any tool's maintainers. Commands reflect documented GHCup behaviour — always check the official docs for the latest version numbers.
Recommended

Need a box to build and run Haskell?

Compiling GHC and running your app is smoother on a real Linux server. Infomaniak (Swiss, privacy-respecting) offers VPS and cloud servers for it.

See Infomaniak cloud →