Skip to content

Generate man pages

usage generate manpage renders a spec as roff, the format man reads. g and man are the short aliases, and without -o the page goes to stdout:

bash
usage g man -f ./mycli.usage.kdl -o mycli.1

On Linux, pipe the result into man to preview it:

bash
usage g man -f ./mycli.usage.kdl | man -l -

On macOS, generate the file and open it with man ./mycli.1.

Installing

Install the page in a directory on the target system's manual search path. For example, on Linux with man-db, install a locally managed page and refresh the index:

bash
usage generate manpage --file ./mycli.usage.kdl --out-file mycli.1
sudo install -Dm644 mycli.1 /usr/local/share/man/man1/mycli.1
sudo mandb
man mycli

Sections

The page is section 1, user commands, unless --section says otherwise:

bash
usage g man -f ./myconfig.usage.kdl --section 5 -o myconfig.5
SectionContents
1User commands (default)
5File formats and conventions, such as a page about the config file
7Miscellaneous: overviews and conventions
8System administration commands and daemons

What the page contains

The spec's about and long help become NAME and DESCRIPTION, its flags and subcommands become OPTIONS and COMMANDS, and any example nodes become EXAMPLES:

mycli(1)                    General Commands Manual                   mycli(1)

NAME
       mycli - description of your CLI tool

SYNOPSIS
       mycli [OPTIONS] <COMMAND>

DESCRIPTION
       Detailed description of your CLI tool...

OPTIONS
       -h, --help
              Print help information

       -v, --verbose
              Enable verbose output

COMMANDS
       install
              Install a plugin

       list
              List installed plugins

EXAMPLES
       Install a plugin:

           mycli install my-plugin

AUTHOR
       Your Name <your.email@example.com>
MIT LicenseCopyright © 2026jdx.dev