What is MDeck?
MDeck creates stunning presentations from standard markdown files. No proprietary formats, no complex setup — just write markdown and present beautifully.
- Any
.mdfile is instantly presentable — intelligent layout inference picks the right slide design from your content structure: title slides, bullet lists, code blocks, quotes, images, tables, and more - Built-in visualizations — architecture diagrams, Gantt charts, word clouds, bar/line/pie charts, KPI dashboards, org charts, timelines, radar charts, scatter plots, Venn diagrams, and more — all from simple text in your markdown
- AI-native — since presentations are just markdown, any AI can help you write them. But MDeck also has AI built directly in: generate images and icons in your chosen style, right from the command line. Your slides, your aesthetic
- Built in Rust — fast, lightweight, GPU-accelerated rendering with smooth transitions and animations
Installation
Homebrew (macOS / Linux)
Pre-built binaries
Download from GitHub Releases — available for macOS (Intel + ARM), Linux, and Windows.
Cargo
Build from source
Quick Start
# Present a markdown file
# Export slides as PNG images
# Show all commands
Write a file called talk.md:
title: "My Talk"
@theme: dark
This is my first MDeck presentation.
- --
```@diagram
- --
Then present it: mdeck talk.md
Features
Automatic Layout Inference
MDeck detects what kind of slide you're writing and picks the best layout:
| Content | Layout |
|---|---|
| Heading + subtitle | Title |
| Lone heading | Section divider |
| Heading + bullet list | Bullet |
| Heading + code block | Code |
| Blockquote + attribution | Quote |
| Single image | Full-screen image |
| Bullets + image | Split layout |
+++ separator |
Two-column |
@diagram code block |
Diagram |
@barchart, @piechart, etc. |
Visualization |
Override with @layout: name when needed.
Visualizations
Write data visualizations directly in markdown using fenced code blocks:
| Type | Tag | Example |
|---|---|---|
| Bar chart | @barchart |
- Python: 48 |
| Line chart | @linechart |
- Revenue: 100, 150, 200 |
| Pie chart | @piechart |
- Frontend: 35% |
| Donut chart | @donut |
- Complete: 78 |
| Stacked bar | @stackedbar |
- Product A: 40, 45, 50 |
| Scatter plot | @scatter |
- Alice: 80, 90 |
| Radar chart | @radar |
- Speed: 9, 7, 5, 3 |
| Funnel | @funnel |
- Visitors: 10000 |
| KPI cards | @kpi |
- Revenue: $4.2M (trend: +12%) |
| Progress bars | @progress |
- Design: 100% |
| Timeline | @timeline |
- 2024: Project launch |
| Word cloud | @wordcloud |
- AI (size: 50) |
| Venn diagram | @venn |
- Set A & Set B: Overlap |
| Org chart | @orgchart |
- CEO -> CTO |
| Gantt chart | @gantt |
- Design: 8d, after Research |
| Diagram | @diagram |
- Client -> Server |
All visualizations support progressive reveal with + markers.
Diagrams
Architecture and flow diagrams from text:
```@diagram
- --
- -
Features: grid positioning, 20+ built-in icons, 5 arrow types (->, <-, <->, --, -->), labeled connections, and AI-generated custom icons.
Themes
Built-in themes: light, dark, solarized, dracula, nord, gruvbox, and more.
Set globally in frontmatter or per-slide:
---
@theme: dark
@transition: spatial
---
Transitions
Smooth animated transitions between slides: fade, slide, spatial, and none. Cycle with T during presentation.
Slide Splitting
Three mechanisms create slide breaks (all combine):
---separator with blank lines on both sides- Three blank lines between content
- Heading inference — headings automatically start new slides
Smart heading inference: if your file has one # title and uses ## for sections, both levels split. Control explicitly with @slide-level: 2 in frontmatter.
AI Features
MDeck integrates AI for image and icon generation. Configure with mdeck ai enable.
Generate Images for a Presentation
Add image placeholders to your markdown:
- -

Then generate all images at once:
MDeck scans for image-generation markers, generates images using AI, saves them to an images/ directory, and rewrites your markdown with the actual file paths.
Style Control
Control the visual style of generated images:
---
@image-style: "Cinematic photography, vivid colors, dramatic lighting"
@icon-style: "Clean minimalist icon, subtle 3D feel"
---
Or manage named styles:
Ad-Hoc Image Generation
Generate individual images from the command line:
Diagram Icons
Generate custom icons for diagram nodes:
```@diagram
- -
Run mdeck ai generate to create and cache the icons.
Commands
Keyboard Controls
| Key | Action |
|---|---|
| Space / N / Right | Next slide |
| P / Left | Previous slide |
| Up / Down | Scroll overflowed content |
| G | Grid overview |
| D | Cycle theme |
| T | Cycle transition |
| F | Toggle fullscreen |
| H | Toggle HUD |
. |
Blackout screen |
| Esc Esc | Quit |
Shell Completions
# Static completions
# Dynamic completions (recommended)
Documentation
- Gallery — Visual showcase of all layouts and visualizations
- Format Specification — Complete reference for the MDeck markdown format (also available via
mdeck spec) - Changelog — Release history and what's new
The format spec is embedded in the binary and available via mdeck spec. It covers all slide layouts, directives, visualization syntax, diagram features, and keyboard shortcuts.
Development
License
MIT