Is there any CLI/terminal slideshow app?

Okay, several things here:

  1. You're not even remotely the only person that wants something like this (I've been looking for a good one for a while now).

  2. There are a couple of projects out there that attempt to fill this niche but none of the ones I have found are quite as simple to use as I'd hoped.


Big Update!

It looks like there is a wonderful soul out there that has finally accomplished nearly the perfect setup!

patat is a terminal presentation tool written in Haskell which uses pandoc to parse the slides. This means that you can use nearly any format you might want for the slides (markdown, reStructuredText, LaTeX, etc.)!


The closest project I have found to meeting this need is tpp. Tpp (Text Presentation Program) allows you to create presentation slides from Ruby and then run through them in a presentation format through ncurses.

You may also find tkn (Terminal Keynote) to be a helpful project. The slides are also written in Ruby, but there appears to be much less markup required to write the slides themselves, so it may be simpler to use.

And, to my surprise, there is a third Ruby-based project, slider, which also attempts to fill this niche. Slider seems less flexible than either tpp or tkn, but perhaps it would better suit your needs.

There is also a vim plugin, posero, but it seems rather limited.

If you're willing to invest a little effort in figuring out some spacing. You could actually use LaTeX to generate some files. You could either use latex2man to generate a man page, which you could then present using whatever pager you would like; or, if you are still interested in presenting using a text-based web-browser, you could use latex2html to generate the web page(s).


Personally, I would love to see a project that used a format compatible with something like pandoc so that users could write slides in anything (e.g., LaTeX) and then generate the presentation without much extra effort. But, to-date, I have yet to find such a mythical tool (I may end up breaking down and writing one myself).

In the meantime, if these projects are too much for your goal (or are just too difficult to work with), writing an HTML slideshow (using links to another page as slide transitions) and then presenting using a text-based web browser is a good fall-back (just as Stéphane pointed out).


Big update! I think I finally found a project that could meet almost all these goals. It's still not LaTeX-based, but it uses Markdown slides (a significant improvmement over having to code the slides directly with Ruby). mdp, written in C, allows you to create a simple markdown file and display it with transitions and fairly strong support for basic formatting. It's not entirely perfect, but it's much better than any of the other projects I've seen so far.


You've got a few options:

vimdeck

Uses Markdown, ASCII-art-ifies header text and even images. Code highlighting. vimdeck

mdp

Markdown, Vim-like keybindings. Fancy transitions. mdp

vtmc

Each slide is a text file, custom format. vtmc

tkn

Slides are written in Ruby. ANSI escape sequences for color. Cute sections. tkn

tiptip

CoffeeScript. Seems to produce color. No image, sorry.


The popular vimdeck project allows you to write your slides in markdown and display them in vim.

Some of its interesting features include the following:

  • Parsing a single markdown file into multiple presentation slides
  • Providing syntax highlighting for various programming languages (if your slides happen to include code snippets)
  • Automatically converting H1 and H2 tags to ASCII art
  • Even automatically converting images to ASCII art!

I recommend that you check out the screenshots and give it a try if it appears to fit your use case.