# Install mdformat with Homebrew, apt, Nix, pacman

CommonMark compliant Markdown formatter. Version 1.0.0 via Homebrew; verified from local package data. Also installable with debian: sudo apt install mdformat.

## Install

```sh
sudo av install brew:mdformat
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install mdformat
```

  Evidence: local Homebrew formula metadata

### Linux

- Debian apt (92%):

```sh
sudo apt install mdformat
```

  Evidence: Debian stable package indexes: mdformat from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#mdformat
```

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

- pacman (92%):

```sh
sudo pacman -S mdformat
```

  Evidence: Arch Linux sync databases: mdformat from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

## Package facts

- **Package key:** brew:mdformat
- **Package manager:** Homebrew
- **Version:** 1.0.0
- **Source summary:** CommonMark compliant Markdown formatter
- **Homepage:** <https://mdformat.readthedocs.io/en/stable/>
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- mdformat (alias)

## Install behavior

- Bottle: not available

## Freshness

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

mdformat is an opinionated CommonMark-compliant Markdown formatter available as both a Unix-style command-line tool and a Python library. It formats Markdown documents in place, checks formatting in CI, and exposes plugin hooks for parser extensions and code-block formatting.

### Project history

The project was published to PyPI in July 2020 as version 0.1.0 and is developed in the hukkin/mdformat GitHub repository. Its README describes the core pitch as enforcing a consistent Markdown style while preserving CommonMark-rendered output.

The changelog shows steady maturation of the 0.7 series: configuration in `.mdformat.toml` arrived in 0.7.10, plugin interfaces evolved in 0.7.19, and version 1.0.0 later removed older Python support, added markdown-it-py v4 support, and added CommonMark 0.31.2 support.

### Adoption history

mdformat's adoption is tied to Python packaging and automated formatting workflows. Its official docs show installation with pipx, Python API use, and use as a pre-commit hook by referencing the GitHub repository and pinning a revision.

The plugin docs document a broader ecosystem of mdformat-* packages for GitHub Flavored Markdown, MyST, front matter, table-of-contents generation, code-block formatting with Black, shfmt, gofmt, rustfmt, and related tools. The input facts list availability in Homebrew, Debian, Nix, and Arch-style packaging.

### How it is used

Common CLI usage is `mdformat README.md CHANGELOG.md`, `mdformat .` for recursive formatting, `mdformat -` for standard input, and `mdformat --check` in CI. The tool also exposes a Python API through `mdformat.text()` and `mdformat.file()`.

Configuration is resolved from a TOML file named `.mdformat.toml`, searched upward from the formatted file or from the current working directory for standard input. Command-line arguments take precedence over configuration values.

### Why package nerds care

mdformat is a useful package-history marker for the shift from Markdown rendering tools to Markdown style enforcement. It fills a similar cultural role for Markdown that Black filled for Python: fewer formatting arguments, more reproducible diffs.

Its plugin model matters to packagers because optional behavior is split across separately distributed Python packages. That keeps the core package small but makes environment composition important for users who need GFM, MyST, front matter, or code-block formatters.

### Timeline

- 2020: Version 0.1.0 published to PyPI.
- 2021: Version 0.7.10 added `.mdformat.toml` configuration.
- 2025: Version 1.0.0 published with Python support and CommonMark updates.
- 2026: Homebrew formula tracked stable version 1.0.0.

### Related projects

- The README explicitly compares mdformat with Prettier for Markdown formatting and discusses CommonMark-focused behavior.
- The plugin ecosystem includes mdformat-gfm, mdformat-black, mdformat-toc, mdformat-myst, mdformat-frontmatter, and other official-doc-listed extensions.

### Sources

- <https://github.com/hukkin/mdformat#readme>
- <https://mdformat.readthedocs.io/en/stable/users/changelog.html>
- <https://mdformat.readthedocs.io/en/stable/users/configuration_file.html>
- <https://mdformat.readthedocs.io/en/stable/users/installation_and_usage.html>
- <https://mdformat.readthedocs.io/en/stable/users/plugins.html>
- <https://pypi.org/project/mdformat/>
- source_facts.package-manager


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

- Debian apt - mdformat - 0.7.22-1: normalized package name match | Debian stable package indexes: mdformat from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | CommonMark compliant Markdown formatter
- Nix - mdformat: normalized package name match | nixpkgs package indexes: pkgs/by-name/md/mdformat/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- pacman - mdformat - 1.0.0-2: normalized package name match | Arch Linux sync databases: mdformat from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | CommonMark compliant Markdown formatter | https://github.com/hukkin/mdformat


## Combined YAML source

View the package source record on GitHub. [combined/mdformat.yml](https://github.com/mxcl/pkgdb/blob/main/combined/mdformat.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
