--- /dev/null
+.TH UTF8 "1" "January 2022" "FLL - UTF8 0.6.3" "User Commands"
+.SH NAME
+utf8 \- Convert to byte sequences to or from Unicode codepoints.
+.SH SYNOPSIS
+.B utf8
+[\fI\,OPTIONS\/\fR] [\fI\,CHARACTERS\/\fR]
+.SH DESCRIPTION
+.PP
+The default behavior is to assume the expected input is byte sequences from the command line to be output to the screen as codepoints.
+
+Multiple input sources are allowed but only a single output destination is allowed.
+
+When using the parameter '\fB\-\-verify\fR', no data is printed and 0 is returned if valid or 1 is returned if invalid.
+
+When using the parameter '\fB\-\-to_combining\fR' with the parameter '\fB\-\-to_width\fR', the '\fBC\fR' character is printed to represent the combining and the digits are used to represent widths.
+The combining characters should be considered 1-width by themselves or 0-width when combined.
+
+.SH OPTIONS
+.TP
+\fB\{+h, ++help\fR
+Print the help message.
+.TP
+\fB+d, ++dark\fR
+Output using colors that show up better on dark backgrounds
+.TP
+\fB+l, ++light\fR
+Output using colors that show up better on light backgrounds.
+.TP
+\fB+n, ++no_color\fR
+Do not print using color.
+.TP
+\fB+Q, ++quiet\fR
+Decrease verbosity, silencing most output.
+.TP
+\fB+E, ++error\fR
+Decrease verbosity, using only error output.
+.TP
+\fB+N, ++normal\fR
+Set verbosity to normal.
+.TP
+\fB+V, ++verbose\fR
+Increase verbosity beyond normal output.
+.TP
+\fB+D, ++debug\fR
+Enable debugging, significantly increasing verbosity beyond normal output.
+.TP
+\fB+v, ++version\fR
+Print only the version number.
+.TP
+\fB+F, ++line_first_no\fR
+Disable printing of first line.
+.TP
+\fB+L, ++line_last_no\fR
+Disable printing of last line.
+.TP
+\fB\-b, \-\-from_bytesequence\fR
+The expected input format is byte sequence (character data).
+.TP
+\fB\-c, \-\-from_codepoint\fR
+The expected input format is codepoint (such as U+0000).
+.TP
+\fB\-f, \-\-from_file\fR
+Use the given file as the input source.
+.TP
+\fB\-B, \-\-to_bytesequence\fR
+The output format is byte sequence (character data).
+.TP
+\fB\-C, \-\-to_codepoint\fR
+The output format is codepoint (such as U+0000).
+.TP
+\fB\-O, \-\-to_combining\fR
+The output format is to print whether or not character is combining or not.
+.TP
+\fB\-F, \-\-to_file\fR
+Use the given file as the output destination.
+.TP
+\fB\-W, \-\-to_width\fR
+The output format is to print the width of a character (either 0, 1, or 2).
+.TP
+\fB\-H, \-\-headers\fR
+Print headers for each section (pipe, file, or parameter).
+.TP
+\fB\-S, \-\-separate\fR
+Separate characters by newlines (implied when printing headers).
+.TP
+\fB\-s, \-\-strip_invalid\fR
+Strip invalid Unicode characters (do not print invalid sequences).
+.TP
+\fB\-v, \-\-verify\fR
+Only perform verification of valid sequences.
+.SH CHARACTERS
+.TP
+Any number of characters representing either Unicode codepoints or byte sequences.
+.SH AUTHOR
+Written by Kevin Day.
+.SH COPYRIGHT
+.PP
+Copyright \(co 2023 Kevin Day, GNU LGPL Version 2.1 or later.