About export-pptx
A skill that exports an HTML slide deck to a PPTX made of full-slide images, with optional speaker notes. It uses Puppeteer and pptxgenjs, so the result is not natively editable in PowerPoint.
Key features
- 01HTML slides rendered as images
- 02Optional per-slide speaker notes
- 0316:9 PPTX output
- 04JPEG compression option
Use cases
- 01Exporting an HTML presentation to PPTX
- 02Sharing a slide deck with speaker notes
- 03Reducing export file size with JPEG
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ bluzir/ claude-code-design --skill export-pptxAfter installing, type/export-pptxin Claude Code to confirm it loaded.
Details
From the project READMEExport PPTX
Screenshot-based PPTX export — each <section> inside <deck-stage> becomes one slide (1920×1080 image + optional speaker notes).
Preflight
Bash(which node)— if missing, tell user to install Node 20+- Check
package.jsonhaspptxgenjs+puppeteer— if not, run:
(or tell user to runBash(npm install -D pptxgenjs puppeteer)/doctorfirst)
Steps
-
Resolve paths:
$0= deck HTML (required)$1= output (default: basename +.pptx)
-
Run the export script:
Bash(node scripts/export-pptx.mjs "<input>" "<output>") -
Report size + path.
Script dependencies
scripts/export-pptx.mjs must exist. If missing, create it (see template in spec §4.5 or ask user to run /doctor).
What the script does
- Launches headless Chromium (puppeteer)
- Loads the deck HTML at 1920×1080
- Reads
<deck-stage>.totalSlides - For each slide:
goToSlide(i), setnoscale,page.screenshotat clip 0,0,1920,1080 - Reads
#speaker-notesJSON (if present) and attaches per-slide notes - Builds
.pptxwithpptxgenjs(16:9 layout, one PNG-background slide each)
Notes
- Images can be large — 5 MB per slide at 1920×1080 is normal
- For smaller files, pass
--jpeg 0.8to the script (compress to JPEG at 80% quality) - Not editable in PowerPoint — each slide is a raster image. For native-editable export, skill not supported in v3.
Comments
Markdown supported