Analyze PowerPoint (.pptx) presentations by converting them to PDF via Keynote and reading the slides visually.
Scanned 6/11/2026
Install via CLI
openskills install spamsch/son-of-simon---
id: powerpoint
name: PowerPoint Reader
description: Analyze PowerPoint (.pptx) presentations by converting them to PDF via Keynote and reading the slides visually.
apps:
- Keynote
tasks:
- run_shell_command
- read_file
- spotlight_search
essential_tasks: []
examples:
- "Summarize this PowerPoint presentation"
- "What are the key points in slides.pptx?"
- "Read the presentation on my Desktop and list the action items"
- "Compare these two PowerPoint decks"
- "Find the latest presentation I worked on and summarize it"
safe_defaults: {}
confirm_before_write: []
requires_permissions:
- Keynote (Automation)
---
## Behavior Notes
### How It Works
macOS cannot read `.pptx` files as text — they are binary archives. To analyze a PowerPoint presentation, convert it to PDF using Keynote (pre-installed on macOS), then read the PDF visually. This preserves full layout, diagrams, charts, and screenshots.
### Step 1: Find the File
If the user doesn't provide a path, use `spotlight_search` to locate it:
```
spotlight_search(file_name="presentation", content_type="presentation")
```
### Step 2: Convert PPTX to PDF via Keynote
Use `run_shell_command` with this AppleScript. Replace the input/output paths:
```
osascript -e '
set inputFile to POSIX file "/path/to/presentation.pptx"
set outputFile to POSIX file "/tmp/presentation.pdf"
tell application "Keynote"
open inputFile
delay 5
set theDoc to front document
export theDoc to outputFile as PDF with properties {PDF image quality:Best}
close theDoc saving no
end tell
'
```
- The `delay 5` gives Keynote time to render the file. Increase to `delay 10` for very large presentations.
- Keynote opens briefly during conversion — this is expected.
- Always write the PDF to `/tmp/` to avoid cluttering the user's filesystem.
- Use a unique filename if processing multiple files (e.g., `/tmp/deck_sales_q4.pdf`).
### Step 3: Read the PDF
Use `read_file` to read the converted PDF:
```
read_file(file_path="/tmp/presentation.pdf")
```
- Maximum 20 pages can be read at once.
- For larger decks, read in batches using the `offset` parameter and tell the user which slides you're covering.
### Important Rules
- **Never skip the conversion step.** Reading a `.pptx` directly with `read_file` will produce garbage — always convert to PDF first.
- **Clean up after yourself.** Delete the temporary PDF from `/tmp/` when done: `run_shell_command(command="rm /tmp/presentation.pdf")`.
- **Keynote opens .pptx natively.** No plugins or extra software needed.
- **Paths with spaces must be quoted.** The AppleScript `POSIX file` handles this, but ensure the path string itself is correct.
- **If Keynote fails**, it may be because the file is corrupted or uses unsupported features. Tell the user and suggest opening it manually.
### Export as Individual Slide Images (Alternative)
For very image-heavy decks or when you need per-slide analysis:
```
osascript -e '
set inputFile to POSIX file "/path/to/presentation.pptx"
set outputFolder to POSIX file "/tmp/slides"
tell application "Keynote"
open inputFile
delay 5
set theDoc to front document
export theDoc to outputFolder as slide images with properties {image format:PNG, skipped slides:false}
close theDoc saving no
end tell
'
```
This creates `slide001.png`, `slide002.png`, etc. in `/tmp/slides/`. Read individual images with `read_file`.
### Common Patterns
- **"Summarize this deck"** -> Convert to PDF, read all pages, provide summary with key points per slide.
- **"What's on slide 5?"** -> Convert to PDF, read with offset to target that page.
- **"Find my latest presentation"** -> `spotlight_search(recently_used=True, content_type="presentation", days=7)`, then convert and read.
- **"Compare two decks"** -> Convert both to PDF, read both, provide comparison.
No comments yet. Be the first to comment!