@getnarro/cli
v0.4.0
Published
CLI tools for creating and managing Narro presentations
Maintainers
Readme
@getnarro/cli
CLI tools for creating and managing Narro presentations
getnarro.com · Documentation · Ecosystem
narro scaffolds decks, serves them with hot reload, builds them, checks them,
and exports them to PowerPoint, PDF, images, or a single self-contained HTML
file. It also imports the other way, from PowerPoint and Google Slides.
Installation
Nothing to install for a one-off:
npx @getnarro/cli new deck.md # a single-file markdown deck
npx @getnarro/cli dev deck.md # open it, hot-reloadingOr keep it around:
npm install -g @getnarro/cli # the `narro` binary
npm install -D @getnarro/cli # per projectCommands
| Command | What it does |
| --- | --- |
| narro analyze-slides-for-components | Analyze presentation slides to identify needed shared-ui components |
| narro build [file] | Build for production (pass a .md file for markdown mode) |
| narro bundle | Bundle presentation into a single self-contained HTML file |
| narro capture-website <url> | Capture a full-page screenshot of a website |
| narro check <file> | Validate a markdown deck without building it |
| narro comments | Manage slide comments |
| narro create [project-name] | Create a new Narro presentation project |
| narro create-template-from-screenshots [template-name] | Generate a template from presentation screenshots using AI |
| narro dev [file] | Start development server (pass a .md file for markdown mode) |
| narro export | Export presentation to static files, PPTX, or Google Slides |
| narro fmt <file> | Normalise a deck's whitespace and frontmatter without changing what it renders |
| narro import <source> | Import presentation from PowerPoint or Google Slides |
| narro new <file> | Scaffold a starter markdown deck |
| narro preview | Preview built presentation |
| narro themes | Browse and apply themes from the marketplace |
Every option of every command is at https://getnarro.com/docs/cli, generated
from the same command tree --help prints.
The usual loop
narro new deck.md # scaffold a starter deck
narro dev deck.md # localhost:3000, hot reload
narro check deck.md # validate layouts, slots, and theme names — ~1s
narro build deck.md # static site in ./distnarro check is the one worth wiring into a watch loop or an agent. An unknown
layout, a mistyped slot (::rihgt::), or a theme that does not exist are not
parse errors, so they used to reach the browser as a blank slide; check
reports them without compiling, and names the values that would have worked.
Building and exporting
narro build deck.md # static site in ./dist
narro bundle deck.md # one self-contained .html file
narro export deck.md --pdf # dist/presentation.pdf
narro export deck.md --png # dist/slides/slide-001.png, …
narro export deck.md --pptx # PowerPointPDF and PNG export render in a headless browser, which is an optional dependency so that installing the CLI does not pull one down:
npm install -D playwright
npx playwright install chromiumImporting
narro import --from pptx deck.pptx
narro import --from pptx deck.pptx --output-dir my-deck --preserve-styles
narro import --from google-slides <presentation-id>Slides, text, and media come across, positioned to match the original. Google Slides needs Google API credentials configured.
Themes
narro themes list
narro themes info minimalist-light
narro themes apply corporate-darkThe registry is @getnarro/marketplace.
AI-assisted commands
create-template-from-screenshots builds a template from screenshots of an
existing deck, and analyze-slides-for-components writes a component
specification from them. Both call a model, so both need OPENAI_API_KEY or
ANTHROPIC_API_KEY in the environment, and both are documented in
the repository.
Writing decks
The CLI runs decks; it does not define them. The markdown dialect belongs to
@getnarro/markdown, and
the components to
@getnarro/core and
@getnarro/shared-ui.
Start at https://getnarro.com/docs.
The Narro ecosystem
| Package | What it is |
| --- | --- |
| @getnarro/cli | CLI tools for creating and managing Narro presentations ← you are here |
| @getnarro/core | The React runtime for Narro presentations — Presentation, Slide, navigation, transitions, and speaker notes |
| @getnarro/docs | Narro's documentation as data — markdown pages, a generated component API reference, and llms.txt |
| @getnarro/markdown | Markdown & MDX authoring for Narro presentations |
| @getnarro/marketplace | Themes, colour schemes, and templates for Narro presentations |
| @getnarro/mcp-server | MCP (Model Context Protocol) server for AI-assisted Narro presentation creation |
| @getnarro/shared-ui | Slide components for Narro presentations — headings, text, lists, code, media, charts, and layouts |
| create-narro | Scaffold a new Narro presentation |
All eight ship from one repository and release together.
The npm package named
narrois unrelated to this project. Narro's packages are all under the@getnarro/scope; the CLI binarynarrocomes from@getnarro/cli.
Website · Documentation · llms.txt · GitHub · Issues · Changelog
Released under the MIT License.
