pptx-from-layouts-skill
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 27 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
This tool is a Python-based agent skill that generates professional PowerPoint presentations from markdown outlines. It leverages a template's native slide master layouts to properly format slides, rather than simply overlaying text onto background images.
Security Assessment
Overall risk: Low. The static code scan of 12 files found no dangerous patterns and the tool requires no overly broad system permissions. Functionally, it relies solely on the trusted `python-pptx` library to read and write local `.pptx` files. The core scripts run entirely offline and do not make external network requests, nor do they prompt for API keys or contain hardcoded secrets. Because it is a command-line tool, it naturally executes within the context of your local shell environment. While the README provides a prompt meant to be pasted into AI coding agents (like Claude Code) to automate the installation, the manual setup only runs standard, predictable local commands (`git clone` and `pip install`).
Quality Assessment
Quality is good. The repository is highly active, with its most recent code push occurring today. It enjoys a solid foundation of community trust for a niche developer tool, currently backed by 27 GitHub stars. It is an excellent open-source citizen, clearly licensed under the permissive and standard MIT license. The setup is lightweight, requiring only Python 3.10+ and a single Python dependency.
Verdict
Safe to use.
Claude Code skill for generating PowerPoint decks from markdown using template slide master layouts
pptx-from-layouts
Generate consultant-quality PowerPoint decks from markdown outlines —
using your template's actual slide layouts, not text overlays.
The Problem
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
The Solution
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
Quick Start
Install it yourself (one prompt)
Paste this into Claude Code, Codex, OpenCode, or any other coding agent and it'll
install the skill, wire it up to your own template, and leave you with a workinggenerate.py you can run from anywhere:
Please install the pptx-from-layouts Claude skill from
https://github.com/tristan-mcinnis/pptx-from-layouts-skill and adapt it to my
setup:
1. Clone the repo to a scratch directory, or fetch the .claude/skills/pptx-from-layouts
folder directly.
2. Copy that folder to ~/.claude/skills/pptx-from-layouts/ (create the parent if
needed). Confirm `~/.claude/skills/pptx-from-layouts/SKILL.md` exists.
3. Install the one Python dep: `pip install python-pptx` (Python 3.10+).
4. Ask me which PowerPoint template I want to use as the default. If I give you
one, copy it to ~/.claude/skills/pptx-from-layouts/templates/default.pptx
and run
python ~/.claude/skills/pptx-from-layouts/scripts/profile.py \
~/.claude/skills/pptx-from-layouts/templates/default.pptx --generate-config
to emit the matching config JSON alongside it. If I don't have one, use the
bundled Inner Chapter template shipped in templates/.
5. Smoke test: generate the canonical example with my new default template and
open it so I can eyeball it.
6. Tell me the three commands I'll actually use day-to-day (generate, edit, validate)
with my template path baked in.
Or install it manually
# 1. Clone or download this repo
git clone https://github.com/tristan-mcinnis/pptx-from-layouts-skill.git
cd pptx-from-layouts-skill
# 2. Copy the skill into your Claude Code skills directory
mkdir -p ~/.claude/skills
cp -r .claude/skills/pptx-from-layouts ~/.claude/skills/
# 3. Install the one Python dependency
pip install python-pptx
Generate a Presentation
python ~/.claude/skills/pptx-from-layouts/scripts/generate.py \
outline.md -o presentation.pptx --template your-template.pptx
Profile a New Template
python ~/.claude/skills/pptx-from-layouts/scripts/profile.py \
corporate-template.pptx --generate-config
Outline Format
Write 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** |
Visual Types
| 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 |
Features
- 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
Workflows
| 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 --inventory -o inv.json → edit paragraphs[i].text → edit.py deck.pptx --replace inv.json |
| Reorder slides | edit.py deck.pptx --reorder "0,2,1,3,4" |
Mode Decision
| 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 |
Example Output
See examples/q1-strategy/ for a complete example:
outline.md— Input markdown outlineoutput.pptx— Generated presentationthumbnail.jpg— Visual preview
Why This Skill?
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 →
Requirements
- Python 3.10+
- python-pptx (
pip install python-pptx) - Claude Code (for skill integration)
License
MIT — See LICENSE for details.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found