macOS
brew install haskell-language-serverlocal Homebrew formula metadata
sudo port install haskell-language-serverMacPorts ports tree · devel/haskell-language-server/Portfile · source: api.github.com
brew
Integration point for ghcide and haskell-ide-engine. One IDE to rule them all. Version 2.14.0.0 via Homebrew; verified 2026-04-27.
install
brew install haskell-language-serverlocal Homebrew formula metadata
sudo port install haskell-language-serverMacPorts ports tree · devel/haskell-language-server/Portfile · source: api.github.com
sudo apk add haskell-language-serverAlpine Linux edge package indexes · haskell-language-server · source: dl-cdn.alpinelinux.org
nix profile install nixpkgs#haskell-language-servernixpkgs package indexes · haskell-language-server · source: raw.githubusercontent.com
sudo pacman -S haskell-language-serverArch Linux sync databases · haskell-language-server · source: geo.mirror.pkgbuild.com
scoop install main/haskell-language-serverScoop official bucket manifest trees · bucket/haskell-language-server.json · source: api.github.com
overview
Integration point for ghcide and haskell-ide-engine. One IDE to rule them all
history
Haskell Language Server is the official Language Server Protocol implementation for Haskell. Its package-manager identity matters because it turns a historically difficult editor-integration story into a single installable tool that editors can discover through the standard LSP model.
The project grew out of the Haskell IDE ecosystem around ghcide, hie-bios, plugins, and the earlier haskell-ide-engine effort. The Homebrew formula description preserves that consolidation story directly: HLS became the integration point for ghcide and haskell-ide-engine rather than another standalone editor-specific tool.
The documentation describes HLS as a language server that speaks LSP to editor clients, which lets editors reuse a common protocol for diagnostics, completions, hover information, definition lookup, references, formatting, and related IDE functions. That positioned HLS as infrastructure rather than a single editor extension.
A central technical lineage is ghcide. The HLS component documentation describes ghcide as a library for Haskell IDE tooling, paired with hie-bios for discovering project structure, dependencies, extensions, and build information. HLS packages that foundation with plugins and release engineering so users do not have to assemble the stack manually.
The 1.0.0 changelog framed the release as a celebratory stabilization point, with internal changes, bug fixes, performance work, GHC 8.10.4 support, HIE DB integration for references and symbols, and plugins for import disambiguation, shadowed imports, evaluation, formatting, and tactics. Later changelog entries show the project repeatedly tracking new GHC families and pruning old compiler support.
HLS adoption follows the spread of LSP-capable Haskell editing in VS Code, Emacs, Vim/Neovim, and other clients. Its docs emphasize that editor configuration is client-specific while the server side remains the same executable family, which is exactly the distribution shape package managers like Homebrew, Nix, Arch, MacPorts, and Scoop are good at providing.
The package appears on Hackage with a long version series and a broad dependency set around ghcide, hls-plugin-api, hie-bios, hiedb, LSP libraries, formatters, and refactoring tools. That public package record is evidence that HLS became a normal Haskell package ecosystem artifact, not only a GitHub binary release.
Binary distribution is unusually important for HLS because GHC version compatibility is central to user experience. The installation docs instruct users to install the wrapper and the server executables for the GHC versions they work with; Homebrew exposes that shape through versioned executables such as haskell-language-server-wrapper and per-GHC server names.
Typical use is indirect: an editor or LSP client launches haskell-language-server-wrapper in a Haskell project, and the wrapper selects an HLS binary compatible with the project compiler. Users then get type diagnostics, completions, hover, code actions, references, formatting integration, Cabal-file assistance, and other plugin-provided features.
Project discovery often depends on hie.yaml, Cabal, Stack, or implicit hie-bios rules. That makes HLS especially sensitive to how a project is built, which is why package users care about the wrapper, the supported-GHC matrix, and the documentation around troubleshooting build cradles.
For package nerds, HLS is a stress test of language-tool distribution. It must line up GHC ABIs, plugin versions, Hackage dependencies, native binaries, editor expectations, and project build tools. A package-manager upgrade can materially change editor behavior because it changes the compiler matrix and plugin set.
It also represents a broader packaging pattern: move editor intelligence into a protocol-speaking server, then let editors and operating-system package managers share that server. In Haskell, where compiler versions and build plans are especially specific, that pattern is more demanding than simply shipping one static CLI.
security posture
broad file, network, media, or database tool signal.
blue risk · medium confidence · tool
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.
<project-root>/hie.yamlexecutables
| Command | Kind | Exposure | Note |
|---|---|---|---|
ghcide-bench-9.12 | cli | global executable | |
ghcide-bench-9.12.3 | cli | global executable | |
ghcide-bench-9.14 | cli | global executable | |
ghcide-bench-9.14.1 | cli | global executable | |
haskell-language-server-9.12 | cli | global executable | |
haskell-language-server-9.12.3 | cli | global executable | |
haskell-language-server-9.14 | cli | global executable | |
haskell-language-server-9.14.1 | cli | global executable | |
haskell-language-server-wrapper | 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/haskell/haskell-language-server
install metadata
| Package key | brew:haskell-language-server |
|---|---|
| Version | 2.14.0.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/haskell-language-server |
| Homepage | https://github.com/haskell/haskell-language-server |
| Repository | https://github.com/haskell/haskell-language-server |
| Upstream docs | https://haskell-language-server.readthedocs.io/ |
| License | Apache-2.0 |
| Source archive | https://github.com/haskell/haskell-language-server/releases/download/2.14.0.0/haskell-language-server-2.14.0.0-src.tar.gz |
| Last updated | 2026-04-27T10:45:09Z |
| Pulse | updated |
| Dependencies | gmp |
| Build dependencies | cabal-install, ghc, ghc@9.12 |
| Uses from macOS | libffi, ncurses |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
| Caveats | haskell-language-server is built for GHC versions 9.12.3, 9.14.1. You need to provide your own GHC or install one with brew install ghc |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | haskell-language-server |
| 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-language-server
nix profile install nixpkgs#haskell-language-serverhaskell-language-server 2.9.0.0-r0
Official Haskell Language Server implementation
https://github.com/haskell/haskell-language-server
sudo apk add haskell-language-serverhaskell-language-server 2.3.0.0-47
LSP server for GHC
https://github.com/haskell/haskell-language-server#readme
sudo pacman -S haskell-language-serverhaskell-language-server
sudo port install haskell-language-servermain/haskell-language-server
scoop install main/haskell-language-serversource 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.