# presenterm — Terminal Slideshow Presentations from Markdown > A fast terminal-based presentation tool written in Rust that renders Markdown slides with syntax highlighting, images, and themes. ## Install Save as a script file and run: # presenterm — Terminal Slideshow Presentations from Markdown ## Quick Use ```bash cargo install presenterm # or via Homebrew brew install presenterm ``` ```bash presenterm slides.md ``` ## Introduction presenterm is a terminal-based slideshow tool written in Rust that renders Markdown files as presentations directly in your terminal. It supports syntax-highlighted code blocks, images (via terminal protocols), LaTeX formulas, and customizable themes. ## What presenterm Does - Renders Markdown files as terminal slideshows with slide separators and incremental reveals - Displays syntax-highlighted code blocks in 50+ languages with optional line-by-line highlighting - Shows images inline using kitty, iTerm2, or sixel terminal protocols - Renders LaTeX math formulas using typst as a backend - Supports speaker notes, slide transitions, and presentation export to PDF ## Architecture Overview presenterm parses a Markdown file, splits it on configurable slide separators (default: `---`), and processes each slide into a sequence of render operations. The rendering engine measures terminal dimensions and lays out text, code blocks, images, and other elements. It uses crossterm for terminal manipulation and syntect for syntax highlighting. Image rendering auto-detects the terminal protocol. Themes are defined in YAML and control colors, margins, alignment, and code block styling. ## Self-Hosting & Configuration - Install via cargo, Homebrew, nix, or download prebuilt binaries for Linux, macOS, and Windows - Write slides in standard Markdown with `---` as slide separators - Customize themes by creating YAML files in `~/.config/presenterm/themes/` - Enable image display by using a terminal that supports kitty graphics, iTerm2 inline images, or sixel - Export presentations to PDF with `presenterm --export-pdf slides.md` ## Key Features - No browser or GUI needed — runs entirely in the terminal over SSH or locally - Hot-reload mode watches the Markdown file and updates slides on save - Code execution lets you run code blocks live during a presentation - Incremental lists and pause commands for step-by-step reveals - Column layouts, tables, and Mermaid diagram rendering for rich content ## Comparison with Similar Tools - **Slidev** — Vue-based browser slides; presenterm runs in the terminal with no web stack - **Marp** — Markdown-to-slide converter for HTML/PDF; presenterm is a live terminal presenter - **reveal.js** — HTML presentation framework; presenterm targets developers who prefer the terminal - **Lookatme** — Python terminal presentation tool; presenterm is faster (Rust) with broader feature set - **mdp** — Minimal terminal Markdown presenter; presenterm adds images, themes, and code execution ## FAQ **Q: Which terminals support image display?** A: Kitty, iTerm2, WezTerm, and any terminal supporting the sixel protocol. Text-only terminals skip images gracefully. **Q: Can I use custom fonts or colors?** A: Colors and styling are controlled via YAML themes. Font rendering depends on your terminal emulator. **Q: Does it work over SSH?** A: Yes. Since it runs in the terminal, you can present from a remote machine via SSH. Image support depends on the client terminal. **Q: Can I export slides to PDF?** A: Yes. Use `--export-pdf` to render slides to a PDF file using a headless terminal renderer. ## Sources - https://github.com/mfontanini/presenterm - https://mfontanini.github.io/presenterm/ --- Source: https://tokrepo.com/en/workflows/asset-1281cafa Author: Script Depot