Automic VaultAutomic Vault

brew

Install haskell-language-server with Homebrew, apk, MacPorts, Nix, pacman, scoop

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

Additional install commands

macOS

Homebrewverified · 100%
brew install haskell-language-server

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install haskell-language-server

MacPorts ports tree · devel/haskell-language-server/Portfile · source: api.github.com

Linux

Alpine Linux apkverified · 92%
sudo apk add haskell-language-server

Alpine Linux edge package indexes · haskell-language-server · source: dl-cdn.alpinelinux.org

Nixverified · 92%
nix profile install nixpkgs#haskell-language-server

nixpkgs package indexes · haskell-language-server · source: raw.githubusercontent.com

Arch Linux pacmanverified · 92%
sudo pacman -S haskell-language-server

Arch Linux sync databases · haskell-language-server · source: geo.mirror.pkgbuild.com

Windows

Scoopverified · 92%
scoop install main/haskell-language-server

Scoop official bucket manifest trees · bucket/haskell-language-server.json · source: api.github.com

overview

Package summary

Integration point for ghcide and haskell-ide-engine. One IDE to rule them all

Commands and aliases

  • ghcide-bench-9.12
  • ghcide-bench-9.12.3
  • ghcide-bench-9.14
  • ghcide-bench-9.14.1
  • haskell-language-server-9.12
  • haskell-language-server-9.12.3
  • haskell-language-server-9.14
  • haskell-language-server-9.14.1
  • haskell-language-server-wrapper

history

Project history and usage

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.

Project history

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.

Adoption history

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.

How it is used

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.

Why package nerds care

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.

Timeline

  • 2020: Public Hackage candidate versions for haskell-language-server appeared, including 0.1.0.0.
  • 2021: The 1.0.0 changelog marked a stabilization point with HIE DB integration, plugin work, and GHC 8.10.4 support.
  • 2023: The 2.x line continued the ghcide/plugin architecture while tracking newer GHC releases.
  • 2026: The 2.14.0.0 package record and changelog show bindists for multiple GHC versions, including GHC 9.14.1 and 9.12.x.

Related projects

  • ghcide supplies core IDE services and is documented by HLS as a library for Haskell IDE tooling.
  • hie-bios discovers project layout and build settings for Haskell tools.
  • haskell-ide-engine is part of the predecessor ecosystem that HLS consolidated.
  • GHC, Cabal, Stack, Hackage, HIE DB, HLint, Ormolu, Fourmolu, and editor LSP clients form the surrounding toolchain.

security posture

Risk level: blue

broad file, network, media, or database tool signal.

Risk classifier

blue risk · medium confidence · tool

Why

  • broad file, network, media, or database tool signal

Signals

  • text:server

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Installs with 1 runtime dependencies.
  • Build metadata lists 3 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

local files

Configuration and credential file locations

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.

Configuration files

Config paths the tool may read or write during local use.

Unix
<project-root>/hie.yaml

executables

Installed executables

CommandKindExposureNote
ghcide-bench-9.12cliglobal executable
ghcide-bench-9.12.3cliglobal executable
ghcide-bench-9.14cliglobal executable
ghcide-bench-9.14.1cliglobal executable
haskell-language-server-9.12cliglobal executable
haskell-language-server-9.12.3cliglobal executable
haskell-language-server-9.14cliglobal executable
haskell-language-server-9.14.1cliglobal executable
haskell-language-server-wrappercliglobal executable

freshness

Version and 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.

page generated2026-07-08
manager version2.14.0.0
manager updated2026-04-27
local dataok
upstreamnot checked
latest detectednot detected

https://github.com/haskell/haskell-language-server

install metadata

Package metadata

Package keybrew:haskell-language-server
Version2.14.0.0
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/haskell-language-server
Homepagehttps://github.com/haskell/haskell-language-server
Repositoryhttps://github.com/haskell/haskell-language-server
Upstream docshttps://haskell-language-server.readthedocs.io/
LicenseApache-2.0
Source archivehttps://github.com/haskell/haskell-language-server/releases/download/2.14.0.0/haskell-language-server-2.14.0.0-src.tar.gz
Last updated2026-04-27T10:45:09Z
Pulseupdated
Dependenciesgmp
Build dependenciescabal-install, ghc, ghc@9.12
Uses from macOSlibffi, ncurses
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared
Caveatshaskell-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 details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namehaskell-language-server
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

haskell-language-server

nix profile install nixpkgs#haskell-language-server
  • normalized package name match
  • Matched by: Haskell Language Server
nixpkgs package indexes · raw.githubusercontent.com · nixpkgs package indexes: haskell-language-server from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
apk95%

haskell-language-server 2.9.0.0-r0

Official Haskell Language Server implementation

https://github.com/haskell/haskell-language-server

sudo apk add haskell-language-server
  • License: Apache-2.0
  • Architecture: x86_64
  • Source Package: haskell-language-server
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Haskell Language Server
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: haskell-language-server from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
pacman95%

haskell-language-server 2.3.0.0-47

LSP server for GHC

https://github.com/haskell/haskell-language-server#readme

sudo pacman -S haskell-language-server
  • License: Apache-2.0
  • Architecture: x86_64
  • 32 dependencies
  • normalized package name match
  • Matched by: Haskell Language Server
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: haskell-language-server from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz
MacPorts95%

haskell-language-server

sudo port install haskell-language-server
  • normalized package name match
  • Matched by: Haskell Language Server
MacPorts ports tree · api.github.com · MacPorts ports tree: devel/haskell-language-server/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
Scoop95%

main/haskell-language-server

scoop install main/haskell-language-server
  • normalized package name match
  • Matched by: Haskell Language Server
Scoop official bucket manifest trees · api.github.com · Scoop official bucket manifest trees: bucket/haskell-language-server.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated configuration and credential file locations
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment