pptx

Create, edit, and validate PowerPoint .pptx and .potx presentation files.

3|1|Updated Nov 30, 2025
One-click install
npx skills add https://github.com/PALabs-v1/AI_friend --skill pptx-palabs-v1
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: pptx
Source: https://github.com/PALabs-v1/AI_friend/tree/main/.claude/skills/pptx
Command: npx skills add https://github.com/PALabs-v1/AI_friend --skill pptx-palabs-v1

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: a .pptx is a ZIP archive of XML parts with strict schema, relationship, and content-type rules, and small mistakes (bad hex colors, missing axis declarations, orphaned slides) produce files PowerPoint refuses to open. This Skill provides the workflows, scripts, and QA checks to create, edit, and validate decks without corrupting them. ## Core Features & Use Cases - Deck creation with pptxgenjs: Generate new presentations from scripts, with a catalog of gotchas (layout sizing, color formats, chart axis declarations, shadow offsets) that prevent file corruption. - Template-based editing: Unpack existing .pptx/.potx files, duplicate slides with full package bookkeeping via add_slide.py, edit slide XML directly, clean orphaned parts with clean.py, and repack. - Validation and visual QA: Run validate.py for schema, relationship, content-type, and chart checks (with --original baselining for template-derived decks), and render slides to images via LibreOffice and pdftoppm for visual inspection. - Use Case: A user asks for a 10-slide pitch deck from an outline. The Skill generates it with pptxgenjs using a topic-matched palette, validates the output, renders slide images, and fixes overflow or alignment defects before delivery. ## Quick Start Create a five-slide presentation about quarterly sales results as a .pptx file and check it for layout problems.

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 addSlide, addText, addImage, and addChart calls. Use hex colors without a leading #, create one pptxgen instance per output file, and validate the result afterward.

How do I edit an existing .pptx file or template?

Unzip the .pptx into a directory, duplicate or add slides with add_slide.py so all package registrations stay correct, edit the slide XML in ppt/slides/, run clean.py after deletions, then rezip from inside the directory and validate with --original pointing at the source file.

Why does PowerPoint say my generated pptx file is corrupt?

Common causes are hex colors written with a # prefix or 8 digits, negative shadow offsets, outEnd data labels on stacked charts, and combo charts missing valAxes/catAxes entries. Running validate.py on the deck reports each defect and names its fix.

Can python-pptx duplicate a slide in a presentation?

No, python-pptx only offers add_slide(layout) and cannot clone an existing slide. Use the add_slide.py script instead, which copies the slide file and handles content-type, relationship, and sldIdLst registration automatically.

How do I convert a legacy .ppt file to .pptx?

Run the LibreOffice wrapper with soffice.py --headless --convert-to pptx on the .ppt file. Legacy binary formats must be converted before any unpacking or XML editing workflow can be applied.

How do I check slides for text overflow and visual defects?

Convert the deck to PDF with soffice.py, then render pages to JPEG with pdftoppm and inspect each image for overflow, overlap, and contrast issues. Note that fonts outside the safe list render approximately, so leave extra slack in those containers.