# Install fourmolu with Homebrew, Nix

Formatter for Haskell source code. Version 0.20.0.0 via Homebrew; verified 2026-07-22. Also installable with nix: nix profile install nixpkgs#fourmolu.

## Install

```sh
sudo av install brew:fourmolu
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install fourmolu
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#fourmolu
```

  Evidence: nixpkgs package indexes: pkgs/by-name/fo/fourmolu/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:fourmolu
- **Package manager:** Homebrew
- **Version:** 0.20.0.0
- **Source summary:** Formatter for Haskell source code
- **Homepage:** <https://fourmolu.github.io/>
- **Repository:** <https://github.com/fourmolu/fourmolu>
- **Last updated:** 2026-07-22T05:23:32Z
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- fourmolu (alias)

## Install behavior

- Bottle: not available

## Freshness

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

Fourmolu is a formatter for Haskell source code. It is an Ormolu fork that keeps Ormolu's parser-driven, idempotent formatting goals while adding configurable style options through CLI flags and `fourmolu.yaml`.

### Project history

The repository was created in 2020 and describes itself as a fork of Ormolu with upstream improvements continually merged. The official README frames the project around one key departure from Ormolu: replacing the no-configuration style rule with configurable parameters.

The changelog shows a pattern of adding Fourmolu-specific configuration while also importing upstream Ormolu changes, including parser updates, formatting fixes, and support for new GHC language features.

### Adoption history

Fourmolu is adopted by Haskell projects that want automatic formatting but need policy knobs that Ormolu intentionally avoids. The README documents installation through GHCup, Cabal, Stack, release notes, editor integration through Haskell Language Server, and CI through the recommended `run-fourmolu` GitHub Action.

### How it is used

Users run `fourmolu Module.hs` to print formatted output, `fourmolu -i` to rewrite files, or `fourmolu --mode check` in CI. Configuration can be written in `fourmolu.yaml`, discovered from parent directories and the XDG config directory, or passed as command-line options.

### Why package nerds care

Fourmolu is a package-nerd case study in formatter governance. It forked an intentionally opinionated tool not to change the parser architecture, but to change the social contract around style configuration, while still tracking upstream Ormolu.

### Timeline

- 2020: The public `fourmolu/fourmolu` repository was created.
- 2023: v0.13.x and v0.14.x releases continued the configurable formatter line.
- 2024: v0.16.x added explicit configuration-file selection and upstream parser updates.
- 2025: v0.19.0.0 added options such as `haddock-location-signature` and `if-style`.
- 2026: v0.20.0.0 made Fourmolu installable with GHCup and added more import-grouping and record-style configuration.

### Related projects

- Fourmolu is directly related to Ormolu, GHC, ghc-lib-parser, Cabal, Stack, GHCup, Haskell Language Server, Hackage, and the `run-fourmolu` GitHub Action.

### Sources

- <https://api.github.com/repos/fourmolu/fourmolu>
- <https://api.github.com/repos/fourmolu/fourmolu/releases>
- <https://fourmolu.github.io/>
- <https://fourmolu.github.io/changelog/>
- <https://fourmolu.github.io/config/>
- <https://github.com/fourmolu/fourmolu>
- <https://raw.githubusercontent.com/fourmolu/fourmolu/main/README.md>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## 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

- Unix: fourmolu.yaml
## Other Package-Manager Records

- Nix - fourmolu: normalized package name match | nixpkgs package indexes: pkgs/by-name/fo/fourmolu/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Combined YAML source

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


## Sources

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