Install
openclaw skills install pptx-localizedUse 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 any .pptx file; editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions 'deck,' 'slides,' 'presentation,' or references a .pptx filename. If a .pptx file needs to be opened, created, or touched, use this skill.
openclaw skills install pptx-localizedOriginal: anthropics/skills Localized for WorkBuddy by 非宜
| Task | Guide |
|---|---|
| Read/analyze content | python -m markitdown presentation.pptx |
| Edit or create from template | Read editing.md |
| Create from scratch | Read pptxgenjs.md |
# Text extraction
python -m markitdown presentation.pptx
# Visual overview (requires LibreOffice + Poppler)
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.
Uses pptxgenjs (Node.js) to programmatically generate .pptx files.
Don't create boring slides. Plain bullets on a white background won't impress anyone. Consider ideas from this list for each slide.
| Theme | Primary | Secondary | Accent |
|---|---|---|---|
| Midnight Executive | 1E2761 (navy) | CADCFC (ice blue) | FFFFFF (white) |
| Forest & Moss | 2C5F2D (forest) | 97BC62 (moss) | F5F5F5 (cream) |
| Coral Energy | F96167 (coral) | F9E795 (gold) | 2F3C7E (navy) |
| Warm Terracotta | B85042 (terracotta) | E7E8D1 (sand) | A7BEAE (sage) |
| Ocean Gradient | 065A82 (deep blue) | 1C7293 (teal) | 21295C (midnight) |
| Charcoal Minimal | 36454F (charcoal) | F2F2F2 (off-white) | 212121 (black) |
| Header Font | Body Font |
|---|---|
| Georgia | Calibri |
| Arial Black | Arial |
| Calibri | Calibri Light |
| Cambria | Calibri |
| Trebuchet MS | Calibri |
| Element | Size |
|---|---|
| Slide title | 36-44pt bold |
| Section header | 20-24pt bold |
| Body text | 14-16pt |
| Captions | 10-12pt muted |
Assume there are problems. Your job is to find them.
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"
Convert slides to images, then inspect visually:
# Convert to PDF first (requires LibreOffice)
python scripts/office/soffice.py --headless --convert-to pdf output.pptx
# Convert PDF to JPEG images (requires Poppler - pdftoppm)
pdftoppm -jpeg -r 150 output.pdf slide
This creates slide-01.jpg, slide-02.jpg, etc.
Install these once (managed under ~/.workbuddy/binaries/):
# Python: text extraction
pip install "markitdown[pptx]" Pillow defusedxml
# Node.js: create presentations from scratch
npm install -g pptxgenjs
# Optional (for visual QA):
# - LibreOffice (soffice) for PDF conversion
# - Poppler (pdftoppm) for PDF-to-image conversion
Windows Note:
soffice.pyin this localized version skips theAF_UNIXsocket shim (Linux-only). It simply runssofficedirectly viasubprocess.run. Make sure LibreOffice is installed andsofficeis in your PATH, or set theSOFFICE_PATHenvironment variable to the full path ofsoffice.exe.
scripts/office/soffice.py — Removed AF_UNIX / LD_PRELOAD shim logic.
Windows never blocks AF_UNIX, so the script just delegates to soffice directly.scripts/office/unpack.py / pack.py — Use defusedxml.minidom (same as upstream).
No changes needed.C:\Users\Administrator\.workbuddy\binaries\node\versions\node-v20.18.0-win-x64\node.exe
and the managed npm global prefix for pptxgenjs.pdftoppm — On Windows, install Poppler for Windows
or use png output from LibreOffice directly as a fallback.| Script | Purpose |
|---|---|
scripts/office/unpack.py | Extract and pretty-print PPTX |
scripts/add_slide.py | Duplicate slide or create from layout |
scripts/clean.py | Remove orphaned files |
scripts/office/pack.py | Repack with validation |
scripts/thumbnail.py | Create visual grid of slides |
scripts/office/soffice.py | Run LibreOffice (Windows-compatible) |