# Install treefmt with Homebrew, MacPorts, Nix

One CLI to format the code tree. Version 2.5.0 via Homebrew; verified 2026-07-26. Also installable with nix: nix profile install nixpkgs#treefmt.

## Install

```sh
sudo av install brew:treefmt
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install treefmt
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install treefmt
```

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

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#treefmt
```

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

## Package facts

- **Package key:** brew:treefmt
- **Package manager:** Homebrew
- **Version:** 2.5.0
- **Source summary:** One CLI to format the code tree
- **Homepage:** <https://treefmt.com/latest/>
- **Repository:** <https://github.com/numtide/treefmt>
- **Last updated:** 2026-07-26T00:51:27+02:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- treefmt (alias)

## Install behavior

- Bottle: not available

## Freshness

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

treefmt is a formatter multiplexer: one CLI that runs the right formatters across a source tree from a project-level configuration file.

### Project history

Numtide's README explains treefmt as a response to polyglot repositories, where each language brings its own formatter and teams repeatedly reimplement scripts to run them. treefmt turns that recurring script into one command.

The project emphasizes a unified CLI and output, parallel execution, and tracking changed files so that formatting does not always have to scan and rewrite an entire repository. Its documentation centers the `treefmt.toml` file in the project root as the place where formatter commands, options, and include globs are declared.

By 2026 the GitHub repository had multiple major releases, Go and Nix build metadata, and related tooling such as treefmt-nix, reflecting its adoption in Nix-heavy and polyglot development workflows.

### Adoption history

treefmt's adoption is closely tied to repositories that do not want language-specific formatting scripts in every project. It is packaged by Homebrew, MacPorts, and Nix, and the upstream README explicitly points Nix users at treefmt-nix.

For package users, the attraction is boring consistency: install one binary, commit one `treefmt.toml`, and let CI or pre-commit workflows run all configured formatters the same way.

### How it is used

A project usually creates `treefmt.toml` with `treefmt --init`, defines formatter sections with command, options, and include globs, and then runs `treefmt` from the project root.

Package nerds use it to standardize formatting across Nix, Rust, Go, JavaScript, and other mixed-language repos without maintaining a custom shell script per repository.

### Why package nerds care

treefmt is significant because it packages repository formatting as a composable CLI rather than a pile of local scripts. That matters to reproducible developer environments, especially where Nix flakes and CI expect declarative tooling.

### Timeline

- Project docs: treefmt is presented as the formatter multiplexer.
- 2026: v2.5.0 release adds formatter option support and Go toolchain updates.
- 2026: The repository records roughly a thousand stars, dozens of releases, and continued maintenance.

### Related projects

- treefmt-nix wraps treefmt for Nix-based configuration and formatter provisioning.
- Related tools named upstream include EditorConfig, Prettier, Super-Linter, and pre-commit.

### Sources

- <https://github.com/numtide/treefmt>
- <https://github.com/numtide/treefmt/releases>
- <https://treefmt.com/latest/>


## 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: treefmt.toml
## Other Package-Manager Records

- Nix - treefmt: normalized package name match | nixpkgs package indexes: pkgs/by-name/tr/treefmt/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- MacPorts - treefmt: normalized package name match | MacPorts ports tree: devel/treefmt/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/treefmt.yml](https://github.com/mxcl/pkgdb/blob/main/combined/treefmt.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
