$mdflow present

Your markdown document is the deck.

MDflow presents any document as a fullscreen slideshow, split at every top-level # heading. No export to PowerPoint, no slide framework to install, no second file to keep in sync — pick Presentation from the document menu and start talking.

Q3 review.md — presenting · slide 2 / 4
the document
# Q3 in one line

We shipped the API.

# What changed

- Public REST API
- MCP for agents

# Numbers

| metric | q2 | q3 |
| ------ | -- | -- |
| docs   | 1k | 4k |

# What's next
the slides
Q3 in one line
What changed
Numbers
What's next
$man mdflow-present

The notes you wrote anyway, on the projector

Most decks start as a document and then get rebuilt somewhere else, where they immediately go stale. MDflow skips that step: the document stays the source of truth, and the presentation is just another way to read it.

$grep '^# '

Your headings are the slides

Every top-level # heading starts a new slide; everything under it rides along. A document you already wrote — a status update, a design doc, a lesson plan — becomes a deck without a single edit.

$open --fullscreen

No export step

There is nothing to convert, install or build. Pick Presentation from the document menu and MDflow goes fullscreen on the spot. Close it and you are back in the same document, at the same place.

$share && present

Present from a shared link

The reader view of a shared document has the same Presentation button, so whoever you sent the link to can present it too — in their browser, with no MDflow account and nothing to download.

$zoom 50..250

Readable on any screen

Slides scale with the viewport, and a zoom control takes the text from 50% to 250% in 10% steps — big enough for a projector at the back of the room. Your last zoom is remembered for the next presentation.

$mdflow present --help

Three steps, no new file

01

Write the document

Ordinary markdown — headings, lists, tables, code blocks, images. Start each slide with a # heading. Anything above the first heading becomes an opening slide of its own.

02

Pick Presentation

From the document's menu in the sidebar tree, from the menu in the editor header, or from the toolbar of a shared document's reader view. MDflow splits the markdown and goes fullscreen.

03

Present

Arrow keys, Space or the on-screen controls move through the deck, with a slide counter in the corner. Escape drops you back exactly where you were.

$bindkey

Driven from the keyboard

Nothing to reach for mid-sentence. On-screen previous and next buttons and a slide counter are there when you want them.

→ Space PageDown

Next slide.

← PageUp

Previous slide.

Home End

Jump to the first or last slide.

+ −

Zoom the slide text in or out, 10% at a time (50%–250%).

0

Reset the zoom back to 100%.

Esc

Leave the presentation. Exiting fullscreen any other way closes it too.

$diff deck doc

One artifact, four audiences

The same markdown file is the document you edit, the page your reader opens, the deck you present, and the context your AI agent reads. Nothing is duplicated, so nothing falls out of date.

  • Always current. Present straight from the document — including edits you haven't saved yet when it's open in the editor.
  • Shareable. Send a share link and the reader can present it themselves, or read the plain .md twin instead.
  • Portable. Slides are just # headings. Download the .md and the structure still makes sense in Obsidian, VS Code or on GitHub.
  • Agent-writable. A document an agent wrote over the API or MCP is presentable the moment it lands.
$man mdflow-present --faq

Questions

How do I turn a markdown document into a presentation?
Open the document's action menu — in the MDflow sidebar tree, in the document editor header, or in the toolbar of a shared document's reader view — and choose Presentation. MDflow splits the markdown into slides and opens a fullscreen slideshow immediately. There is no export, conversion or build step, and no separate presentation file.
How are slides split?
At every top-level # heading. Each # line starts a new slide and carries everything beneath it until the next # heading. Headings inside fenced code blocks are ignored, so a shell comment like # install in a code sample won't break the deck. If the document has content before the first # heading, that becomes a leading slide of its own; a document with no # heading at all is presented as a single slide.
Which keys control the slideshow?
Right arrow, Space and Page Down go to the next slide; Left arrow and Page Up go back; Home and End jump to the first and last slide. Plus and minus zoom the slide text in 10% steps between 50% and 250%, and 0 resets zoom to 100%. Escape exits — as does leaving fullscreen any other way. On-screen previous/next buttons and a slide counter are always visible.
Can I present a document I shared with someone?
Yes. The reader view of a shared MDflow document has its own Presentation button, so the person you sent the link to can present it in their browser — no MDflow account, no installation, no download. The slides come straight from the shared markdown, so the deck is always the current version of the document.
Is presentation mode a paid feature?
No. Presentation mode is available on every plan, including the free plan, and readers of a shared link can use it without an account. MDflow Pro covers agent control — the HTTP API, the MCP server and Personal Access Tokens — not presenting.
Do I need a special syntax or a theme file?
No. There is no slide-separator syntax to learn, no frontmatter to configure and no theme to install. Slides render with exactly the same markdown formatting as MDflow's normal preview — GitHub Flavored Markdown, including tables, task lists, code blocks and images — so what you see while writing is what the room sees.
Are there any markdown constructs that don't survive the split?
Each slide is rendered on its own, so a construct whose definition and use land on different slides won't resolve: reference-style links and images ([text][ref] with a [ref]: url line) and GFM footnotes ([^1] with its [^1]: definition) need both halves on the same slide. Inline links, images and every other markdown feature are unaffected.
How is this different from PowerPoint, Google Slides or a slide framework?
PowerPoint and Google Slides keep the deck in a separate file you have to maintain alongside your notes. Slide frameworks that build from markdown, such as reveal.js or Marp, need local tooling or a build step. In MDflow the document is the deck: the markdown you already store, share and hand to AI agents is the same text that goes on screen, presented from the browser you already have open.
$mdflow present

Write the doc. Present the doc.

Presentation mode is built in and free on every plan — and readers of a shared link can present without an account.