mad(1) is a markdown manual page viewer
Shell Makefile
Switch branches/tags
Clone or download


mad(1) is a markdown driven manual page viewer, this makes manuals easier to write, reuse, and read.

For a newer / actively maintained thing check out tldr.

markdown man page


Usage: mad <file>


  -U, --update-self update mad(1) itself
  -u, --update      update remote mad-pages
  -v, --version     output cpm version
  -h, --help        output this help information
  -l, --list      list mad-pages


Install mad(1) and its associated mad page.

$ make install

Uninstall both mad(1) and the associated mad page.

$ make uninstall

Via npm:

$ npm install -g mad


I love man pages, however they are annoying to write by hand, and often converted from markdown anyway. mad(1) is effectively the same idea, but write your manuals in markdown like you would anyway, re-use them in your github readmes, wikis, or use markdown to HTML conversion tools.

mad(1) pipes to less(1) so you get the same paging / searching goodness that you expect from man(1).

Page repository

mad-pages is a collection of useful mad pages such as language operator precedence tables, http status codes, mime type tables etc. Use mad --update to install/re-install them.

Page lookup

Use the MAD_PATH environment variable to control where mad(1) will look for a manual page. The ".md" extension may be omitted.

For example:


The following paths will always be searched:

 - .
 - /usr/local/share/mad
 - /usr/share/mad


By default mad(1) installs and sources /usr/local/etc/mad.conf for its formatting. You may edit this file directly, or if you're scared of overwriting it when updating mad(1) you can copy this file to something like ~/mad.conf and export MAD_CONFIG=~/mad.conf.

heading: 1m
code: 90m
strong: 1m
em: 4m


Jade manual:

jade manual markdown