Skip to content
SPECIFICTION
Get listed

Ormolu

github.com

Free plan WebWindowsmacOSLinux
Visit github.com
Spec score 7.8 #14 of 34 in Code Formatting Tools

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

Ormolu Free Open-source Haskell formatter Read 9 Oct 2026 · github.com

Every Ormolu plan and price →

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

Alternatives to OrmoluAll alternatives →