Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
modelscope.cn avatar

Pptx Generator

  • 1.1k installs
  • modelscope.cn

This is a copy of pptx-generator by minimax-ai - installs and ranking accrue to the original listing.

pptx-generator is an agent skill that converts text prompts, markdown or structured data into complete PowerPoint .pptx presentation files.

About

pptx-generator is an agent skill that creates Microsoft PowerPoint files from text prompts, structured data or markdown. Solo builders and indie developers use it when they need to quickly produce polished presentations, pitch decks, project reports or documentation slides without opening PowerPoint or Google Slides. The skill handles layout decisions, visual hierarchy and basic design so you stay in your coding environment. With 917 installs it is a practical tool for anyone who regularly ships content alongside code. It works especially well when you want your AI coding agent to output a complete deliverable deck instead of just text suggestions.

  • Converts markdown, JSON or natural language prompts into .pptx files
  • Generates complete slide decks with layouts, images and formatting
  • Hosted on ModelScope for direct agent access
  • Saves hours of manual slide creation for pitches, reports and docs

Pptx Generator by the numbers

  • 1,145 all-time installs (skills.sh)
  • +21 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/modelscope.cn --skill pptx-generator

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.1k
Repositorymodelscope.cn

What it does

Turn structured content or prompts into ready-to-use PowerPoint presentations without manual slide design.

Who is it for?

Best when you need to generate pitch decks, status reports, product demos or documentation slides as part of your regular output.

Skip if: Skip if you need highly custom branded templates or advanced animations that require manual design control.

When should I use this skill?

When you need to output a visual presentation or slide deck as a deliverable instead of plain text or markdown.

What you get

You receive a ready-to-present .pptx file that can be opened immediately in PowerPoint or uploaded to Google Slides.

  • .pptx presentation file

By the numbers

  • 917 installs

Files

SKILL.mdMarkdownGitHub ↗

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)

Related skills

How it compares

Use instead of asking a general LLM to describe slides that you then recreate manually.

FAQ

Who is pptx-generator for?

Developers and developers who want their AI coding agents to output finished presentation files instead of plain text.

When should I use pptx-generator?

Use it when you need to turn a product spec, research summary, pitch narrative or documentation outline into a slide deck, or when your agent is asked to deliver a visual presentation rather than a markdown file.

Is pptx-generator safe to install?

Users should review the Security Audits panel on this page before installing.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.