How to Install and Use presenterm in Linux for Terminal-Based Markdown Presentations

When delivering technical presentations, software demos, or engineering talks, context switching between browser slides and terminal commands can disrupt audience focus. presenterm is a modern, terminal-based slide deck presentation tool written in Rust. It compiles straightforward Markdown documents into rich, interactive terminal presentations featuring syntax-highlighted code blocks, animated transitions, embedded images, LaTeX equations, and live code execution directly within the terminal shell.

Key Capabilities of presenterm

Compared to conventional slide applications or basic CLI display tools, presenterm provides extensive presentation-grade features:

  • Pure Markdown Authoring: Slides are authored in clean, version-controllable Markdown separated by standard horizontal rules (---).
  • Syntax Highlighting & Line Numbers: Integrates native syntax highlighting across dozens of programming languages with precise line highlighting.
  • Terminal Image Rendering: Displays graphics and diagrams natively using Kitty, iTerm2, Sixel, or ASCII rendering protocols.
  • Dynamic Slide Pauses: Incremental bullet revelation and step-by-step animations triggered using standard pause comments (<!-- pause -->).
  • Built-in Theming: Includes sleek dark and light themes (such as Catppuccin, Gruvbox, and Dracula) with support for custom YAML styling.
  • Export to PDF: Generate distributable slide PDFs directly from your terminal session.

How to Install presenterm on Linux

You can install presenterm across popular distributions using Cargo, precompiled binaries, or package managers:

Method Terminal Command
Cargo (Rust Toolchain) cargo install presenterm
Arch Linux (AUR) yay -S presenterm
Precompiled GitHub Binary curl -sL https://github.com/mfontanini/presenterm/releases/latest/download/presenterm-x86_64-unknown-linux-gnu.tar.gz | tar xz && sudo mv presenterm /usr/local/bin/

Confirm the installation by checking the tool version:

presenterm --version

Creating Your First Markdown Presentation Deck

Create a new presentation file called demo.md using your preferred text editor:

nano demo.md

Insert the following Markdown content demonstrating slide structure, code blocks, and pause transitions:

---
title: Introduction to Modern CLI Tools
author: DevOps Engineering Team
---

# Modern Terminal Workflows

Welcome to our interactive terminal presentation.

<!-- pause -->

Key focus areas for today:
* High-concurrency shell utilities
* Syntax-highlighted file previewers
* Automated pipeline auditing

---

## Code Example: Rust Concurrency

```rust
use std::thread;

fn main() {
    let handle = thread::spawn(|| {
        println!("Worker thread running inside the terminal!");
    });
    handle.join().unwrap();
}
```

<!-- pause -->

The thread executes in isolation without blocking the main event loop.

Running the Presentation in the Terminal

To launch your presentation deck, run:

presenterm demo.md

The screen clears and renders the title slide formatted with borders and headers.

Presentation Navigation Controls

Navigate your slides seamlessly during meetings and webinars using these keybindings:

Key / Shortcut Action
Right Arrow / l / Space Advance to next step, pause, or slide.
Left Arrow / h Return to previous step or slide.
Home / g Jump immediately to the first slide.
End / G Jump immediately to the final slide.
e Execute the currently visible code block (if enabled).
q / Ctrl + C Exit presentation mode and restore the shell prompt.

Customising Presentation Themes

Switch themes dynamically from the command line without modifying your presentation source:

presenterm -t catppuccin-mocha demo.md
presenterm -t dracula demo.md

You can also embed the theme: name property in your slide deck frontmatter to lock a consistent aesthetic for your entire team.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.