Ormolu
github.com
What it is
Ormolu is a formatter for Haskell source code. It uses GHC’s parser and applies one consistent style, with the aim of keeping diffs small. That style cannot be configured, and the project aims to leave code unchanged when it is formatted again after already meeting the style. Release binaries are available for Linux, macOS, and Windows; installation through cabal or stack is also supported. Ormolu Live provides a browser version. Listed editor integrations cover Emacs, VS Code, and Vim through neoformat or vim-ormolu, and Haskell Language Server has built-in support for Ormolu. For continuous integration, the project recommends the run-ormolu GitHub Action. It reads default language extensions and dependencies from a matching Cabal file;.ormolu files can specify fixity overrides and module re-export instructions. CPP support remains experimental and works only in simple cases where conditionals surround top-level declarations. Ormolu is open source and free, with a listed plan price of free.
Spec sheet
- Purpose
- Ormolu is a formatter for Haskell source code.Read 9 Oct 2026 · github.com
- License
- The project’s license permits redistribution and use in source and binary forms subject to stated conditions and provides the software “as is.”Read 9 Oct 2026 · github.com
- Maker
- Tweag describes itself as a software innovation lab and lists Ormolu among its Haskell ecosystem tools.Read 9 Oct 2026 · tweag.io
- Browser version
- Ormolu can be tried in a browser through Ormolu Live.Read 9 Oct 2026 · github.com
- CI integration
- The project recommends the run-ormolu GitHub Action to keep a project formatted.Read 9 Oct 2026 · github.com
- Editor integrations
- The README lists integrations for Emacs, VS Code, and Vim through neoformat or vim-ormolu.Read 9 Oct 2026 · github.com
- Formatting style
- It implements one consistent formatting style that does not admit configuration and aims to produce minimal diffs.Read 9 Oct 2026 · github.com
- Idempotence
- The project aims to ensure formatting already formatted code does not change it.Read 9 Oct 2026 · github.com
- Installation
- The release page provides binaries for Linux, macOS, and Windows, and the project can also be installed with cabal or stack.Read 9 Oct 2026 · github.com
- Language server
- Haskell Language Server has built-in support for using Ormolu as a formatter.Read 9 Oct 2026 · github.com
- Limitations
- CPP support is experimental and works only in simple cases where CPP conditionals surround top-level declarations.Read 9 Oct 2026 · github.com
- Maintainer history
- The README credits Mark Karpov as author and main maintainer during his employment at Tweag from 2019 to 2026.Read 9 Oct 2026 · github.com
- Parser
- It uses GHC’s parser to avoid parsing problems caused by haskell-src-exts.Read 9 Oct 2026 · github.com
- Project configuration
- Ormolu finds the matching Cabal file to read default language extensions and dependencies, and supports fixity overrides and module re-export instructions in .ormolu files.Read 9 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Uses GHC’s parser.
- Available through binaries, cabal, stack, and browser.
- Integrations include Emacs, VS Code, and Vim.
- Haskell Language Server support is built in.
- Reads defaults from a matching Cabal file.
Limits
- Formatting style cannot be configured.
- CPP support is experimental and limited.
Who it suits
Ormolu suits Haskell developers who want a consistent formatter for local work, editor use, or continuous integration. It is a fit for teams willing to use a fixed style rather than configure formatting rules.
Verdict
Ormolu offers a defined Haskell formatting workflow across command-line installation, editor integrations, and browser use. Its fixed style and narrow CPP support are important constraints to consider.
Where Specifiction places it
- Code Formatting Tools#14 of 347.8