explaingit

mfontanini/presenterm

8,393RustAudience · developerComplexity · 2/5Setup · easy

TLDR

A command-line tool that turns Markdown files into slide presentations you run directly in your terminal, with syntax highlighting, images, live code execution, and PDF export.

Mindmap

mindmap
  root((presenterm))
    What it does
      Markdown to slides
      Runs in terminal
      Live code execution
    Content Types
      Code with highlighting
      Images and GIFs
      Math formulas
      Mermaid diagrams
    Features
      Speaker notes
      Pause reveals
      Multi-column layouts
    Export
      PDF output
      HTML output
    Audience
      Developers
      Technical speakers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Write a conference talk as a Markdown file and present it from your terminal without leaving your development environment.

USE CASE 2

Create a coding tutorial where you reveal code blocks one section at a time during a live demo in the terminal.

USE CASE 3

Export your Markdown slides to PDF or HTML to share with people who are not using a terminal.

USE CASE 4

Use speaker notes visible only to you while controlling the presentation from the same terminal.

Tech stack

Rust

Getting it running

Difficulty · easy Time to first run · 30min

Images and GIFs only render visually in compatible terminals such as Kitty, iTerm2, WezTerm, or Ghostty.

In plain English

presenterm is a command-line tool that lets you write slide presentations using Markdown, then run them directly inside your terminal window. Instead of opening a presentation app like PowerPoint or Google Slides, you write your slides as a plain text file and view them in the same terminal you work in every day. The tool is written in Rust and is available on Mac, Linux, and Windows. Slides are separated by horizontal dividers in your Markdown file, and each slide can contain regular text, images, animated GIFs, code blocks, and diagrams. Images and GIFs display as actual visuals inside terminals that support that capability, such as Kitty, iTerm2, WezTerm, Ghostty, and Foot. On other terminals they may not render visually, so the tool works best with a compatible terminal. Code blocks get proper syntax highlighting for a wide range of programming languages. You can also step through portions of a code block one section at a time, which is useful when walking an audience through code during a talk. Code can even be executed live during the presentation if you choose to enable that feature. Math formulas can be rendered using LaTeX or Typst notation, and diagrams can be drawn using Mermaid or D2 notation. The appearance of slides can be adjusted through themes, which control colors, fonts, margins, and layout. Several built-in themes are included so you do not need to create one from scratch. A footer can appear on every slide, and you can define an introduction slide showing your name and the presentation title. Other practical features include speaker notes that only you can see, automatic reloading when you save changes to the file, custom keyboard shortcuts, multi-column slide layouts, pause points that reveal content step by step, and exporting slides to PDF or HTML for sharing. The project includes a demo presentation and a set of example files to help you get started.

Copy-paste prompts

Prompt 1
Create a Markdown presentation file for presenterm on the topic of [topic] with 5 slides, syntax-highlighted code blocks, and speaker notes on each slide.
Prompt 2
Show me how to configure a custom theme in presenterm to change slide background color, font size, and margin widths.
Prompt 3
Write a presenterm slide that walks through a Python function step by step, revealing one code section at a time using pause points.
Prompt 4
How do I add a Mermaid diagram and a LaTeX math formula to a presenterm slide, and configure a footer showing the slide number?
Open on GitHub → Explain another repo

← mfontanini on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.