Markdown to PowerPoint (.pptx)

Paste a Markdown outline and download a real PowerPoint deck — headings become slide titles, bullets become bullets. Pick where slides split, a light or dark theme, and 16:9 or 4:3. Built in your browser; nothing is uploaded.

Try:
Presentation

Turn a Markdown outline into a real PowerPoint deck

Write your talk as a plain Markdown outline, and download a genuine binary .pptx file — the same format PowerPoint, Keynote, Google Slides and LibreOffice Impress open natively. Headings become slide titles, list items and paragraphs become bullets, and a thematic break (---) starts a new slide. Pick where slides split, a light or dark theme, and a 16:9 or 4:3 aspect ratio. Everything runs in your browser with WebAssembly — your outline is never uploaded to a server.

Worked example

Input (with Split slides on set to # headings):

# Quarterly Review

- Revenue up 24%
- Two new markets

# Next Steps

- Hire 3 engineers
- Ship v2

Output: a two-slide presentation.pptx. The first slide is titled Quarterly Review with two bullets; the second is Next Steps with two bullets. Add a Deck title to prepend a centered title slide, switch to the dark theme for light-on-black slides, or choose 4:3 for the classic standard shape.

Nested list items indent into sub-bullets, **bold**, `code` and [links](url) are flattened to clean text, and fenced code blocks are kept as verbatim lines — so what you paste is what lands on the slide.

FAQ

Is this a real .pptx file, or just text renamed to .pptx?

It is a real, standards-compliant Office Open XML (.pptx) presentation — a ZIP of XML parts ([Content_Types].xml, a presentation part, a slide master, layout and theme, and one slide XML per slide), exactly what PowerPoint writes. It opens without any "the file format doesn't match the extension" warning and is fully editable in PowerPoint, Keynote, Google Slides and LibreOffice Impress.

How does my Markdown become slides?

Each split heading starts a new slide and its text becomes the slide title; list items (-, *, +, or 1.) and plain paragraphs become bullets on the current slide. A thematic break — a line of three or more -, *, or _ — always starts a new slide, even without a heading. Indented list items become nested sub-bullets (up to four levels deep).

What does "Split slides on" control?

It chooses which heading levels cut the outline into slides. # headings (H1) starts a new slide at each # and keeps ## headings as bullets; ## headings (H2) splits on each ##; # and ## splits on both. Whichever you pick, a --- thematic break always forces a new slide — handy for decks with no headings at all.

Can I change the theme, aspect ratio, or add a title slide?

Yes. The Light theme is dark text on a white background; Dark is light text on a near-black background. 16:9 is modern widescreen and 4:3 is the classic standard shape. Filling in the optional Deck title adds a centered title slide at the front and records the title in the document's properties.

Is my content uploaded anywhere?

No. The presentation is assembled entirely in your browser with WebAssembly — the outline never leaves your device, and nothing is sent to a server. Very large outlines are bounded only by your device's memory.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool markdown-to-pptx "# Quarterly Review

- Revenue up 24%
- Two new markets

# Next Steps

- Hire 3 engineers
- Ship v2"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/markdown-to-pptx/?markdown=%23%20Quarterly%20Review%0A%0A-%20Revenue%20up%2024%25%0A-%20Two%20new%20markets%0A%0A%23%20Next%20Steps%0A%0A-%20Hire%203%20engineers%0A-%20Ship%20v2&title=Q3%20Business%20Review&split_level=h1&theme=light&aspect_ratio=16%3A9

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.