pptx

Create, edit, and validate PowerPoint .pptx and .potx presentations programmatically.

1|Updated Feb 5, 2026
One-click install
npx skills add https://github.com/ankur3-101106/dotfiles-hypr --skill pptx-ankur3-101106
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: pptx
Source: https://github.com/ankur3-101106/dotfiles-hypr/tree/main/Claude/local-agent-mode-sessions/skills-plugin/ab436dd0-752a-4b9b-8503-dc6695d483cb/cedd2988-3bab-48aa-884f-cc7b3bfb8e81/skills/pptx
Command: npx skills add https://github.com/ankur3-101106/dotfiles-hypr --skill pptx-ankur3-101106

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pptxgenjs, markitdown, Pillow, defusedxml, lxml, react-icons, react, react-dom, sharp, and includes scripts (resource) components.

What problem does it solve? Working with PowerPoint files programmatically is error-prone: pptxgenjs has silent pitfalls that corrupt files, template editing requires manual OOXML package bookkeeping, and defects like text overflow or broken chart XML only surface when the user opens the deck. This Skill provides the scripts, validation tooling, and design guidance to produce decks that actually open and look right. ## Core Features & Use Cases - Deck creation with pptxgenjs: Generate new presentations with a documented list of library gotchas (hex colors, chart axes, shadow offsets) that otherwise corrupt output files. - Template-based editing: Unpack .pptx/.potx files, duplicate slides with full package bookkeeping via add_slide.py, edit slide XML, clean orphaned parts, and rezip. - Validation and visual QA: Run schema, relationship, and chart checks with validate.py (baselined against the original template), then render slides to images via LibreOffice and pdftoppm for visual inspection. - Use Case: A user asks for a 10-slide pitch deck from a corporate template. The Skill thumbnails the template layouts, maps content onto varied slide designs, fills placeholders via XML edits, validates against the original template, and renders every slide for overflow and contrast checks. ## Quick Start Use the pptx skill to create a five-slide presentation about our quarterly results and save it as results.pptx.

Frequently Asked Questions about pptx

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a PowerPoint presentation with pptxgenjs?▼

Write a Node script that requires pptxgenjs, set pres.layout before adding slides, and use hex colors without a leading #. After writeFile(), run the validate.py script to catch chart and slide XML defects that PowerPoint would reject.

How do I edit an existing pptx template programmatically?▼

Unzip the .pptx into a directory, duplicate slides with add_slide.py so all package registrations happen automatically, edit the slide XML files, run clean.py to remove orphaned parts, then rezip from inside the directory and validate with --original pointing at the template.

Why does my pptxgenjs file report as corrupt in PowerPoint?▼

Common causes are hex colors with a # prefix or 8 digits, negative shadow offsets, outEnd data labels on stacked charts, and combo charts missing valAxes/catAxes entries. The validate.py script detects these faults and names the fix for each.

Can python-pptx duplicate a slide or preserve formatting?▼

No. python-pptx only adds slides from layouts, assigning text_frame.text collapses runs to unstyled text, and it cannot read SVG or EMF images. Use the add_slide.py script for duplication and assign run.text to preserve formatting.

How do I check a generated deck for text overflow and visual defects?▼

Convert the deck to PDF with the soffice.py wrapper, then run pdftoppm to produce per-slide JPEG images and inspect each one. Check text overflow first, then overlaps, spacing, margins, and contrast, and re-render after fixes.

Does this approach support legacy .ppt files?▼

Legacy .ppt files must be converted to .pptx first using the LibreOffice soffice.py wrapper with --convert-to pptx. The .potx template files unpack and pack identically to .pptx while keeping their original extension.