macOS
brew install haskell-stacklocal Homebrew formula metadata
sudo port install stackMacPorts ports tree · lang/stack/Portfile · source: api.github.com
brew
Cross-platform program for developing Haskell projects. Version 3.11.1 via Homebrew; verified 2026-06-28.
install
brew install haskell-stacklocal Homebrew formula metadata
sudo port install stackMacPorts ports tree · lang/stack/Portfile · source: api.github.com
sudo apt install haskell-stackDebian stable package indexes · haskell-stack · source: deb.debian.org
sudo apk add stackAlpine Linux edge package indexes · stack · source: dl-cdn.alpinelinux.org
sudo dnf install ghc-aeson-warning-parserFedora Rawhide package metadata · ghc-aeson-warning-parser · source: dl.fedoraproject.org
nix profile install nixpkgs#stacknixpkgs package indexes · stack · source: raw.githubusercontent.com
sudo pacman -S stackArch Linux sync databases · stack · source: geo.mirror.pkgbuild.com
choco install haskell-stackChocolatey community package catalog · haskell-stack · source: community.chocolatey.org
winget install --id commercialhaskell.stack -eWindows Package Manager source index · commercialhaskell.stack · source: cdn.winget.microsoft.com
scoop install main/stackScoop official bucket manifest trees · bucket/stack.json · source: api.github.com
overview
Cross-platform program for developing Haskell projects
history
Stack is a cross-platform command-line build tool for Haskell projects. It became important by making GHC installation, package snapshots, project templates, builds, tests, scripts, uploads, and reproducible project configuration accessible through one executable.
Its package history is tied to Stackage: Stack made snapshot-based Haskell development a normal workflow, complementing Cabal and Hackage by giving users a resolver-centered way to pin a coherent package set.
The Stack changelog records the first public release on 2015-06-09 as the Haskell Tool Stack, beta quality. Within weeks it added index updates, package removal from HTTPS and Git, install support, test-running improvements, stack init, resolver support, Hackage upload support, stack new, stack solver, stack path, stack dot, stack upgrade, and the --stack-yaml flag.
The documentation describes Stack as a program for developing Haskell projects, aimed at new and experienced users, with support across Linux, macOS, and Windows. Its core promise is orchestration: select a GHC, read stack.yaml, build dependencies and project packages, and keep the toolchain reproducible enough for local development and CI.
Over time Stack grew beyond the early snapshot-and-build loop. The changelog shows Docker and Nix integration, script interpreter support, Hackage authentication and upload behavior, Hpack integration, lock files, snapshot listing, Windows/MSYS handling, and later support for newer GHC and Cabal versions.
Stack adoption spread through Haskell projects that wanted a consistent command line across operating systems and CI machines. Its docs and Hackage package page both emphasize Linux, macOS, and Windows support, while package managers distribute it as a single stack executable.
The tool became part of the Commercial Haskell and Stackage workflow, but it also stayed in the broader Haskell package ecosystem through Hackage releases, GitHub releases, and distribution by Homebrew, MacPorts, Nix, Arch, Debian, Ubuntu, Chocolatey, Scoop, and winget as reflected in package metadata.
Stack's adoption history also includes coexistence with Cabal. The docs present Cabal, Hackage, and Stackage as related pieces: Cabal defines and builds packages, Hackage hosts packages, Stackage supplies curated snapshots, and Stack coordinates project workflows around those components.
Typical package-manager usage begins with installing stack, then running commands such as stack new, stack init, stack setup, stack build, stack test, stack exec, stack ghci, stack run, stack script, stack upload, and stack path inside or around a Haskell project.
A project-level stack.yaml selects a snapshot or compiler and project packages; global and user configuration live under Stack's root/config locations. This split is why the package has both project configuration and user credentials paths: builds are project-specific, but Hackage upload credentials are user-specific.
Stack is also used as a bootstrapper. It can install or select GHC, build a project with the versions implied by its snapshot, and run tools in the resulting environment. That makes it attractive for tutorials and CI scripts because one command can reproduce a build plan that would otherwise require several separate tools.
Stack is package-nerd material because it changed the default conversation about Haskell dependency management from only solving constraints to selecting known-good snapshots. That made build reproducibility, resolver names, and curated package sets visible in everyday project files.
It also sits at the intersection of package managers. Homebrew installs Stack as an OS package; Stack then installs or selects GHC and builds Haskell packages from Hackage or snapshots. This layering is both powerful and occasionally surprising, so packagers care about exactly which Stack version is distributed and how it handles GHC, MSYS2, Docker, Nix, Hackage Security, and credentials.
The changelog is a compact history of Haskell ecosystem pressure points: Windows path handling, Hackage authentication changes, Docker behavior, Nix mode, Cabal library compatibility, Stackage server API changes, and evolving GHC support.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
local files
These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.
Config paths the tool may read or write during local use.
./stack.yaml$STACK_ROOT/config.yaml/etc/stack/config.yaml$XDG_CONFIG_HOME/stack/config.yamlCredential-bearing paths to review before unattended agent runs.
$STACK_ROOT/upload/credentials.jsonexecutables
| Command | Kind | Exposure | Note |
|---|---|---|---|
stack | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/commercialhaskell/stack
install metadata
| Package key | brew:haskell-stack |
|---|---|
| Version | 3.11.1 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/haskell-stack |
| Homepage | https://haskellstack.org/ |
| Repository | https://github.com/commercialhaskell/stack |
| Upstream docs | https://docs.haskellstack.org/ |
| License | BSD-3-Clause |
| Source archive | https://github.com/commercialhaskell/stack/archive/refs/tags/v3.11.1.tar.gz |
| Last updated | 2026-06-28T12:56:20-04:00 |
| Pulse | updated |
| Dependencies | gmp |
| Build dependencies | cabal-install, ghc |
| Uses from macOS | libffi |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | haskell-stack |
| Aliases |
|
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
haskell-stack 2.15.7-1
The Haskell Tool Stack
sudo apt install haskell-stackhaskell-stack 2.9.3.1-1
The Haskell Tool Stack
sudo apt install haskell-stackhaskell-stack
choco install haskell-stackcommercialhaskell.stack
winget install --id commercialhaskell.stack -estack
sudo port install stackstack
nix profile install nixpkgs#stackstack 3.9.3-r0
The Haskell Tool Stack
sudo apk add stackstack-bash-completion 3.9.3-r0
Bash completions for stack
sudo apk add stack-bash-completionstack-fish-completion 3.9.3-r0
Fish completions for stack
sudo apk add stack-fish-completionstack-zsh-completion 3.9.3-r0
Zsh completions for stack
sudo apk add stack-zsh-completionghc-aeson-warning-parser 0.1.1-41.fc44
Haskell aeson-warning-parser library
https://hackage.haskell.org/package/aeson-warning-parser
sudo dnf install ghc-aeson-warning-parserghc-aeson-warning-parser-devel 0.1.1-41.fc44
Haskell aeson-warning-parser library development files
sudo dnf install ghc-aeson-warning-parser-develghc-aeson-warning-parser-doc 0.1.1-41.fc44
Haskell aeson-warning-parser library documentation
sudo dnf install ghc-aeson-warning-parser-docghc-aeson-warning-parser-prof 0.1.1-41.fc44
Haskell aeson-warning-parser profiling library
sudo dnf install ghc-aeson-warning-parser-profghc-casa-client 0.0.3-41.fc44
Haskell casa-client library
https://hackage.haskell.org/package/casa-client
sudo dnf install ghc-casa-clientghc-casa-client-devel 0.0.3-41.fc44
Haskell casa-client library development files
sudo dnf install ghc-casa-client-develsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.