# presenterm

> Terminal slideshow tool that runs markdown files as presentations, with images, themes, code highlighting and execution, and PDF/HTML export.

Stars: 8.9k · Language: Rust · License: BSD-2-Clause · Categories: Productivity

- Repository: https://github.com/mfontanini/presenterm
- Website: https://mfontanini.github.io/presenterm/
- Page: https://www.trmn.sh/tools/presenterm

## Install

- Homebrew: `brew install presenterm`

## Overview

presenterm is a terminal presentation tool. You write slides in markdown, using one or more markdown files per presentation, and run them directly in the terminal. It is a Rust tool and is packaged for Homebrew, Nix, Arch Linux, Scoop, winget and crates.io.

Slide content can include images and animated GIFs on terminals such as kitty, iterm2, wezterm, ghostty and foot. Themes control colors, margins, layout (left or center aligned content) and a per-slide footer, and several built-in themes are included. Other documented features are column layouts, font sizes on terminals that support them, an introduction slide with title and author, slide titles, slide transitions, and pauses that reveal parts of a slide step by step.

Code blocks get syntax highlighting for a wide list of languages, including selective or dynamic highlighting that shows only portions of a snippet at a time. Snippets can be executed for various languages, including inside pseudo terminals. Mermaid and d2 graphs and LaTeX and typst formulas can be rendered in slides.

Presentations can be exported to PDF and HTML. Additional features include custom key bindings, speaker notes, and automatic reload whenever the presentation file changes, which shortens the edit loop. It suits developers and conference or meetup speakers who want to author talks as plain markdown and present from a terminal.

### Installation

```bash
# via Homebrew
brew install presenterm
```

![presenterm demo presentation running in kitty](https://media.trmn.sh/cached/ce012bbc2a65327d9cf5cd1758ee09fbec85799ce10d8b082218783257a5c934.gif)

## Alternatives

- [Himalaya](https://www.trmn.sh/tools/himalaya.md): Rust CLI for managing email across IMAP, SMTP, JMAP, Gmail, Microsoft Graph and Maildir backends, with multi-account TOML config and JSON output. (Rust, 7.5k stars)
- [ncspot](https://www.trmn.sh/tools/ncspot.md): Cross-platform ncurses Spotify client written in Rust on librespot, with Vim keybindings and an IPC socket for remote control. Requires Spotify Premium. (Rust, 6.8k stars)
- [pueue](https://www.trmn.sh/tools/pueue.md): Command-line task management tool for sequential and parallel execution of long-running shell commands (Rust, 6.4k stars)
- [Numbat](https://www.trmn.sh/tools/numbat.md): Statically typed scientific calculator language with physical dimensions as types and first-class units, with an interactive REPL and unit conversion via ->. (Rust, 2.8k stars)
- [taskwarrior-tui](https://www.trmn.sh/tools/taskwarrior-tui.md): A terminal user interface for Taskwarrior with vim-like navigation and live filtering capabilities. (Rust, 2.2k stars)

---

Canonical: https://www.trmn.sh/tools/presenterm
