

Last updated on December 14, 2020 by Dan Nanni

When you prepare a talk for audience, the first thing that will probably come to your mind is shiny presentation charts filled with fancy diagrams, graphics and animation effects. Fine. No one can deny the power of visually charming presentation. However, not all presentations need to be Ted talk quality. Often times, the purpose of a presentation is to convey specific information, which can easily be done with textual messages. In such cases, your time can be better spent on gathering information and checking facts, rather than searching for good-looking graphics from Google Image.

In the world of Linux, you can do presentation in several different ways, e.g., Impress for multimedia-rich content, Impress.js for stunning visualization, Beamer for hardcore LaTex users, and so on. If you are looking for a simple means to create and show a textual presentation, look no further. mdp can get the job done for you.

What is Mdp?

mdp is an ncurses-based command-line presentation tool for Linux. What I like about mdp is its markdown support, which makes it easy to create slides with familiar markdown format. Naturally, it becomes painless to publish the slides in HTML format as well. Another plus is its support for UTF-8 character encoding, which comes in handy when showing non-English characters (e.g., Greek or Cyrillic alphabets).

Install mdp on Linux

Installation of mdp is mostly painless due to its light dependency requirement (i.e., ncursesw).

For Debian, Ubuntu or Their Derivatives:

$ sudo apt-get install git gcc make libncursesw5-dev
$ git clone
$ cd mdp
$ make
$ sudo make install

For Fedora, CentOS or RHEL:

$ sudo yum install git gcc make ncurses-devel
$ git clone
$ cd mdp
$ make
$ sudo make install

For Arch Linux:

On Arch Linux, you can easily install mdp from AUR.

Create a Presentation from the Command Line

Once you installed mdp, you can easily create a presentation by using your favorite text editor. If you are familiar with markdown, it will take no time to master mdp. For those of you who are not familiar with markdown, starting with an example is the best way to learn mdp.

Here is a 6-page sample presentation for your reference.

%title: Sample Presentation made with mdp (
%author: Dan Nanni
%date: 2015-01-28

-> This is a slide title <-

-> mdp is a command-line based presentation tool with markdown support. <-


* Multi-level headers
* Code block formatting
* Nested quotes
* Nested list
* Text highlight and underline
* Citation
* UTF-8 special characters


-> # Example of nested list <-

This is an example of multi-level headers and a nested list.

# first-level title


- *item 1*
    - sub-item 1
        - sub-sub-item 1
        - sub-sub-item 2
        - sub-sub-item 3
    - sub-item 2


-> # Example of code block formatting <-

This example shows how to format a code snippet.

    1  /* Hello World program */
    3  #include <stdio.h>
    5  int main()
    6  {
    7     printf("Hello World");
    8     return 0;
    9  }

This example shows inline code: `sudo reboot`


-> # Example of nested quotes <-

This is an example of nested quotes.

# three-level nested quotes

> This is the first-level quote.
>> This is the second-level quote
>> and continues.
>>> *This is the third-level quote, and so on.*


-> # Example of citations <-

This example shows how to place a citation inside a presentation.

This tutorial is published at [Xmodulo](

You are welcome to connect with me at [LinkedIn](

Pretty cool, huh?


-> # Example of UTF-8 special characters <-

This example shows UTF-8 special characters.

ae = ä, oe = ö, ue = ü, ss = ß
alpha = α, beta = β, upsilon = Ʊ, phi = ɸ
Omega = Ώ, Delta = Δ, Sigma = Σ


Show a Presentation from the Command Line

Once you save the above code as text file, you can show the presentation by simply running:

$ mdp

You can navigate the presentation by pressing Enter/Space/Page-Down/Down-Arrow (next slide), Backspace/Page-Up/Up-Arrow (previous slide), Home (first slide), End (last slide), or numeric-N (N-th slide).

The title of the presentation appears on top of each slide, and your name and page number are shown at the bottom.

This is an example of a nested list and multi-level headers.

This is an example of a code snippet and inline code.

This is an example of nested quotes.

This is an example of placing citations.

This is an example of UTF-8 special characters.


In this tutorial, I showed you how to use mdp to create and show a presentation from the command line. Its markdown compatibility saves us the trouble and hassle of having to learn any new formatting, which is an advantage compared to tpp, another command-line presentation tool. Due to its limited command line interface, mdp may not qualify as your default presentation tool, but definitely there should be enough use cases for this nifty tool. What do you think of mdp? Do you prefer something else?

Support Xmodulo



Xmodulo © 2021 ‒ AboutWrite for UsFeed ‒ Powered by DigitalOcean