P

pptx-generator

Verified

by MiniMax-AI · Updated Apr 16, 2026

claude-opus-4-6
11in18.2Kout
$1.086m 22s

Generate, edit, and read PowerPoint presentations. Create from scratch with PptxGenJS (cover, TOC, content, section divider, summary slides), edit existing PPTX via XML workflows, or extract text with markitdown. Triggers: PPT, PPTX, PowerPoint, presentation, slide, deck, slides.

powerpointpptxpresentationspptxgenjsmarkitdowndocument-generation

See It In Action

1 turns·claude
The project codebase is in your current working directory. Explore the files to understand the code before making changes. need a polished board deck today on last week's signup slowdown and recovery plan, 6 slides for execs before the 4pm rehearsal

Now I have a full picture of the data and the skill system. Let me build the 6-slide board deck. I'll use Palette A (Executive Calm) + Sharp style, following the suggested slide mapping.

Now let me create all 6 slide modules and the compile script:

Let me create the files using bash:

Now let me compile the deck:

The deck is ready at slides/output/presentation.pptx (184 KB). Here's the rundown of all 6 slides:

#TypeContent
1Cover"Signup Slowdown & Recovery Plan" — dark background with accent bar, –610 lost signups metric chip, date & team attribution. No page badge.
2TOCThree agenda items with numbered markers; item 3 ("Recovery Plan & Asks") tagged with a blue DECISION badge to signal the board ask.
3Content — Funnel ImpactDual-line chart (Visit→Complete % vs Mobile Error %) across 21 days from the CSV. Three KPI cards on the right: –42% drop, –610 signups, $184k pipeline risk. Source cited.
4Section DividerSplit-panel transition — bold section title on dark left, vertical timeline on the right (Incident → Rollback → 4.6% recovery → Apr 20 target).
5Content — Causes + Experiments + PlanLeft: root-cause matrix (HIGH/MED confidence tags with evidence). Right: 4-row experiment readout table (EXP-117 through 120 with decisions). Bottom: four owner cards for the 14-day recovery plan (Priya, Leo, Marta, Sam with ETAs).
6SummaryLeft: 4-bullet situation recap. Right: 3 numbered executive asks (on-call staffing, QA contractor, hold ad spend). Dark bottom bar with next check-in date (Apr 21) and success KPI.

Design choices: Executive Calm palette (navy/blue), Sharp style recipe, Arial throughout, 16:9 layout, page badges on slides 2–6, all data sourced directly from the CSV and recovery notes. Ready for your 4pm rehearsal.

Claude Sonnet 4.6

External Tools

ToolType
nodebinary
npmbinary
python3binary
pipbinary

Permissions

ScopeDescription
filesystem:read
filesystem:write
process:spawn

SKILL.md

PPTX Generator & Editor

Overview

This skill handles all PowerPoint tasks: reading/analyzing existing presentations, editing template-based decks via XML manipulation, and creating presentations from scratch using PptxGenJS. It includes a complete design system (color palettes, fonts, style recipes) and detailed guidance for every slide type.

Quick Reference

TaskApproach
Read/analyze contentpython -m markitdown presentation.pptx
Edit or create from templateSee Editing Presentations
Create from scratchSee Creating from Scratch below
ItemValue
Dimensions10" x 5.625" (LAYOUT_16x9)
Colors6-char hex without # (e.g., "FF0000")
English fontArial (default), or approved alternatives
Chinese fontMicrosoft YaHei
Page badge positionx: 9.3", y: 5.1"
Theme keysprimary, secondary, accent, light, bg
ShapesRECTANGLE, OVAL, LINE, ROUNDED_RECTANGLE
ChartsBAR, LINE, PIE, DOUGHNUT, SCATTER, BUBBLE, RADAR

Reference Files

FileContents
slide-types.md5 slide page types (Cover, TOC, Section Divider, Content, Summary) + additional layout patterns
design-system.mdColor palettes, font reference, style recipes (Sharp/Soft/Rounded/Pill), typography & spacing
editing.mdTemplate-based editing workflow, XML manipulation, formatting rules, common pitfalls
pitfalls.mdQA process, common mistakes, critical PptxGenJS pitfalls
pptxgenjs.mdComplete PptxGenJS API reference

Reading Content

# Text extraction
python -m markitdown presentation.pptx

Creating from Scratch — Workflow

Use when no template or reference presentation is available.

Step 1: Research & Requirements

Search to understand user requirements — topic, audience, purpose, tone, content depth.

Step 2: Select Color Palette & Fonts

Use the Color Palette Reference to select a palette matching the topic and audience. Use the Font Reference to choose a font pairing.

Step 3: Select Design Style

Use the Style Recipes to choose a visual style (Sharp, Soft, Rounded, or Pill) matching the presentation tone.

Step 4: Plan Slide Outline

Classify every slide as exactly one of the 5 page types. Plan the content and layout for each slide. Ensure visual variety — do NOT repeat the same layout across slides.

Step 5: Generate Slide JS Files

Create one JS file per slide in slides/ directory. Each file must export a synchronous createSlide(pres, theme) function. Follow the Slide Output Format and the type-specific guidance in slide-types.md. Generate up to 5 slides concurrently using subagents if available.

Tell each subagent:

  1. File naming: slides/slide-01.js, slides/slide-02.js, etc.
  2. Images go in: slides/imgs/
  3. Final PPTX goes in: slides/output/
  4. Dimensions: 10" x 5.625" (LAYOUT_16x9)
  5. Fonts: Chinese = Microsoft YaHei, English = Arial (or approved alternative)
  6. Colors: 6-char hex without # (e.g. "FF0000")
  7. Must use the theme object contract (see Theme Object Contract)
  8. Must follow the PptxGenJS API reference

Step 6: Compile into Final PPTX

Create slides/compile.js to combine all slide modules:

// slides/compile.js
const pptxgen = require('pptxgenjs');
const pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';

const theme = {
  primary: "22223b",    // dark color for backgrounds/text
  secondary: "4a4e69",  // secondary accent
  accent: "9a8c98",     // highlight color
  light: "c9ada7",      // light accent
  bg: "f2e9e4"          // background color
};

for (let i = 1; i <= 12; i++) {  // adjust count as needed
  const num = String(i).padStart(2, '0');
  const slideModule = require(`./slide-${num}.js`);
  slideModule.createSlide(pres, theme);
}

pres.writeFile({ fileName: './output/presentation.pptx' });

Run with: cd slides && node compile.js

Step 7: QA (Required)

See QA Process.

Output Structure

slides/
├── slide-01.js          # Slide modules
├── slide-02.js
├── ...
├── imgs/                # Images used in slides
└── output/              # Final artifacts
    └── presentation.pptx

Slide Output Format

Each slide is a complete, runnable JS file:

// slide-01.js
const pptxgen = require("pptxgenjs");

const slideConfig = {
  type: 'cover',
  index: 1,
  title: 'Presentation Title'
};

// MUST be synchronous (not async)
function createSlide(pres, theme) {
  const slide = pres.addSlide();
  slide.background = { color: theme.bg };

  slide.addText(slideConfig.title, {
    x: 0.5, y: 2, w: 9, h: 1.2,
    fontSize: 48, fontFace: "Arial",
    color: theme.primary, bold: true, align: "center"
  });

  return slide;
}

// Standalone preview - use slide-specific filename
if (require.main === module) {
  const pres = new pptxgen();
  pres.layout = 'LAYOUT_16x9';
  const theme = {
    primary: "22223b",
    secondary: "4a4e69",
    accent: "9a8c98",
    light: "c9ada7",
    bg: "f2e9e4"
  };
  createSlide(pres, theme);
  pres.writeFile({ fileName: "slide-01-preview.pptx" });
}

module.exports = { createSlide, slideConfig };

Theme Object Contract (MANDATORY)

The compile script passes a theme object with these exact keys:

KeyPurposeExample
theme.primaryDarkest color, titles"22223b"
theme.secondaryDark accent, body text"4a4e69"
theme.accentMid-tone accent"9a8c98"
theme.lightLight accent"c9ada7"
theme.bgBackground color"f2e9e4"

NEVER use other key names like background, text, muted, darkest, lightest.


Page Number Badge (REQUIRED)

All slides except Cover Page MUST include a page number badge in the bottom-right corner.

  • Position: x: 9.3", y: 5.1"
  • Show current number only (e.g. 3 or 03), NOT "3/12"
  • Use palette colors, keep subtle

Circle Badge (Default)

slide.addShape(pres.shapes.OVAL, {
  x: 9.3, y: 5.1, w: 0.4, h: 0.4,
  fill: { color: theme.accent }
});
slide.addText("3", {
  x: 9.3, y: 5.1, w: 0.4, h: 0.4,
  fontSize: 12, fontFace: "Arial",
  color: "FFFFFF", bold: true,
  align: "center", valign: "middle"
});

Pill Badge

slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
  x: 9.1, y: 5.15, w: 0.6, h: 0.35,
  fill: { color: theme.accent },
  rectRadius: 0.15
});
slide.addText("03", {
  x: 9.1, y: 5.15, w: 0.6, h: 0.35,
  fontSize: 11, fontFace: "Arial",
  color: "FFFFFF", bold: true,
  align: "center", valign: "middle"
});

Dependencies

  • pip install "markitdown[pptx]" — text extraction
  • npm install -g pptxgenjs — creating from scratch
  • npm install -g react-icons react react-dom sharp — icons (optional)

FAQ

What does pptx-generator do?

Generate, edit, and read PowerPoint presentations. Create from scratch with PptxGenJS (cover, TOC, content, section divider, summary slides), edit existing PPTX via XML workflows, or extract text with markitdown. Triggers: PPT, PPTX, PowerPoint, presentation, slide, deck, slides.

When should I use pptx-generator?

Use it when you need a repeatable workflow that produces text report, source code, downloadable file.

What does pptx-generator output?

In the evaluated run it produced text report, source code, downloadable file.

How do I install or invoke pptx-generator?

Ask the agent to use this skill when the task matches its documented workflow.

Which agents does pptx-generator support?

Agent support is inferred from the source, but not explicitly declared.

What tools, channels, or permissions does pptx-generator need?

It uses node, npm, python3, pip; channels commonly include text, code, file; permissions include filesystem:read, filesystem:write, process:spawn.

Is pptx-generator safe to install?

Static analysis marked this skill as medium risk; review side effects and permissions before enabling it.

How is pptx-generator different from an MCP or plugin?

A skill packages instructions and workflow conventions; tools, MCP servers, and plugins are dependencies the skill may call during execution.

Does pptx-generator outperform not using a skill?

About pptx-generator

When to use pptx-generator

You need to generate a slide deck from scratch as a PPTX file. You want to extract and analyze text from an existing PowerPoint presentation. You need to produce or modify presentation artifacts locally using scripted workflows.

When pptx-generator is not the right choice

You need cloud-based slide collaboration or publishing to external presentation platforms. You only need plain text or markdown documents rather than PowerPoint output.

What it produces

Produces text report, source code and downloadable file.