πŸ“€β€‚Import & Export

How do I get this deck out as PPTX, PDF, or one file I can email?

Static site

narro build              # a scaffolded project
narro build deck.md      # a single markdown deck
narro preview --outDir dist

dist/ is a plain static site. This is the highest-fidelity way to share a deck: animations, embeds, and live components all still work.

Single-file HTML

narro bundle

Inlines everything β€” JS, CSS, images β€” into one .html file that opens from a filesystem with no server. This is the format to use when you are presenting from a machine you do not control, or emailing a deck to someone who will not run a build.

Images are base64-inlined, so an image-heavy deck produces a large file.

PDF

narro export --to pdf

One page per slide, fragments flattened to their final state. For handouts.

PowerPoint

narro export --to pptx output.pptx
narro export --to pptx output.pptx --template-path corporate.potx

Slides map onto real PowerPoint shapes rather than screenshots, so text stays selectable and editable. Passing a .potx applies your organisation’s master β€” the usual reason a deck has to become PPTX at all.

What does not survive: animations beyond simple builds, embedded web content, and anything driven by a live component. Those become their rendered state.

Google Slides

narro export --to google-slides
narro export --to google-slides --template-id <id>

Needs Google OAuth credentials in the environment; the CLI walks through the consent flow on first run.

Importing

narro import deck.pptx
narro import --from google-slides <presentation-id>

Produces Narro slides from an existing deck: text, structure, images, and speaker notes come across.

Treat the output as a starting point rather than a finished deck. PowerPoint positions everything absolutely, so a faithful import is a pile of CanvasElements that will not reflow β€” readable, but not yet using layouts. The usual workflow is to import, then convert the slides that matter into SlideContent and layout components, and leave the rest.

narro analyze-slides-for-components reports which shared-ui components an imported deck could be rewritten with, which makes that pass faster.

IntroductionWhat is Narro, and should I be writing markdown or React?
InstallationWhat do I install, and what does the project look like afterwards?
First DeckWhat does a working React deck look like, end to end?
Markdown ModeHow do I split a slide, style one word, or reveal a line β€” without leaving the markdown file?
Writing AI PromptsWhat do I tell an AI so the deck it writes actually builds?
Rules for AI AgentsWhat do I paste into my repo so an agent stops writing decks that build wrong?
React APIWhich component or hook do I import, and what does it take?
CLIWhich command do I run, and what are its flags?
Markdown APIHow do I read, edit, or validate a deck file from my own code instead of by hand?
Component ReferenceWhat props does this component take, and which package do I import it from?
Verifying a deckHow do I know my deck is actually correct?
AnimationHow do I reveal a list one line at a time, or move between slides with something other than a cut?
NavigationHow does the audience move through the deck, and how do I present it?
Canvas & PositioningHow do I put something at an exact position instead of in the flow?
Images & MediaHow do I use an image as a background, tint it, or embed a video?
ArchitectureWhich package owns what, and why is the seam where it is?
Transform ModeHow do I zoom and pan across one big canvas instead of cutting between slides?
Import & ExportHow do I get this deck out as PPTX, PDF, or one file I can email?
AI IntegrationHow do I wire an AI assistant up to Narro so it can write and build decks?
ThemingHow do I change the colours, fonts, and overall look of a deck?
Deck TemplatesHow do I define one house style with named layouts my slides can reference, like a PowerPoint master?
TroubleshootingSomething is wrong with my deck. What is it, and how do I fix it?
LimitationsWhat can't Narro do, and what do I do instead?