βš™οΈβ€‚Installation

What do I install, and what does the project look like afterwards?

Node.js 20 or newer. Any of npm, pnpm, yarn, or bun.

Markdown mode: no install

npx @getnarro/cli new deck.md    # write a starter deck
npx @getnarro/cli dev deck.md    # serve it with hot reload
npx @getnarro/cli build deck.md  # static build into dist/

Nothing is scaffolded and no config file is created. The CLI brings its own runtime, so a lone .md file in an empty directory is a complete deck.

markdown-minimal scaffolds the same thing with a package.json that pins the CLI version and gives you scripts:

npm create narro@latest my-deck -- --template markdown-minimal

For a deck that needs its own dependencies, pinned versions, or React layouts, markdown-app puts the same deck.md inside a Vite project:

npm create narro@latest my-deck -- --template markdown-app

React mode: scaffold a project

npm create narro@latest my-deck
cd my-deck
npm install
npm run dev

npm create narro prompts for a template. To skip the prompt:

npm create narro@latest my-deck -- --template developer

Templates

Markdown

TemplateWhat it isNotes
markdown-minimalOne deck.md and a pinned CLI. Nothing to build.start here
markdown-appThe same deck inside a Vite project, for React components and custom CSS.β€”
markdown-docsDocumentation-shaped deck: long code samples, wide tables.ships an example deck

React

TemplateWhat it isNotes
minimalThree slides and nothing else. Start here to write your own.start here
corporateRestrained business deck, dark theme.ships an example deck
developerCode-heavy technical talk with terminal chrome.ships an example deck
creativeBold colour and large type.ships an example deck
bold-statementOne idea per slide, very large type.ships an example deck
visual-storyFull-bleed imagery with overlay text.ships an example deck
data-narrativeCharts and figures, light theme.ships an example deck
startup-pitchTen-slide investor pitch, filled in.ships an example deck
tech-conferenceConference talk with a title card and code slides.ships an example deck
template0Reference deck exercising every component. Read it, do not start from it.ships an example deck

Pass --mode markdown to be prompted with only the markdown templates, or npx create-narro --list to print the table above from the version you have installed.

Scripting it. --yes takes the default for anything you did not pass and never opens a prompt, which is what a CI job or an agent needs:

npx create-narro my-deck --yes --skip-install                      # minimal, React
npx create-narro my-deck --yes --mode markdown --skip-install      # markdown-minimal
npx create-narro my-deck --yes --template markdown-app --skip-install

A --template that is not on the list above is an error naming the ones that are β€” it is never quietly replaced with a default.

Adding Narro to an existing app

npm install @getnarro/core @getnarro/shared-ui

react and react-dom 19+ are peer dependencies. Styling assumes Tailwind CSS v4; add @tailwindcss/vite to your Vite config if you do not have it.

What a scaffolded project looks like

my-deck/
β”œβ”€β”€ index.html
β”œβ”€β”€ package.json
β”œβ”€β”€ vite.config.ts
β”œβ”€β”€ tsconfig.json
└── src/
    β”œβ”€β”€ App.tsx       # the deck β€” this is the file you edit
    β”œβ”€β”€ main.tsx      # mounts App
    └── index.css     # Tailwind entry

A markdown template swaps src/App.tsx for a deck.md at the project root and a src/main.tsx that mounts the compiled deck.

Scripts

CommandWhat it does
npm run devDev server with hot reload, on http://localhost:5173
npm run buildProduction build into dist/
npm run previewServe the built deck
npm run fitMeasure the built deck in a browser and report slides that clip
npm run lintThe CI gate β€” narro check --strict for a markdown deck, Prettier for a React one

Which versions this reference describes

The @getnarro/* packages version independently: a fix to the CLI does not move core, and @getnarro/docs has its own release line. So the reference you are reading can describe a runtime newer than the one your project installed, and nothing about that failure is loud β€” a prop that does not exist yet is simply ignored.

Two things make it visible:

  • narro check prints the version of the CLI, the dialect, core and shared-ui that actually answered. That is the runtime you have.
  • This copy of the documentation was generated against:
PackageVersion this reference was generated against
@getnarro/cli0.8.0
@getnarro/core0.6.0
@getnarro/docs0.10.0
@getnarro/markdown0.9.0
@getnarro/marketplace0.2.0
@getnarro/mcp-server0.3.10
@getnarro/shared-ui0.6.0
create-narro0.8.0

If those disagree and something documented is missing, the runtime is older than the reference. npm i -D @getnarro/docs installs the documentation over the same registry that installed your packages, so it pins alongside them.

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?