# Install mandoc with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, scoop, zypper

UNIX manpage compiler toolset. Version 1.14.6 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:mandoc
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install mandoc
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install mandoc
```

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

### Linux

- apk (92%):

```sh
sudo apk add mandoc
```

  Evidence: Alpine Linux edge package indexes: mandoc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install mandoc
```

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

- dnf (92%):

```sh
sudo dnf install libmandoc-devel
```

  Evidence: Fedora Rawhide package metadata: libmandoc-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#mandoc
```

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

- pacman (92%):

```sh
sudo pacman -S mandoc
```

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

- zypper (92%):

```sh
sudo zypper install mandoc
```

  Evidence: openSUSE Tumbleweed package metadata: mandoc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install main/mandoc
```

  Evidence: Scoop official bucket manifest trees: bucket/mandoc.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:mandoc
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/mandoc>
- **Version:** 1.14.6
- **Source summary:** UNIX manpage compiler toolset
- **Homepage:** <https://mandoc.bsd.lv/>
- **Repository:** <https://mandoc.bsd.lv/cgi-bin/cvsweb/mandoc>
- **Upstream docs:** <https://mandoc.bsd.lv/>
- **License:** ISC
- **Source archive:** <https://mandoc.bsd.lv/snapshots/mandoc-1.14.6.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- bsdapropos (cli)
- bsdmakewhatis (cli)
- bsdman (cli)
- bsdsoelim (cli)
- bsdwhatis (cli)
- demandoc (cli)
- mandoc (cli)
- bsdapropos (alias)
- bsdmakewhatis (alias)
- bsdman (alias)
- bsdsoelim (alias)
- bsdwhatis (alias)
- demandoc (alias)
- mandoc (alias)

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.14.6
- Local data: ok
- Upstream repository: https://mandoc.bsd.lv/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

mandoc is a small, ISC-licensed Unix manual-page compiler toolset. Its official site describes it as compiling `mdoc`, `man`, and related roff manual sources to terminal output, HTML 5, PostScript, and PDF, with development centered on OpenBSD and BSD.lv.

### Project history

The mandoc development history traces the project through the older `mdocml` name and rapid 2009 development by Kristaps Dzonsons, including releases around March and April 2009 and OpenBSD integration work. The `mandoc` name replaced `mdocterm` in March 2009, and the tool became closely associated with OpenBSD integration after cooperation between Kristaps Dzonsons and Ingo Schwarze.

The mandoc utility first appeared in OpenBSD 4.8. Over time it grew from a focused `mdoc` formatter into a broader toolset including `mandoc`, `man`, `apropos`, `makewhatis`, `catman`, `demandoc`, CGI support, database support, linting, HTML output, markdown output for `mdoc`, and related developer-facing libraries.

### Adoption history

The official packages and ports page records broad adoption across BSDs and Linux distributions. OpenBSD bundled mandoc in the base system in 2010 and made it the default formatter, searcher, and viewer over later milestones; FreeBSD, NetBSD, DragonFly BSD, illumos, macOS, Alpine, Void, Debian, Ubuntu, Fedora, openSUSE, Gentoo, NixOS, and others have packages or integrations.

That adoption matters because mandoc is not just another formatter: on several systems it replaces or complements groff/man-db for everyday `man` and `apropos` usage, making it part of the base documentation experience.

### How it is used

At the CLI, `mandoc` reads `mdoc` or `man` input from files or stdin, auto-detects the language, and formats it for terminal display or other outputs. Output modes include ASCII, locale, UTF-8, HTML, man, markdown for `mdoc`, PDF, PostScript, and parse-tree output.

The `man.conf` manual documents `/etc/man.conf` as the configuration file for the mandoc-family `man`, `apropos`, and `makewhatis` utilities. Its directives can set manual search paths and output options, and the file is optional.

### Why package nerds care

mandoc is significant to package maintainers because it is a lean alternative to full troff/groff stacks for manual-page rendering and validation. It is small, fast, portable C, and its linting helps find bad manual-page markup before packages ship.

It also has practical downstream impact: whether a system uses mandoc, man-db, groff, or a combination changes man-page rendering, HTML generation, apropos databases, and default configuration files.

### Timeline

- 2009: `mdocterm` was renamed to `mandoc` during early development.
- 2009: OpenBSD imported mandoc 1.7.12 and began closer integration work.
- 2010: mandoc first appeared in OpenBSD 4.8.
- 2014: OpenBSD switched man(1) to the mandoc implementation.
- 2017: mandoc 1.14.2 added `-Tmarkdown` and other features.
- 2021: mandoc 1.14.6 was released with improved tagging and a new `mdoc(7)` macro.

### Related projects

- mandoc is closely related to OpenBSD manual infrastructure, BSD.lv, `mdoc`, `man`, `roff`, `tbl`, `eqn`, `apropos`, and `makewhatis`.
- It is often compared with groff and man-db, and it powers or influences several manual-page web and package documentation tools.

### Sources

- <https://mandoc.bsd.lv/>
- <https://mandoc.bsd.lv/devhistory.html>
- <https://mandoc.bsd.lv/man/man.conf.5.html>
- <https://mandoc.bsd.lv/man/mandoc.1.html>
- <https://mandoc.bsd.lv/ports.html>


## 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: /etc/man.conf
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** mandoc
- **Aliases:** mdocml
- **Version Scheme:** 0
- **Revision:** 1
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - mandoc - 1.14.6-4: normalized package name match | Debian stable package indexes: mandoc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | BSD manpage compiler toolset | https://mandoc.bsd.lv
- Nix - mandoc: normalized package name match | nixpkgs package indexes: pkgs/by-name/ma/mandoc/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - mandoc - 1.14.6-1: normalized package name match | Ubuntu 24.04 LTS package indexes: mandoc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | BSD manpage compiler toolset | http://mdocml.bsd.lv/
- apk - mandoc - 1.14.6-r15: normalized package name match | Alpine Linux edge package indexes: mandoc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | mandoc (formerly mdocml) UNIX manpage compiler toolset | https://mandoc.bsd.lv/
- apk - mandoc-apropos - 1.14.6-r15: normalized package name match | Alpine Linux edge package indexes: mandoc-apropos from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | makewhatis/whatis and apropos tools and index | https://mandoc.bsd.lv/
- apk - mandoc-dev - 1.14.6-r15: normalized package name match | Alpine Linux edge package indexes: mandoc-dev from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | mandoc (formerly mdocml) UNIX manpage compiler toolset (development files) | https://mandoc.bsd.lv/
- apk - mandoc-doc - 1.14.6-r15: normalized package name match | Alpine Linux edge package indexes: mandoc-doc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | mandoc (formerly mdocml) UNIX manpage compiler toolset (documentation) | https://mandoc.bsd.lv/
- apk - mandoc-soelim - 1.14.6-r15: normalized package name match | Alpine Linux edge package indexes: mandoc-soelim from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | so elimination tool | https://mandoc.bsd.lv/
- dnf - libmandoc-devel - 1.14.6-13.fc44: normalized package name match | Fedora Rawhide package metadata: libmandoc-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development libraries and headers for libmandoc | https://mandoc.bsd.lv/
- dnf - mandoc - 1.14.6-13.fc44: normalized package name match | Fedora Rawhide package metadata: mandoc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | A suite of tools for compiling mdoc and man | https://mandoc.bsd.lv/
- pacman - mandoc - 1.14.6-5: normalized package name match | Arch Linux sync databases: mandoc from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | A suite of tools compiling mdoc from the OpenBSD project | https://mdocml.bsd.lv
- zypper - mandoc - 1.14.6-7.3: normalized package name match | openSUSE Tumbleweed package metadata: mandoc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | UNIX manpage compiler | http://mandoc.bsd.lv/
- zypper - mandoc-bin - 1.14.6-7.3: normalized package name match | openSUSE Tumbleweed package metadata: mandoc-bin from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Format manual pages | http://mandoc.bsd.lv/
- MacPorts - mandoc: normalized package name match | MacPorts ports tree: textproc/mandoc/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - main/mandoc: normalized package name match | Scoop official bucket manifest trees: bucket/mandoc.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [man-db](https://www.automicvault.com/pkg/brew/man-db/) - Shares av.db curated category or tags: cli, documentation, man-pages, manual-pages, system.
- [man2html](https://www.automicvault.com/pkg/brew/man2html/) - Shares av.db curated category or tags: cli, documentation, man-pages, manual-pages, system.
- [acpica](https://www.automicvault.com/pkg/brew/acpica/) - Shares av.db curated category or tags: cli, compiler, system.
- [bash](https://www.automicvault.com/pkg/brew/bash/) - Shares av.db curated category or tags: cli, system, unix.
- [bork](https://www.automicvault.com/pkg/brew/bork/) - Shares av.db curated category or tags: cli, system, unix.
- [cups](https://www.automicvault.com/pkg/brew/cups/) - Shares av.db curated category or tags: cli, system, unix.
- [daemon](https://www.automicvault.com/pkg/brew/daemon/) - Shares av.db curated category or tags: cli, system, unix.
- [daemonize](https://www.automicvault.com/pkg/brew/daemonize/) - Shares av.db curated category or tags: cli, system, unix.

## Combined YAML source

View the package source record on GitHub. [combined/mandoc.yml](https://github.com/automic-vault/db/blob/main/combined/mandoc.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
