pptx-from-layouts-skill

agent
Security Audit
Pass
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
Purpose
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.
SUMMARY

Claude Code skill for generating PowerPoint decks from markdown using template slide master layouts

README.md

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 working
generate.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

See full reference →

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].textedit.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 outline
  • output.pptx — Generated presentation
  • thumbnail.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)

No results found