# Office Powerpoint

> Read and write Microsoft PowerPoint (.pptx) files. Use when the user asks to read, analyze, create, or convert PowerPoint presentations.

- Skill: `aws-samples/office-powerpoint` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add aws-samples/office-powerpoint`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aws-samples/office-powerpoint/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: aws-samples (https://skillmd.com/u/aws-samples)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/aws-samples/office-powerpoint

---


## Read a PowerPoint file

Converts a `.pptx` to Markdown:

```bash
uv run --with python-pptx ~/.kiro/skills/office-powerpoint/scripts/read_pptx.py "<path_to_pptx>"
```

Save as `.md` file:

```bash
uv run --with python-pptx ~/.kiro/skills/office-powerpoint/scripts/read_pptx.py "<path_to_pptx>" "<output.md>"
```

## Write a PowerPoint file

### Preferred: Directly from markdown content (no intermediate file)

Pipe markdown content directly using `--stdin`:

```bash
echo '<markdown_content>' | uv run --with python-pptx ~/.kiro/skills/office-powerpoint/scripts/write_pptx.py --stdin "<output.pptx>"
```

For multi-line content, use a heredoc:

```bash
uv run --with python-pptx ~/.kiro/skills/office-powerpoint/scripts/write_pptx.py --stdin "<output.pptx>" <<'EOF'
# Slide Title
## Subtitle
- Bullet point 1
- Bullet point 2
> Speaker notes here
---
# Second Slide
- More content
EOF
```

### From an existing Markdown file

```bash
uv run --with python-pptx ~/.kiro/skills/office-powerpoint/scripts/write_pptx.py "<input.md>" "<output.pptx>"
```

If you had to create the `.md` file as an intermediate step, delete it after generating the pptx.

### Markdown format for slides

- `---` separates slides
- `# Title` becomes the slide title
- `## Subtitle` becomes a subtitle (bold, larger font)
- `- item` becomes bullet points
- `> text` becomes speaker notes
- `| col | col |` tables are rendered as slide tables
- Other text becomes body content

## What gets extracted (read)

- Slide titles and text content with hierarchy
- Slide layout names
- Tables within slides as Markdown tables
- Speaker notes as blockquotes
- Bullet point levels preserved as nested lists

