/install anthropic-pptx
\r \r
PPTX Skill\r
\r
Quick Reference\r
\r
| Task | Guide |\r
|------|-------|\r
| Read/analyze content | python -m markitdown presentation.pptx |\r
| Edit or create from template | Read editing.md |\r
| Create from scratch | Read pptxgenjs.md |\r
\r
---\r
\r
Reading Content\r
\r
# Text extraction\r
python -m markitdown presentation.pptx\r
\r
# Visual overview\r
python scripts/thumbnail.py presentation.pptx\r
\r
# Raw XML\r
python scripts/office/unpack.py presentation.pptx unpacked/\r
```\r
\r
---\r
\r
## Editing Workflow\r
\r
**Read [editing.md](editing.md) for full details.**\r
\r
1. Analyze template with `thumbnail.py`\r
2. Unpack → manipulate slides → edit content → clean → pack\r
\r
---\r
\r
## Creating from Scratch\r
\r
**Read [pptxgenjs.md](pptxgenjs.md) for full details.**\r
\r
Use when no template or reference presentation is available.\r
\r
---\r
\r
## Design Ideas\r
\r
**Don't create boring slides.** Plain bullets on a white background won't impress anyone. Consider ideas from this list for each slide.\r
\r
### Before Starting\r
\r
- **Pick a bold, content-informed color palette**: The palette should feel designed for THIS topic. If swapping your colors into a completely different presentation would still "work," you haven't made specific enough choices.\r
- **Dominance over equality**: One color should dominate (60-70% visual weight), with 1-2 supporting tones and one sharp accent. Never give all colors equal weight.\r
- **Dark/light contrast**: Dark backgrounds for title + conclusion slides, light for content ("sandwich" structure). Or commit to dark throughout for a premium feel.\r
- **Commit to a visual motif**: Pick ONE distinctive element and repeat it — rounded image frames, icons in colored circles, thick single-side borders. Carry it across every slide.\r
\r
### Color Palettes\r
\r
Choose colors that match your topic — don't default to generic blue. Use these palettes as inspiration:\r
\r
| Theme | Primary | Secondary | Accent |\r
|-------|---------|-----------|--------|\r
| **Midnight Executive** | `1E2761` (navy) | `CADCFC` (ice blue) | `FFFFFF` (white) |\r
| **Forest & Moss** | `2C5F2D` (forest) | `97BC62` (moss) | `F5F5F5` (cream) |\r
| **Coral Energy** | `F96167` (coral) | `F9E795` (gold) | `2F3C7E` (navy) |\r
| **Warm Terracotta** | `B85042` (terracotta) | `E7E8D1` (sand) | `A7BEAE` (sage) |\r
| **Ocean Gradient** | `065A82` (deep blue) | `1C7293` (teal) | `21295C` (midnight) |\r
| **Charcoal Minimal** | `36454F` (charcoal) | `F2F2F2` (off-white) | `212121` (black) |\r
| **Teal Trust** | `028090` (teal) | `00A896` (seafoam) | `02C39A` (mint) |\r
| **Berry & Cream** | `6D2E46` (berry) | `A26769` (dusty rose) | `ECE2D0` (cream) |\r
| **Sage Calm** | `84B59F` (sage) | `69A297` (eucalyptus) | `50808E` (slate) |\r
| **Cherry Bold** | `990011` (cherry) | `FCF6F5` (off-white) | `2F3C7E` (navy) |\r
\r
### For Each Slide\r
\r
**Every slide needs a visual element** — image, chart, icon, or shape. Text-only slides are forgettable.\r
\r
**Layout options:**\r
- Two-column (text left, illustration on right)\r
- Icon + text rows (icon in colored circle, bold header, description below)\r
- 2x2 or 2x3 grid (image on one side, grid of content blocks on other)\r
- Half-bleed image (full left or right side) with content overlay\r
\r
**Data display:**\r
- Large stat callouts (big numbers 60-72pt with small labels below)\r
- Comparison columns (before/after, pros/cons, side-by-side options)\r
- Timeline or process flow (numbered steps, arrows)\r
\r
**Visual polish:**\r
- Icons in small colored circles next to section headers\r
- Italic accent text for key stats or taglines\r
\r
### Typography\r
\r
**Choose an interesting font pairing** — don't default to Arial. Pick a header font with personality and pair it with a clean body font.\r
\r
| Header Font | Body Font |\r
|-------------|-----------|\r
| Georgia | Calibri |\r
| Arial Black | Arial |\r
| Calibri | Calibri Light |\r
| Cambria | Calibri |\r
| Trebuchet MS | Calibri |\r
| Impact | Arial |\r
| Palatino | Garamond |\r
| Consolas | Calibri |\r
\r
| Element | Size |\r
|---------|------|\r
| Slide title | 36-44pt bold |\r
| Section header | 20-24pt bold |\r
| Body text | 14-16pt |\r
| Captions | 10-12pt muted |\r
\r
### Spacing\r
\r
- 0.5" minimum margins\r
- 0.3-0.5" between content blocks\r
- Leave breathing room—don't fill every inch\r
\r
### Avoid (Common Mistakes)\r
\r
- **Don't repeat the same layout** — vary columns, cards, and callouts across slides\r
- **Don't center body text** — left-align paragraphs and lists; center only titles\r
- **Don't skimp on size contrast** — titles need 36pt+ to stand out from 14-16pt body\r
- **Don't default to blue** — pick colors that reflect the specific topic\r
- **Don't mix spacing randomly** — choose 0.3" or 0.5" gaps and use consistently\r
- **Don't style one slide and leave the rest plain** — commit fully or keep it simple throughout\r
- **Don't create text-only slides** — add images, icons, charts, or visual elements; avoid plain title + bullets\r
- **Don't forget text box padding** — when aligning lines or shapes with text edges, set `margin: 0` on the text box or offset the shape to account for padding\r
- **Don't use low-contrast elements** — icons AND text need strong contrast against the background; avoid light text on light backgrounds or dark text on dark backgrounds\r
- **NEVER use accent lines under titles** — these are a hallmark of AI-generated slides; use whitespace or background color instead\r
\r
---\r
\r
## QA (Required)\r
\r
**Assume there are problems. Your job is to find them.**\r
\r
Your first render is almost never correct. Approach QA as a bug hunt, not a confirmation step. If you found zero issues on first inspection, you weren't looking hard enough.\r
\r
### Content QA\r
\r
```bash\r
python -m markitdown output.pptx\r
```\r
\r
Check for missing content, typos, wrong order.\r
\r
**When using templates, check for leftover placeholder text:**\r
\r
```bash\r
python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout"\r
```\r
\r
If grep returns results, fix them before declaring success.\r
\r
### Visual QA\r
\r
**⚠️ USE SUBAGENTS** — even for 2-3 slides. You've been staring at the code and will see what you expect, not what's there. Subagents have fresh eyes.\r
\r
Convert slides to images (see [Converting to Images](#converting-to-images)), then use this prompt:\r
\r
```\r
Visually inspect these slides. Assume there are issues — find them.\r
\r
Look for:\r
- Overlapping elements (text through shapes, lines through words, stacked elements)\r
- Text overflow or cut off at edges/box boundaries\r
- Decorative lines positioned for single-line text but title wrapped to two lines\r
- Source citations or footers colliding with content above\r
- Elements too close (\x3C 0.3" gaps) or cards/sections nearly touching\r
- Uneven gaps (large empty area in one place, cramped in another)\r
- Insufficient margin from slide edges (\x3C 0.5")\r
- Columns or similar elements not aligned consistently\r
- Low-contrast text (e.g., light gray text on cream-colored background)\r
- Low-contrast icons (e.g., dark icons on dark backgrounds without a contrasting circle)\r
- Text boxes too narrow causing excessive wrapping\r
- Leftover placeholder content\r
\r
For each slide, list issues or areas of concern, even if minor.\r
\r
Read and analyze these images:\r
1. /path/to/slide-01.jpg (Expected: [brief description])\r
2. /path/to/slide-02.jpg (Expected: [brief description])\r
\r
Report ALL issues found, including minor ones.\r
```\r
\r
### Verification Loop\r
\r
1. Generate slides → Convert to images → Inspect\r
2. **List issues found** (if none found, look again more critically)\r
3. Fix issues\r
4. **Re-verify affected slides** — one fix often creates another problem\r
5. Repeat until a full pass reveals no new issues\r
\r
**Do not declare success until you've completed at least one fix-and-verify cycle.**\r
\r
---\r
\r
## Converting to Images\r
\r
Convert presentations to individual slide images for visual inspection:\r
\r
```bash\r
python scripts/office/soffice.py --headless --convert-to pdf output.pptx\r
pdftoppm -jpeg -r 150 output.pdf slide\r
```\r
\r
This creates `slide-01.jpg`, `slide-02.jpg`, etc.\r
\r
To re-render specific slides after fixes:\r
\r
```bash\r
pdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed\r
```\r
\r
---\r
\r
## Dependencies\r
\r
- `pip install "markitdown[pptx]"` - text extraction\r
- `pip install Pillow` - thumbnail grids\r
- `npm install -g pptxgenjs` - creating from scratch\r
- LibreOffice (`soffice`) - PDF conversion (auto-configured for sandboxed environments via `scripts/office/soffice.py`)\r
- Poppler (`pdftoppm`) - PDF to images\r
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install anthropic-pptx - After installation, invoke the skill by name or use
/anthropic-pptx - Provide required inputs per the skill's parameter spec and get structured output
What is anthropic-pptx?
Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations;... It is an AI Agent Skill for Claude Code / OpenClaw, with 66 downloads so far.
How do I install anthropic-pptx?
Run "/install anthropic-pptx" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is anthropic-pptx free?
Yes, anthropic-pptx is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does anthropic-pptx support?
anthropic-pptx is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created anthropic-pptx?
It is built and maintained by chang (@liberalchang); the current version is v1.0.0.