Generate consultant-quality PowerPoint decks from markdown outlines — using your template's actual slide layouts, not text overlays.
Most PowerPoint generation tools treat templates as backgrounds to overlay text on. They:
- Duplicate decorative slides and add text boxes on top
- Fight with background designs and watermarks
- Ignore the template's carefully designed slide layouts
- Produce amateur-looking results
pptx-from-layouts understands PowerPoint's architecture. It:
- Profiles your template's slide master layouts
- Maps your semantic content to appropriate layouts
- Places content in proper placeholders
- Preserves your template's professional design
# Copy to your Claude Code skills directory
cp -r .claude/skills/pptx-from-layouts ~/.claude/skills/python ~/.claude/skills/pptx-from-layouts/scripts/generate.py \
outline.md -o presentation.pptx --template your-template.pptxpython ~/.claude/skills/pptx-from-layouts/scripts/profile.py \
corporate-template.pptx --generate-configWrite markdown with visual type declarations:
# Slide 1: Project Overview
**Visual: hero-statement**
Transforming operations through digital innovation
---
# Slide 2: Our Approach
**Visual: process-3-phase**
[Column 1: Discover]
- Stakeholder interviews
- Competitive audit
[Column 2: Define]
- Workshop facilitation
- Strategic framework
[Column 3: Deliver]
- Implementation
- Training & handover
---
# Slide 3: Investment Summary
**Visual: table**
| Category | Investment |
|----------|------------|
| Research | $50,000 |
| Design | $75,000 |
| **Total** | **$125,000** || Type | Use When |
|---|---|
hero-statement |
Single punchy tagline |
process-N-phase |
Sequential steps (2-5) |
comparison-N |
Side-by-side options |
cards-N |
Discrete parallel items |
table |
Tabular data |
timeline-horizontal |
Date-based sequences |
quote-hero |
Powerful quote |
- Semantic Layout Selection — Visual types map to appropriate template layouts
- Typography Markers —
{blue},{bold},{question}for rich formatting - Template Profiling — Works with any well-designed PPTX template
- Edit Mode — Surgical changes to existing decks
- Validation — Built-in quality checks
| Scenario | Command |
|---|---|
| New presentation from outline | generate.py outline.md -o deck.pptx |
| Use corporate template | profile.py template.pptx then generate |
| Fix typos in existing deck | edit.py deck.pptx --replace '{"old":"2025","new":"2026"}' |
| Reorder slides | edit.py deck.pptx --reorder "0,2,1,3,4" |
| Change Type | Action |
|---|---|
| New presentation | generate.py |
| Typos/values (< 30% slides) | edit.py |
| Reorder slides | edit.py --reorder |
| Layout changes | Regenerate |
| Add/remove slides | Regenerate |
| > 30% slide changes | Regenerate |
See examples/q1-strategy/ for a complete example:
outline.md— Input markdown outlineoutput.pptx— Generated presentationthumbnail.jpg— Visual preview
We tested 32 PowerPoint generation skills. Most use an "inventory/replace" approach that overlays text on template slides — which breaks with many professional templates.
pptx-from-layouts takes a different approach: it uses your template's slide master layouts properly, placing content in actual placeholders instead of fighting the design.
| Skill | Score | Approach | Limitation |
|---|---|---|---|
| pptx-from-layouts | 95 | Slide master layouts | This repo |
| pptx-jjuidev | 94 | Template inventory/replace | Assumes text placeholders exist |
| anthropics-pptx | 90.6 | Template inventory/replace | Same limitation |
| elite-powerpoint-designer | 90 | HTML to PPTX | Creates from scratch, no template reuse |
| pptx-samhvw8 | 88 | Template inventory/replace | Same limitation |
| k-dense-pptx | 85 | Direct python-pptx | Low-level, no semantic understanding |
| python-pptx | 82 | Library wrapper | Manual slide construction |
| powerpoint-igorwarzocha | 80 | Mixed approach | Incomplete implementation |
The 7 alternatives above scored 80+/100 and are included in alternatives/ for comparison.
See detailed analysis →
- Python 3.10+
- python-pptx (
pip install python-pptx) - Claude Code (for skill integration)
MIT — See LICENSE for details.