# Install ormolu with Homebrew, apk, apt, dnf, MacPorts, Nix

Formatter for Haskell source code. Version 0.8.2.0 via Homebrew; verified 2026-07-27. Also installable with debian: sudo apt install ormolu.

## Install

```sh
sudo av install brew:ormolu
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install ormolu
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install ormolu
```

  Evidence: MacPorts ports tree: devel/ormolu/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add ormolu
```

  Evidence: Alpine Linux edge package indexes: ormolu from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install ormolu
```

  Evidence: Debian stable package indexes: ormolu from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install ormolu
```

  Evidence: Fedora Rawhide package metadata: ormolu from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#ormolu
```

  Evidence: nixpkgs package indexes: ormolu from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

## Package facts

- **Package key:** brew:ormolu
- **Package manager:** Homebrew
- **Version:** 0.8.2.0
- **Source summary:** Formatter for Haskell source code
- **Homepage:** <https://ormolu-live.tweag.io>
- **Repository:** <https://github.com/tweag/ormolu>
- **Last updated:** 2026-07-27T16:22:18Z
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- ormolu (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 0.8.2.0
## Project history and usage

Ormolu is a formatter for Haskell source code, developed by Tweag and distributed through Hackage, Stackage, GitHub releases, package managers, and editor integrations. Its defining design choice is a single formatting style with no user style configuration, built on GHC's parser to avoid the parsing gaps that affected older Haskell formatters.

### Project history

The tweag/ormolu repository was created on 2018-11-25. Tweag announced Ormolu publicly in May 2019, describing a formatter that would use GHC's own parser, aim for minimal diffs, be robust on large projects, and avoid configurable formatting styles.

Tweag announced the first Ormolu release on 2019-10-11. That post said the tool had been run on large real-world projects, legacy codebases, and popular packages, and that the first release formatted Haskell constructs, handled language extensions, placed comments, normalized pragmas and imports, and ran fast enough for large codebases.

The DESIGN.md file records the early analysis of Brittany, Hindent, Stylish Haskell, and haskell-formatter. The design borrowed goals such as preserving meaning when CPP is not used, preserving comments, idempotence, and linear space and time behavior, while avoiding parser bugs from haskell-src-exts.

### Adoption history

Ormolu became one of the standard Haskell formatter choices because it paired opinionated formatting with ecosystem integration. The README documents Hackage and Stackage availability, release binaries for Linux, macOS, and Windows, Nix builds, editor integrations for Emacs, VS Code, and Vim, built-in Haskell Language Server support, and a recommended GitHub Action.

Tweag's 2021 internship writing says the use of the GHC parser and testing gave Ormolu a reputation as a dependable tool, with more industrial users choosing it as their Haskell formatter. Later work focused on GHC parser upgrades, Ormolu Live, Cabal-file awareness, CPP handling, and magic comments for disabling formatting regions.

### How it is used

Developers run ormolu on files to print formatted output, use --mode inplace to rewrite files, and use --mode check in CI to fail when code is not formatted. Recursive use is usually via find or git ls-files, while editor and HLS integrations make it part of save-time formatting.

Ormolu reads Cabal files and .ormolu files for technical formatting inputs such as default extensions, package dependencies, fixities, and re-exports, while keeping the main visual style non-configurable. Magic comments let users disable and re-enable formatting for regions that require manual layout.

### Why package nerds care

Ormolu is package-nerd-significant because it captures a language-community shift toward formatter standardization: the package is small, but its value comes from reducing code-review churn, CI disagreement, and style bikeshedding in Haskell projects.

Its distribution footprint is unusually broad for a language formatter: Hackage library and executable, Stackage inclusion, binary releases, Nix support, Homebrew/Linux packages, Haskell Language Server integration, editor plugins, and GitHub Actions.

### Timeline

- 2018-11-25: tweag/ormolu repository created on GitHub.
- 2019-05-27: Tweag announced Ormolu before ZuriHac 2019.
- 2019-10-11: Tweag announced the first Ormolu release.
- 2021-04: Tweag described follow-up work around parser upgrades, bugs, and industrial use.
- 2021-10: Tweag described internship work on Ormolu Live, Cabal-file support, CPP handling, and magic comments.

### Related projects

- Related Haskell formatting tools include Brittany, Hindent, Stylish Haskell, haskell-formatter, and Fourmolu. Related infrastructure includes GHC, ghc-lib-parser, Hackage, Stackage, Haskell Language Server, ormolu-action, and Ormolu Live.

### Sources

- <https://api.github.com/repos/tweag/ormolu>
- <https://formulae.brew.sh/formula/ormolu>
- <https://github.com/tweag/ormolu>
- <https://github.com/tweag/ormolu/blob/master/DESIGN.md>
- <https://hackage.haskell.org/package/ormolu>
- <https://tweag.io/blog/2019-05-27-ormolu/>
- <https://tweag.io/blog/2019-10-11-ormolu-first-release/>
- <https://tweag.io/blog/2021-04-23-ormolu-intership/>
- <https://tweag.io/blog/2021-10-28-hacking-on-ormolu/>


## Security Notes

No matching local secret-handling manifest was found for ormolu. Nucleus package metadata is still published here so future coverage has a stable package URL.


## Other Package-Manager Records

- Debian apt - ormolu - 0.7.2.0-1+b1: normalized package name match | Debian stable package indexes: ormolu from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | formatter for Haskell source code | https://github.com/tweag/ormolu
- Nix - ormolu: normalized package name match | nixpkgs package indexes: ormolu from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - ormolu - 0.5.3.0-1: normalized package name match | Ubuntu 24.04 LTS package indexes: ormolu from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | formatter for Haskell source code | https://github.com/tweag/ormolu
- apk - ormolu - 0.8.1.1-r0: normalized package name match | Alpine Linux edge package indexes: ormolu from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Formatter for Haskell source code | https://github.com/tweag/ormolu
- apk - ormolu-doc - 0.8.1.1-r0: normalized package name match | Alpine Linux edge package indexes: ormolu-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Formatter for Haskell source code (documentation) | https://github.com/tweag/ormolu
- dnf - ormolu - 0.7.7.0-13.fc45: normalized package name match | Fedora Rawhide package metadata: ormolu from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | A formatter for Haskell source code | https://hackage.haskell.org/package/ormolu
- MacPorts - ormolu: normalized package name match | MacPorts ports tree: devel/ormolu/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/ormolu.yml](https://github.com/mxcl/pkgdb/blob/main/combined/ormolu.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
