# mfontanini/presenterm

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mfontanini-presenterm).**

7,852 stars · 172 forks · Rust · bsd-2-clause

## Links

- GitHub: https://github.com/mfontanini/presenterm
- Homepage: https://mfontanini.github.io/presenterm/
- awesome-repositories: https://awesome-repositories.com/repository/mfontanini-presenterm.md

## Topics

`cli` `markdown` `markdown-slides` `presentation` `rust` `slides` `slideshow` `terminal`

## Description

Presenterm is a CLI presentation framework and tool used to create interactive slide decks directly in the terminal. It functions as a Markdown slide renderer, transforming Markdown files into formatted terminal presentations with support for synchronized speaker notes and custom YAML themes.

The project distinguishes itself through a built-in terminal code executor that runs code snippets live during a presentation, replacing source blocks with real-time output. It also features a terminal image renderer capable of displaying local images, animated GIFs, and pre-rendered diagrams or mathematical formulas using various graphics protocols.

The framework covers a broad range of capabilities, including multi-column layouts, syntax highlighting, and incremental content reveal. It provides a full styling system via YAML themes and supports a developer workflow with live reloading and synchronized dual-terminal views.

Presentations are authored in Markdown and can be exported to PDF and HTML formats.

## Tags

### Software Engineering & Architecture

- [Code Execution Engines](https://awesome-repositories.com/f/software-engineering-architecture/code-execution-engines.md) — Implements a system to execute code snippets live and render their output directly within the presentation slides.
- [External Content Inclusions](https://awesome-repositories.com/f/software-engineering-architecture/external-content-handlers/external-content-inclusions.md) — Allows organizing source material across multiple documents by embedding contents of separate Markdown files. ([source](https://mfontanini.github.io/presenterm/features/commands.html))

### User Interface & Experience

- [Presentation Frameworks](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks.md) — Implements a comprehensive framework for building interactive slide-based presentations delivered via the terminal.
- [Terminal Presentation Frameworks](https://awesome-repositories.com/f/user-interface-experience/terminal-presentation-frameworks.md) — A framework for creating and delivering interactive slide decks directly in the terminal using Markdown.
- [Terminal Image Renderers](https://awesome-repositories.com/f/user-interface-experience/file-previewers/terminal-image-renderers.md) — Enables forcing specific terminal image protocols to ensure correct rendering of images and GIFs. ([source](https://mfontanini.github.io/presenterm/configuration/settings.html))
- [Presenter View Synchronization](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/lifecycle-state-management/presenter-view-synchronization.md) — Provides synchronization between the audience-facing presentation view and a dedicated speaker-facing notes terminal.
- [Slide Layout and Styling](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/slide-layout-styling.md) — Provides tools for defining the spatial arrangement and visual appearance of content within individual terminal slides. ([source](https://cdn.jsdelivr.net/gh/mfontanini/presenterm@master/README.md))
- [Slide Boundary Definitions](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/slide-management-configuration/slide-content-authoring/slide-boundary-definitions.md) — Defines slide boundaries using titles, thematic breaks, or explicit markers to organize presentation flow. ([source](https://mfontanini.github.io/presenterm/configuration/options.html))
- [Visual Style Presets](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/theme-systems/visual-style-presets.md) — Provides built-in visual style presets and supports external YAML configurations for defining presentation appearance. ([source](https://mfontanini.github.io/presenterm/features/themes/introduction.html))
- [Markdown Slide Renderers](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/web-based-presentation-authoring-tools/markdown-slide-renderers.md) — Transforms Markdown files into structured terminal slide decks using custom delimiters and metadata.
- [Code Highlighting](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/content-styling/styling-markup/code-highlighting.md) — Renders source code with syntax highlighting, configurable padding, line numbers, and background colors in the terminal. ([source](https://mfontanini.github.io/presenterm/features/themes/definition.html))
- [Theme Inheritance Systems](https://awesome-repositories.com/f/user-interface-experience/theme-inheritance-systems.md) — Provides a theme system with property inheritance to manage visual styles and color palettes via YAML files.
- [Automatic Visual Rendering](https://awesome-repositories.com/f/user-interface-experience/automatic-visual-rendering.md) — Specifies programming languages that are automatically rendered as visuals without requiring explicit attributes. ([source](https://mfontanini.github.io/presenterm/configuration/options.html))
- [Color Palette Systems](https://awesome-repositories.com/f/user-interface-experience/color-palette-systems.md) — Defines reusable color sets and style classes for consistent application across themes and text spans. ([source](https://mfontanini.github.io/presenterm/features/themes/definition.html))
- [Vertical Column Layouts](https://awesome-repositories.com/f/user-interface-experience/column-layout-configurations/vertical-column-layouts.md) — Implements multi-column layouts with configurable width ratios to organize text and media on slides. ([source](https://mfontanini.github.io/presenterm/print.html))
- [Keyboard Shortcuts](https://awesome-repositories.com/f/user-interface-experience/component-utilities/keyboard-shortcuts.md) — Maps customizable keyboard shortcuts to navigation actions and code execution via configuration. ([source](https://mfontanini.github.io/presenterm/print.html))
- [Terminal Incremental Revealers](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/component-libraries/react-components/incremental-content-revealers/terminal-incremental-revealers.md) — Provides incremental content reveal for list items and blocks that appear sequentially during a terminal presentation. ([source](https://mfontanini.github.io/presenterm/print.html))
- [Pacing Controls](https://awesome-repositories.com/f/user-interface-experience/data-display-components/list-components/list-styling-configurations/pacing-controls.md) — Controls whether the presentation pauses automatically before and after displaying incremental list items. ([source](https://mfontanini.github.io/presenterm/configuration/settings.html))
- [Formula Rendering](https://awesome-repositories.com/f/user-interface-experience/interface-previews/mathematical-expression-previews/formula-rendering.md) — Converts LaTeX and Typst code blocks into images for visual mathematical formula rendering in the terminal. ([source](https://mfontanini.github.io/presenterm/features/code/latex.html))
- [Code Line Highlighting](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/code-presentation-utilities/code-line-highlighting.md) — Provides selective line highlighting and dynamic transitions for source code blocks during presentations. ([source](https://mfontanini.github.io/presenterm/features/code/highlighting.html))
- [Input-Driven Navigation](https://awesome-repositories.com/f/user-interface-experience/slide-navigation-logic/input-driven-navigation.md) — Enables navigation between slides using arrow keys, Vim-like shortcuts, or direct jumps to indices. ([source](https://mfontanini.github.io/presenterm/features/introduction.html))
- [Syntax Element Hiding](https://awesome-repositories.com/f/user-interface-experience/syntax-element-hiding.md) — Allows executing specific lines of code while concealing them from the visual slide to improve clarity. ([source](https://mfontanini.github.io/presenterm/features/code/execution.html))
- [Terminal Graphics Protocols](https://awesome-repositories.com/f/user-interface-experience/terminal-graphics-protocols.md) — Selects the most compatible terminal graphics protocol to render images and animated GIFs.
- [Terminal User Interfaces](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces.md) — Provides a system for building and styling interactive text-based interfaces within a terminal environment.
- [Text Styling](https://awesome-repositories.com/f/user-interface-experience/text-styling.md) — Applies foreground and background colors to text using span tags and YAML theme properties. ([source](https://mfontanini.github.io/presenterm/features/introduction.html))
- [Theme Overriding Systems](https://awesome-repositories.com/f/user-interface-experience/theme-overriding-systems.md) — Allows applying localized style overrides within presentation files to create unique slides without altering global themes. ([source](https://mfontanini.github.io/presenterm/features/themes/introduction.html))

### Part of an Awesome List

- [UI Theme Customization](https://awesome-repositories.com/f/awesome-lists/devtools/theming-and-customization/ui-theme-customization.md) — Allows customization of colors and element appearance using YAML-based terminal themes. ([source](https://mfontanini.github.io/presenterm/print.html))
- [Developer Presentation Workflows](https://awesome-repositories.com/f/awesome-lists/productivity/presentations/developer-presentation-workflows.md) — Provides a technical presentation workflow featuring live reloading and synchronized speaker notes across terminals.

### Business & Productivity Software

- [Presentation Tools](https://awesome-repositories.com/f/business-productivity-software/knowledge-content-creation/presentation-visual-tools/presentation-tools.md) — Provides a specialized tool for creating and designing technical slide decks from Markdown for the command line.
- [Remote Speaker Note Systems](https://awesome-repositories.com/f/business-productivity-software/team-collaboration-events/speaker-tools/remote-speaker-note-systems.md) — Synchronizes a secondary terminal displaying speaker-only notes with the main presentation view. ([source](https://mfontanini.github.io/presenterm/print.html))

### Content Management & Publishing

- [Terminal Markdown Renderers](https://awesome-repositories.com/f/content-management-publishing/terminal-markdown-renderers.md) — Converts Markdown text into formatted terminal output optimized for terminal emulators.
- [Media Embedding](https://awesome-repositories.com/f/content-management-publishing/content-management-systems/content-architecture-modeling/documentation-standards/media-embedding.md) — Integrates images, animated GIFs, and syntax-highlighted code blocks directly into terminal slides. ([source](https://mfontanini.github.io/presenterm/))

### Development Tools & Productivity

- [Code Execution Environments](https://awesome-repositories.com/f/development-tools-productivity/code-execution-environments.md) — Executes multi-language code blocks using custom executors and environment variables during a presentation. ([source](https://cdn.jsdelivr.net/gh/mfontanini/presenterm@master/README.md))
- [Presentation View Reloading](https://awesome-repositories.com/f/development-tools-productivity/automatic-template-reloading/presentation-view-reloading.md) — Automatically refreshes the presentation and jumps to the modified slide when the source file is saved. ([source](https://mfontanini.github.io/presenterm/features/introduction.html))
- [File Watchers](https://awesome-repositories.com/f/development-tools-productivity/file-watchers.md) — Monitors source Markdown files for changes to trigger an automatic refresh of the terminal presentation view.
- [Partial File Imports](https://awesome-repositories.com/f/development-tools-productivity/project-imports/external-file-importers/partial-file-imports.md) — Includes specific line ranges from external files while maintaining syntax highlighting and execution support. ([source](https://mfontanini.github.io/presenterm/features/code/highlighting.html))

### Education & Learning Resources

- [Technical Demonstrations](https://awesome-repositories.com/f/education-learning-resources/interactive-demonstrations/technical-demonstrations.md) — Enables live code demonstrations by executing real-time snippets and interactive terminal applications during presentations.
- [Technical Presentation Tools](https://awesome-repositories.com/f/education-learning-resources/technical-presentation-tools.md) — Converts Markdown notes into structured technical slides with syntax highlighting, diagrams, and math formulas.

### Graphics & Multimedia

- [Diagram Renderers](https://awesome-repositories.com/f/graphics-multimedia/diagram-renderers.md) — Transforms Mermaid, LaTeX, Typst, and D2 code blocks into images during the presentation loading phase. ([source](https://mfontanini.github.io/presenterm/print.html))
- [Code-to-Image Rasterization](https://awesome-repositories.com/f/graphics-multimedia/code-to-image-rasterization.md) — Executes a code snippet and renders the resulting binary output as a JPG or PNG image. ([source](https://mfontanini.github.io/presenterm/features/code/execution.html))

### Security & Cryptography

- [Interactive Code Execution](https://awesome-repositories.com/f/security-cryptography/application-and-system-security/sandbox-and-isolation/code-executors/interactive-code-execution.md) — Runs code snippets live during a presentation and replaces source blocks with real-time output.

### Data & Databases

- [Visual](https://awesome-repositories.com/f/data-databases/text-formatting/visual.md) — Modifies font size, alignment, and vertical positioning to control the visual layout of terminal slides. ([source](https://mfontanini.github.io/presenterm/features/commands.html))

### DevOps & Infrastructure

- [Code Execution Runtimes](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/code-execution-runtimes.md) — Triggers automatic code execution during loading to replace source blocks with their real-time output. ([source](https://mfontanini.github.io/presenterm/features/code/execution.html))

### Operating Systems & Systems Programming

- [Pseudo-Terminal Interfaces](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/terminal-infrastructure/pseudo-terminal-interfaces.md) — Uses pseudo-terminal interfaces to execute interactive code snippets that support cursor movements and screen clearing.
- [ANSI Escape Sequence Renderers](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/terminal-management/output-rendering-engines/ansi-escape-sequence-renderers.md) — Parses and renders ANSI escape codes in code execution results to preserve original terminal colors and formatting. ([source](https://mfontanini.github.io/presenterm/features/code/execution.html))
