| name | pptx |
| description | Read and inspect existing .pptx PowerPoint files (text, speaker notes, slide images). Use only for reading uploaded PowerPoint files — to AUTHOR a deck use the slides skill instead. |
pptx — PowerPoint presentations
Reading and inspection of .pptx files. Editing and creation are not yet
supported.
Making a presentation, slide deck, or "slides"? This is NOT the
skill — use the slides skill (org/public/core/slides/SKILL.md),
which authors HTML decks with a live, editable preview. Reach for pptx
ONLY when the user explicitly works with a PowerPoint .pptx file —
reading one they uploaded, or when they specifically ask for .pptx
output (not yet supported here).
Quick reference
| Task | Command |
|---|
| Plain-text dump | pptx-extract <file.pptx> |
| Plain-text + speaker notes | pptx-extract --notes <file.pptx> |
| Visual overview (grid image) | pptx-thumbnail <file.pptx> |
| One slide at full resolution | pptx-rasterize --pages 3 <file.pptx> |
| Several slides | pptx-rasterize --pages 1,3-5 <file.pptx> |
| Raw XML inspection | pptx-unpack <file.pptx> |
Every command writes its output next to the input file and prints the
output path(s) on stdout.
Reading text
pptx-extract prints each slide as a ## Slide N section followed by the
visible text. Speaker notes are excluded by default; pass --notes to
include them under a ### Notes subsection per slide.
Visual overview
pptx-thumbnail produces two artifacts:
- A composite grid image at
<input-stem>.thumbnail.jpg — 4-column grid
with a small slide-number overlay on each cell. Suitable for a single
multimodal read to get the shape of the deck.
- A directory
<input-stem>.slides/ containing per-slide JPGs at the
same resolution. When a slide in the grid looks interesting, read
slide-NNN.jpg directly instead of re-running pptx-thumbnail.
To actually see the rendered image, call the read tool on the path
pptx-thumbnail printed:
read /home/sandbox/deck.thumbnail.jpg
The image is injected into the next turn as a vision input.
Per-slide rasterization
pptx-rasterize renders specific slides at higher DPI (default 150) into
<input-stem>.rasterized/slide-NNN.jpg. Use --pages 3 for a single
slide or --pages 1,3-5 for a selection. Override DPI with --dpi.
Pass the resulting path to the read tool to actually see the slide.
Raw XML
pptx-unpack unzips the .pptx into <input-stem>.unpacked/. Useful
locations inside:
ppt/slides/slideN.xml — slide content
ppt/notesSlides/notesSlideN.xml — speaker notes
ppt/media/ — embedded images
ppt/theme/ — color palette and font definitions
Direct python-pptx usage
For programmatic access beyond what these scripts cover (table cell data,
shape positions, layout metadata, etc.), import pptx directly. The
library is preinstalled.
from pptx import Presentation
prs = Presentation("/path/to/file.pptx")
for slide in prs.slides:
for shape in slide.shapes:
...