mdp is a command-line program that allows you to make elegant presentations from markdown formattedFILEs.
It is as easy as write your presentation content in the text editor of your preference and launch the presentation from the command-line.
Options
Input Control
FILE
The input file from which the presentation is read. If no file is specified, or if the file name is -, the presentation is read from standard input.
Output Control
-c, --nocodebg
Don't change the background color of code blocks.
-e, --expand
Enable character entity expansion (e.g. '>' becomes '>').
-f, --nofade
Disable color fading in 256 color mode.
-i, --invert
Swap black and white color.
-j N, --jump N
Jump to slide number N.
-L N, --left-indent N
Shift slide content by N columns to the right.
-s, --noslidenum
Do not show slide number at the bottom.
-T N, --top-indent N
Shift slide content by N rows down.
-t, --notrans
Disable transparency in transparent terminal.
-x, --noslidemax
Show slide number, but not total number of slides.
Miscellaneous Options
-d, --debug
Enable debug messages on STDERR. Add multiple times to increases debug level.
-h, --help
Display usage message and exit.
-v, --version
Display version and license information.
Environment
Output Control
MDP_LIST_HEAD[1-3], MDP_LIST_OPEN[1-3]
Controls the list characters of unordered lists.
The default is equivalent to: MDP_LIST_OPEN1=' | ' MDP_LIST_OPEN2=' | ' MDP_LIST_OPEN3=' | ' MDP_LIST_HEAD1=' +- ' MDP_LIST_HEAD2=' +- ' MDP_LIST_HEAD3=' +- '
Markdown formatting
For a complete list of supported markups, refer the sample presentation (sample.md) provided alongside mdp, or online available at https://github.com/visit1985/mdp.
Slides
The input FILE is split into multiple slides by horizontal rules. Each consisting of at least 3 --- or *** characters on a single line. This line must be prefixed by an completely empty line. It can also contain spaces but no other characters.
If any slide is too large to fit into your current screen, an error message will be displayed at the moment the presentation is launched.
Line-by-Line Mode
Block-by-Block Mode
A single <br>, <BR> or ^ on an otherwise empty line signals mdp to stop output of the current slide (stop point) and wait for a key-press by the user.
This enables the user to display bullet points or list items one by one (line by line) or block by block.
Headers
mdp supports metadata lines at the top of the input file in the form [KEY]:[VALUE]. The first metadata entry is used as the title, and repeated footer: entries are used for the lower bar. If only one footer value is given, it is centered when slide numbers are hidden. For example:
<!--
title: Example Presentation
footer: Someone
footer: 2026-01-01
-->
Legacy metadata is also accepted as %title:,%author:,%date: lines at the top of the input file. The old %author: and %date: labels are treated as the first and second footer values respectively. HTML comments may be used to hide those metadata lines from the slide deck, and the comment metadata does not require % prefixes.
Headers are only recognized at the top of the input FILE.
Line spanning markup
Supported are headlines, code blocks, quotes and unordered lists.
In-line markup
As well as bold text, underlined text and in-line code.
Color support
Most terminals are able to display 256 colors these days. But some of them enable only 16 colors by default. To enjoy mdp's full capabilities, these terminals need to be signaled to enable 256 color mode. This is usually done by setting the TERM environment variable.
--jump since Arch Linux 2026-11-01;
--left-indent since Arch Linux 2026-11-01;
--nocodebg since Arch Linux 2026-11-01;
--noslidemax since Arch Linux 2026-11-01;
--noslidenum since Arch Linux 2026-11-01;
--top-indent since Arch Linux 2026-11-01;
-L since Arch Linux 2026-11-01;
-T since Arch Linux 2026-11-01;
-c since Arch Linux 2026-11-01;
-j since Arch Linux 2026-11-01;
-s since Arch Linux 2026-11-01;
-x since Arch Linux 2026-11-01.