diff --git a/doc/peaclock.1 b/doc/peaclock.1
new file mode 100644
index 0000000..315d3de
--- /dev/null
+++ b/doc/peaclock.1
@@ -0,0 +1,328 @@
+.TH PEACLOCK 1 2024-03-15 "PEACLOCK"
+.SH NAME
+peaclock \- A responsive and customizable clock, timer, and stopwatch for the terminal.
+.SH SYNOPSIS
+peaclock [--config-dir
] [--config|-u ] [] [--colour ]
+
+peaclock [--help|-h] [--colour ]
+
+peaclock [--version|-v] [--colour ]
+
+peaclock [--license] [--colour ]
+
+.SH DESCRIPTION
+Peaclock is a responsive and customizable clock, timer, and stopwatch for the terminal.
+
+The clock output changes depending on the selected mode and view. The
+mode determines the clock value, while the view determines how that value
+is presented. The clock, timer, and stopwatch modes can be displayed
+with an ascii, digital, or binary clock view. The clock can be customized
+, such as changing the width, height, colour, padding, and margin. When in
+auto size mode, the clock becomes responsive, filling up the full size of
+the terminal. The clock can also be set to conform to a specific aspect
+ratio, allowing the clock to auto resize without becoming stretched.
+
+.SH OPTIONS
+.B --colour= [auto]
+ Print the program info output with colour either on, off, or auto
+ based on if stdout is a tty.
+
+.B -u, --config= []
+ Use the commands in the config file 'file' for initialization.
+ All other initializations are skipped. To skip all initializations,
+ use the special name 'NONE'.
+
+.B --config-dir= []
+ use 'dir' as the config directory. To skip all initializations,
+ use the special name 'NONE'.
+
+.B -h, --help
+ Print the help output.
+
+.B --license
+ Print the program license.
+
+.B -v, --version
+ Print the program version.
+
+.SH COMMANDS
+.BI quit
+ quit the program
+
+.BI exit
+ quit the program
+
+.BI help
+ search or view the help output
+
+.BI mkconfig
+ create 'file' and write the current config settings to it
+
+.BI mkconfig!
+ overwrite or create 'file' and write the current config settings
+ to it
+
+.BI mode
+ clock
+ the view will display the current time
+
+ timer
+ the view will display the timer
+
+ stopwatch
+ the view will display the stopwatch
+
+.BI view
+ date
+ display only the date
+
+ ascii
+ display the ascii clock with the date
+
+ digital
+ display the digital clock with the date
+
+ binary
+ display the binary clock with the date
+
+ icon
+ display the icon with the date
+
+.BI stopwatch
+ clear
+ clear the stopwatch
+
+ stop
+ stop the stopwatch
+
+ start
+ start the stopwatch
+
+ 00h:00m:00s
+ set the initial start time
+
+.BI timer
+ clear
+ clear the timer to the initial value
+
+ stop
+ stop the timer
+
+ start
+ start the timer
+
+ 00h:00m:00s
+ set the initial start time
+
+.BI rate-input
+ set the duration in milliseconds between reading user input
+
+.BI rate-refresh
+ set the duration in milliseconds between redrawing the output
+
+.BI rate-status
+ set the duration in milliseconds to display status messages
+
+.BI locale
+ set the locale, for example 'en_CA.utf8', an empty string clears
+ the value
+
+.BI timezone
+ set the timezone, for example 'America/Vancouver', an empty string
+ clears the value
+
+.BI date
+ set the date format string, an empty string clears the value
+
+.BI fill
+ set the string value used to fill the active, inactive, and colon
+ blocks of the clock, an empty string clears the value
+
+.BI fill-active
+ set the string value used to fill the active blocks of the clock, an
+ empty string clears the value
+
+.BI fill-inactive
+ set the string value used to fill the inactive blocks of the clock,
+ an empty string clears the value
+
+.BI fill-colon
+ set the string value used to fill the colon blocks of the clock, an
+ empty string clears the value
+
+.BI timer-exec
+ set the string value to be executed by a shell upon timer completion,
+ an empty string clears the value
+
+.BI toggle
+ block
+ adjust x y block with hjkl
+
+ padding
+ adjust x y padding with hjkl
+
+ margin
+ adjust x y margin with hjkl
+
+ ratio
+ adjust x y ratio with hjkl
+
+ active-fg
+ adjust hsl active-fg with hjkl;'
+
+ inactive-fg
+ adjust hsl inactive-fg with hjkl;'
+
+ colon-fg
+ adjust hsl colon-fg with hjkl;'
+
+ active-bg
+ adjust hsl active-bg with hjkl;'
+
+ inactive-bg
+ adjust hsl inactive-bg with hjkl;'
+
+ colon-bg
+ adjust hsl colon-bg with hjkl;'
+
+ background
+ adjust hsl background with hjkl;'
+
+ date
+ adjust hsl date with hjkl;'
+
+.BI block
+ x y
+ set the x y block size, the width and height of an individual block
+ composing the clock
+
+.BI block-x
+ set the x block size
+
+.BI block-y
+ set the y block size
+
+.BI padding
+ x y
+ set the x y padding size, the width and height of the space
+ between each individual block composing the clock
+
+.BI padding-x
+ set the x padding size
+
+.BI padding-y
+ set the y padding size
+
+.BI margin
+ x y
+ set the x y margin size, the space around the outside of the
+ clock from the edge of the terminal
+
+.BI margin-x
+ set the x margin size
+
+.BI margin-y
+ set the y margin size
+
+.BI ratio
+ x y
+ set the x y ratio size, auto adjust the clock to conform to a
+ specific aspect ratio, keep in mind that a square ratio would be
+ '2 1' due to a terminal character cell having a height around
+ twice the size of its width
+
+.BI ratio-x
+ set the x ratio size
+
+.BI ratio-y
+ set the y ratio size
+
+.BI date-padding
+ set the padding size between the date and the clock
+
+.BI set
+ hour-24
+ use 24 hour time
+
+ seconds
+ display seconds
+
+ date
+ display the date
+
+ auto-size
+ auto size the clock to fill the screen, overrides the current
+ x y block size
+
+ auto-ratio
+ auto size the clock to use the aspect ratio set by the command
+ 'ratio', overrides the current x y block size and auto-size
+
+.BI style <#000-#fff|#000000-#ffffff|0-255|Colour|reverse|clear>
+ active-fg
+ set the style of the text set by the command 'fill' used to draw
+ active blocks in the clock
+
+ inactive-fg
+ set the style of the text set by the command 'fill' used to draw
+ inactive blocks in the clock
+
+ colon-fg
+ set the style of the text set by the command 'fill-colon' used to
+ draw colon blocks in the clock
+
+ active-bg
+ set the style of the background used to draw active blocks in the
+ clock
+
+ inactive-bg
+ set the style of the background used to draw inactive blocks in
+ the clock
+
+ colon-bg
+ set the style of the background used to draw colon blocks in the
+ clock
+
+ background
+ set the style of the background
+
+ date
+ set the style of the date
+
+ text
+ set the style of the text used in the command prompt
+
+ prompt
+ set the style of the command prompt symbol shown at the start of
+ the line
+
+ success
+ set the style of the prompt status on success
+
+ error
+ set the style of the prompt status on error
+
+.SH COLOUR
+The following is a list of 4-bit colours that can be used with
+the q'style' command.
+ black [bright]
+ red [bright]
+ green [bright]
+ yellow [bright]
+ blue [bright]
+ magenta [bright]
+ cyan [bright]
+ white [bright]
+
+.SH REPOSITORY
+https://github.com/octobanana/peaclock.git
+
+.SH HOMEPAGE
+https://octobanana.com/software/peaclock
+
+.SH META
+The version format is 'major.minor.patch (day.month.year)'.
+
+.SH AUTHOR
+Brett Robinson (octobanana)
+.", Alok Desai (zoddtheimmortal)