From ms-office-suite
Creates, edits, and analyzes PowerPoint presentations (.pptx files), including slide design, chart and table insertion, HTML-to-PPTX conversion, and template-based generation. Activates when the user works with .pptx files or requests presentation authoring.
npx claudepluginhub jawhnycooke/claude-plugins --plugin ms-office-suiteThis skill uses the workspace's default tool permissions.
This guide covers creating, editing, and analyzing PowerPoint presentations. For HTML-to-PPTX conversion, see [html2pptx.md](references/html2pptx.md). For OOXML technical details, see [ooxml.md](references/ooxml.md).
Creates, edits, and analyzes PPTX presentations using markdown conversion for text and Python unpack for XML access to slides, layouts, notes, comments, themes.
Creates, edits, and analyzes .pptx presentations using Python XML unpacking, markdown extraction, grep for themes/colors, and HTML-to-PPTX for layouts.
Processes .pptx files: extracts text with markitdown, thumbnails, XML unpack; edits presentations; creates decks with pptxgenjs.
Share bugs, ideas, or general feedback.
This guide covers creating, editing, and analyzing PowerPoint presentations. For HTML-to-PPTX conversion, see html2pptx.md. For OOXML technical details, see ooxml.md.
| Task | Approach | Reference |
|---|---|---|
| Read/analyze slides | Markdown conversion or raw XML | This file |
| Create from HTML | html2pptx library | html2pptx.md |
| Create from template | Python scripts | This file |
| Edit existing PPTX | Unpack/modify/repack | ooxml.md |
Important: .pptx files are ZIP archives containing XML and resources.
# Using markitdown
markitdown presentation.pptx > slides.md
# Unpack
python ooxml/scripts/unpack.py presentation.pptx unpacked/
# View slide content
cat unpacked/ppt/slides/slide1.xml
# View speaker notes
cat unpacked/ppt/notesSlides/notesSlide1.xml
python scripts/thumbnail.py presentation.pptx thumbnails/
Creates a visual grid showing all slides for quick analysis.
See html2pptx.md for complete guide.
# 1. Analyze template
python scripts/inventory.py template.pptx > inventory.json
# 2. Create replacements JSON
# Map placeholder text to new content
# 3. Apply replacements
python scripts/replace.py template.pptx replacements.json output.pptx
Choose palette based on content:
| Style | Background | Primary | Secondary | Accent |
|---|---|---|---|---|
| Corporate | FFFFFF | 2C3E50 | 34495E | 3498DB |
| Creative | F5F5F5 | E74C3C | F39C12 | 9B59B6 |
| Tech | 1A1A2E | 16213E | 0F3460 | E94560 |
| Nature | F0F4F0 | 27AE60 | 2ECC71 | 16A085 |
| Elegant | FAF9F5 | 141413 | B0AEA5 | D97757 |
Creates thumbnail grids for visual analysis.
python scripts/thumbnail.py input.pptx output_dir/ [--columns 5]
Extracts all text shapes with properties.
python scripts/inventory.py input.pptx > inventory.json
Output includes:
Applies text replacements from JSON.
python scripts/replace.py input.pptx replacements.json output.pptx
Replacements format:
{
"slide_1": {
"shape_2": "New title text",
"shape_5": "Updated bullet points"
}
}
Duplicates, reorders, or deletes slides.
python scripts/rearrange.py input.pptx operations.json output.pptx
Operations format (0-indexed):
{
"operations": [
{"action": "duplicate", "source": 0, "count": 2},
{"action": "delete", "index": 5},
{"action": "move", "from": 3, "to": 1}
]
}
Validates PPTX structure and content.
python ooxml/scripts/validate.py output.pptx
Checks:
python ooxml/scripts/unpack.py input.pptx unpacked/python ooxml/scripts/validate.py unpacked/python ooxml/scripts/pack.py unpacked/ output.pptx<a:t> elements in slide XMLppt/media/, update relationshipspresentation.xml <p:sldIdLst>See ooxml.md for detailed XML patterns.
# Python
pip install markitdown python-pptx Pillow defusedxml
# JavaScript (for html2pptx)
npm install pptxgenjs playwright sharp
# System tools (for thumbnails)
brew install libreoffice poppler # macOS
apt-get install libreoffice poppler-utils # Ubuntu