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

Formatter for Haskell source code. Version 0.8.1.1 via Homebrew; verified 2026-06-19.

## Install

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

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install ormolu
```

  Evidence: local Homebrew formula metadata

### 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/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-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
- **Package manager page:** <https://formulae.brew.sh/formula/ormolu>
- **Version:** 0.8.1.1
- **Source summary:** Formatter for Haskell source code
- **Homepage:** <https://ormolu-live.tweag.io>
- **Repository:** <https://github.com/tweag/ormolu>
- **Upstream docs:** <https://github.com/tweag/ormolu#readme>
- **License:** BSD-3-Clause
- **Source archive:** <https://hackage.haskell.org/package/ormolu-0.8.1.1/ormolu-0.8.1.1.tar.gz>
- **Last updated:** 2026-06-19T07:52:40Z
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- ormolu (cli)
- ormolu (alias)

## Dependencies

- gmp

## Build dependencies

- cabal-install
- ghc

## Uses from macOS

- libffi

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.8.1.1
- Package-manager updated: 2026-06-19
- Local data: ok
- Upstream repository: https://ormolu-live.tweag.io
- info: Release/tag comparison is only available for GitHub repositories.
## 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.


## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** ormolu
- **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:** head, stable

## 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.0.2-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.0.2-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-12.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/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | A formatter for Haskell source code | https://hackage.haskell.org/package/ormolu


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [cabal-install](https://www.automicvault.com/pkg/brew/cabal-install/) - Build dependency declared by Homebrew.
- [ghc](https://www.automicvault.com/pkg/brew/ghc/) - Build dependency declared by Homebrew.
- [hindent](https://www.automicvault.com/pkg/brew/hindent/) - Shares av.db curated category or tags: cli, code-formatting, developer-tools, formatter, haskell.
- [perltidy](https://www.automicvault.com/pkg/brew/perltidy/) - Shares av.db curated category or tags: cli, code-formatting, developer-tools, formatter.
- [topiary](https://www.automicvault.com/pkg/brew/topiary/) - Shares av.db curated category or tags: cli, code-formatting, developer-tools, formatter.
- [air](https://www.automicvault.com/pkg/brew/air/) - Shares av.db curated category or tags: cli, code-formatting, developer-tools, formatter.
- [alejandra](https://www.automicvault.com/pkg/brew/alejandra/) - Shares av.db curated category or tags: cli, code-formatting, developer-tools, formatter.
- [astyle](https://www.automicvault.com/pkg/brew/astyle/) - Shares av.db curated category or tags: cli, code-formatting, developer-tools, formatter.
- [black](https://www.automicvault.com/pkg/brew/black/) - Shares av.db curated category or tags: cli, code-formatting, developer-tools, formatter.
- [cbfmt](https://www.automicvault.com/pkg/brew/cbfmt/) - Shares av.db curated category or tags: cli, code-formatting, developer-tools, formatter.
- [fourmolu](https://www.automicvault.com/pkg/brew/fourmolu/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, code, developer, developer-tools, formatter.
- [elm-format](https://www.automicvault.com/pkg/brew/elm-format/) - Local package facts share a topical domain. Shared terms: cli, code, developer, developer-tool, developer-tools.

## Combined YAML source

View the package source record on GitHub. [combined/ormolu.yml](https://github.com/automic-vault/db/blob/main/combined/ormolu.yml)


## Sources

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