powerpoint
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; reading, parsing, or extracting text from a
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; reading, parsing, or extracting text from a
Real data. Real impact.
Emerging
Developers
Per week
Excellent
Skills give you superpowers. Install in 30 seconds.
| Task | Guide |
|---|---|
| Read/analyze content | |
| Edit or create from template | Read editing.md |
| Create from scratch | Read pptxgenjs.md |
# Text extraction python -m markitdown presentation.pptx # Visual overview python scripts/thumbnail.py presentation.pptx # Raw XML python scripts/office/unpack.py presentation.pptx unpacked/
Read editing.md for full details.
thumbnail.pyRead pptxgenjs.md for full details.
Use when no template or reference presentation is available.
Don't create boring slides. Plain bullets on a white background won't impress anyone. Consider ideas from this list for each slide.
Choose colors that match your topic — don't default to generic blue. Use these palettes as inspiration:
| Theme | Primary | Secondary | Accent |
|---|---|---|---|
| Midnight Executive | (navy) | (ice blue) | (white) |
| Forest & Moss | (forest) | (moss) | (cream) |
| Coral Energy | (coral) | (gold) | (navy) |
| Warm Terracotta | (terracotta) | (sand) | (sage) |
| Ocean Gradient | (deep blue) | (teal) | (midnight) |
| Charcoal Minimal | (charcoal) | (off-white) | (black) |
| Teal Trust | (teal) | (seafoam) | (mint) |
| Berry & Cream | (berry) | (dusty rose) | (cream) |
| Sage Calm | (sage) | (eucalyptus) | (slate) |
| Cherry Bold | (cherry) | (off-white) | (navy) |
Every slide needs a visual element — image, chart, icon, or shape. Text-only slides are forgettable.
Layout options:
Data display:
Visual polish:
Choose an interesting font pairing — don't default to Arial. Pick a header font with personality and pair it with a clean body font.
| Header Font | Body Font |
|---|---|
| Georgia | Calibri |
| Arial Black | Arial |
| Calibri | Calibri Light |
| Cambria | Calibri |
| Trebuchet MS | Calibri |
| Impact | Arial |
| Palatino | Garamond |
| Consolas | Calibri |
| Element | Size |
|---|---|
| Slide title | 36-44pt bold |
| Section header | 20-24pt bold |
| Body text | 14-16pt |
| Captions | 10-12pt muted |
margin: 0 on the text box or offset the shape to account for paddingAssume there are problems. Your job is to find them.
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.
python -m markitdown output.pptx
Check for missing content, typos, wrong order.
When using templates, check for leftover placeholder text:
python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout"
If grep returns results, fix them before declaring success.
⚠️ 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.
Convert slides to images (see Converting to Images), then use this prompt:
Visually inspect these slides. Assume there are issues — find them. Look for: - Overlapping elements (text through shapes, lines through words, stacked elements) - Text overflow or cut off at edges/box boundaries - Decorative lines positioned for single-line text but title wrapped to two lines - Source citations or footers colliding with content above - Elements too close (< 0.3" gaps) or cards/sections nearly touching - Uneven gaps (large empty area in one place, cramped in another) - Insufficient margin from slide edges (< 0.5") - Columns or similar elements not aligned consistently - Low-contrast text (e.g., light gray text on cream-colored background) - Low-contrast icons (e.g., dark icons on dark backgrounds without a contrasting circle) - Text boxes too narrow causing excessive wrapping - Leftover placeholder content For each slide, list issues or areas of concern, even if minor. Read and analyze these images: 1. /path/to/slide-01.jpg (Expected: [brief description]) 2. /path/to/slide-02.jpg (Expected: [brief description]) Report ALL issues found, including minor ones.
Do not declare success until you've completed at least one fix-and-verify cycle.
Convert presentations to individual slide images for visual inspection:
python scripts/office/soffice.py --headless --convert-to pdf output.pptx pdftoppm -jpeg -r 150 output.pdf slide
This creates
slide-01.jpg, slide-02.jpg, etc.
To re-render specific slides after fixes:
pdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed
pip install "markitdown[pptx]" - text extractionpip install Pillow - thumbnail gridsnpm install -g pptxgenjs - creating from scratchsoffice) - PDF conversion (auto-configured for sandboxed environments via scripts/office/soffice.py)pdftoppm) - PDF to imagesProprietary. LICENSE.txt has complete terms
mkdir -p ~/.hermes/skills/productivity/powerpoint && curl -o ~/.hermes/skills/productivity/powerpoint/SKILL.md https://raw.githubusercontent.com/NousResearch/hermes-agent/main/skills/productivity/powerpoint/SKILL.md1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.