The `pptx` Claude Code Skill: Generate PowerPoint Presentations with AI

PowerPoint generation is one of those tasks that sits at an uncomfortable intersection: the output is inherently visual, the file format is complex, and the libraries that handle it are powerful but require enough boilerplate that getting anything to look right takes far longer than it should. python-pptx gives you complete control over slides programmatically — but “complete control” means making a lot of low-level decisions about master layouts, placeholder indices, and EMU units that you’d rather not think about.

The pptx Claude Code skill gives Claude the context it needs to generate presentation code correctly — the right patterns, the right python-pptx APIs, and the awareness of the quirks that catch people out when they’re reading existing .pptx files or building decks from scratch. It works in both directions: generating new presentations and extracting content from existing ones.


What the pptx Skill Covers

Building presentations from scratch. Creating slides with titles, body text, bullet points, and speaker notes; adding images and charts; applying themes and slide layouts from a master; setting text formatting correctly via paragraph runs rather than shortcut methods that look right but break font inheritance.

Working with templates. Opening an existing branded .pptx file as a template and populating placeholder content — names, dates, metrics, chart data — without disturbing the master formatting. This is where most programmatic presentation generation actually lives in practice.

Reading and extracting from existing files. Iterating over slides, extracting text from placeholders and text frames, reading chart data and table contents. Useful when you need to parse existing decks for content, update slides programmatically, or build a diff between two versions of a presentation.

Charts and data visualisation. Inserting bar charts, line charts, and pie charts with data from Python dictionaries or pandas DataFrames — the skill covers the correct chart data API which is significantly different from what you’d expect if you’re used to matplotlib.


Example Workflow: Generating a Metrics Deck

A common use case: you have a branded PowerPoint template and need to generate a monthly performance deck from a data source, with updated charts and key figures on each slide.

Generate a monthly metrics presentation from metrics.json.
Use our branded template at templates/monthly-template.pptx.
For each metric in the JSON:
- Update the title placeholder with the metric name
- Update the value placeholder with the current month figure  
- Add a bar chart showing the last 6 months trend
- Update the speaker notes with a one-paragraph narrative

Save to output/metrics-may-2026.pptx

With the pptx skill active, Claude understands how to locate the correct placeholders by index rather than guessing, how to add chart data using python-pptx’s ChartData API, and how to update text without breaking the template’s paragraph formatting. The resulting deck uses the branded template correctly and opens cleanly in PowerPoint and Keynote.


The Placeholder Problem

The most common pain point in python-pptx work is placeholders. PowerPoint slides have typed placeholders — title, body, content, date, footer — identified by index numbers that aren’t always obvious from looking at the template. The naive approach is to iterate over slide.placeholders and guess which one to update. This works on simple slides and breaks on anything complex.

The skill teaches Claude to first inspect the placeholder layout by printing placeholder indices and types, then target the correct one by index. This is the difference between code that works on your test template and code that works on every slide in a 40-slide deck.


Reading Existing Presentations

The skill is equally useful when you need to go the other direction — extracting content from existing decks rather than generating new ones. Parsing a supplier’s pricing deck, extracting action items from a meeting presentation, or checking that every slide in a compliance deck has the required disclaimers are all tasks the skill handles cleanly.

Read all slides in the attached presentation.
Extract: slide number, title, and all body text.
Output as a structured JSON file at output/deck-content.json.

Further Reading


Presentation generation is one of the more satisfying automation wins — the kind of task that was previously a weekly manual chore and can become a one-command script. The pptx skill gives Claude the specific knowledge to get there without the usual python-pptx trial and error. Describe the deck you need, and Claude generates code that produces it correctly.


Leave a Reply