Skip to content
Agentmart
Submit a tool

pptx

Use when building or editing PowerPoint decks (.pptx) — slides, pitch decks, report presentations, speaker notes, applying a corporate template, or extracting…

Skill by iaa2005

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/iaa2005-pptx

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when building or editing PowerPoint decks (.pptx) — slides, pitch decks, report presentations, speaker notes, applying a corporate template, or extracting text from an existing deck.

Use cases: documents, presentations, writing, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/pptx

What's inside

Skill name
pptx
Description
Use when building or editing PowerPoint decks (.pptx) — slides, pitch decks, report presentations, speaker notes, applying a corporate template, or extracting text from an existing deck.
License
MIT
Instructions
138 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (4)

  • SKILL.md
  • reference.md
  • build_deck.py · scripts/
  • inspect_pptx.py · scripts/

SKILL.md (first lines)

Run the scripts in `scripts/` rather than guessing at layout indices.
`reference.md` covers masters and inheritance, placeholders, tables, theme
colours, reordering slides, and what the library cannot do.

## Inspect the template first — always

```
python scripts/inspect_pptx.py template.pptx
python scripts/inspect_pptx.py deck.pptx --slides
```

Layout indices are **not stable**. `prs.slide_layouts[1]` is "Title and
Content" in the default template and something else entirely in a corporate
one, so code written against the default silently produces broken slides in the
user's file. Placeholder indices vary the same way.

Address layouts by name:

```python
layout = next(l for l in prs.slide_layouts if l.name == 'Title and Content')
slide = prs.slides.add_slide(layout)
```

## Building a deck from an outline

For anything longer than two slides, write the outline and let the script fill
the template's placeholders — that is what makes the deck inherit the theme
instead of being a pile of hand-placed text boxes.

```
python scripts/build_deck.py --example > outline.md   # see the format
python scripts/build_deck.py outline.md deck.pptx
python scripts/build_deck.py outline.md deck.pptx --template corporate.pptx
```

`#` starts the title slide (or a section header), `##` a content slide, `-`
bullets fill the body with indentation setting the level, `>` becomes speaker
notes, and `![](chart.png)` places an image. It matches layouts by NAME with
fallbacks, and says so when a layout has no title or body placeholder rather
than dropping content silently.

## Use the user's template as the presentation

If they supply a .pptx, open **that file** — this is what keeps their fonts,
colours, masters and logo:

```python
prs = Presentation('corporate.pptx')     # not Presentation()
```

Never rebuild branding by hand with text boxes. A deck assembled from manually
positioned boxes looks wrong the moment the theme changes, and is unreadable to
accessibility tools.

## Building slides

```python
from pptx import Presentation
from pptx.util import Inches, Pt

prs = Presentation()
layout = next(l for l in prs.slide_layouts if l.name == 'Title and Content')
s = prs.slides.add_slide(layout)

s.shapes.title.text = 'Revenue'
body = s.placeholders[1].text_frame
body.text = 'North leads at 23 771'
p = body.add_paragraph()
p.text = 'Growth 12% YoY'
p.level = 1

s.notes_slide.notes_text_frame.text = 'Mention the west outlier here.'
prs.save('deck.pptx')
```

`placeholders[1]` is the content placeholder in the DEFAULT template — check
the inspect output for the template you are using.

## Images and charts

```python
s.shapes.add_picture('chart.png', Inches(1), Inches(1.5), width=Inches(8))
```

Give width **or** height, not both, unless distortion is intended. Generate the
chart in an earlier RunPython call — files persist in the working directory.

Prefer an image of a chart over a native PowerPoint chart: native charts can be
added, but editing an existing one's data through python-pptx is limited.

## Slide size

The default template is 4:3 (10×7.5in). Modern decks are 16:9:

```python
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
```

Set this **before** adding slides — existing slides do not reflow.

## What belongs on a slide

One idea per slide. If the point needs a paragraph, it belongs in the speaker
notes, not on the slide. Body text no smaller than 18pt — below that it is
unreadable from the back of a room. Prefer a chart to a table, and a table to
numbers buried in prose.

## Extracting

```python
for i, s in enumerate(prs.slides):
    for sh in s.shapes:
        if sh.has_text_frame:
            print(i, sh.text_frame.text)
```

Text inside grouped shapes is not reached by a flat loop over `s.shapes` —
recurse into `sh.shapes` when `sh.shape_type == MSO_SHAPE_TYPE.GROUP`.

From iaa2005/monet-directory, MIT.

More from iaa2005/monet-directory

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Aug 10, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from iaa2005

Cite this page

pptx skill. Agent Mart. https://agentmart.dev/skills/iaa2005-pptx (last updated 2026-10-24)