pptx skill

Anthropic's skill for creating, editing and checking PowerPoint files with pptxgenjs, XML editing, validators and LibreOffice rendering.

Our verdict Recommended

A battle-tested, validator-backed PowerPoint skill; the license is proprietary, so use it as a user rather than a redistributor.

What the pptx skill does

The pptx skill handles any .pptx or .potx task. For new decks it tells the agent to write a pptxgenjs script and gives a long list of gotchas that otherwise corrupt files: set the layout before adding slides, never use # or 8-digit hex colors, do not share option objects between calls, avoid negative shadow offsets, use charSpacing not letterSpacing, and keep charts native. For existing decks or templates it unzips the package, duplicates slides with add_slide.py, prunes orphaned parts with clean.py and edits slide XML directly.

A 21 KB SKILL.md also includes design guidance (palettes, typography, spacing, mistakes to avoid) and a required QA pass: content checks, file validation with scripts/office/validate.py (schema, relationship and chart checks, each failure naming its fix) and visual checks by converting to PDF and images. thumbnail.py produces labeled slide grids, and soffice.py wraps LibreOffice for sandboxed environments. The folder has about 15 Python files. It depends on pptxgenjs, markitdown, Pillow, lxml, LibreOffice and Poppler.

Good for

  • Generating or revising slide decks from an agent
  • Template-based edits where layout fidelity matters
  • Reading and summarizing existing presentations

Not for

  • Anyone who needs to redistribute or embed the skill, since it is proprietary
  • Environments where you cannot install LibreOffice or Python packages

Depth 4/5

A 21 KB SKILL.md with about 15 Python scripts and validators, but no formal tests or evals in the folder.

Dependencies and costs

  • Node package pptxgenjs
  • Python packages markitdown, Pillow, defusedxml, lxml
  • LibreOffice (soffice) and Poppler (pdftoppm)

How to use the Claude PPT skill, step by step

The SKILL.md starts by asking you to choose an approach based on the task:

  1. Create a new deck. The agent writes a pptxgenjs script. pptxgenjs is preinstalled in the skill's environment, so the agent should require('pptxgenjs') directly and run npm install pptxgenjs only if that require fails.
  2. Edit an existing deck or build from a template. The agent unzips the file, edits ppt/slides/slideN.xml, and zips it again.
  3. Read a deck. markitdown deck.pptx returns one block of text per slide. python scripts/thumbnail.py deck.pptx produces a labeled visual grid.

After writeFile(), the agent runs python scripts/office/validate.py deck.pptx and fixes any reported problems in the generator script. The skill says not to hand-edit the packed XML.

Template editing workflow and setup gotchas

For template work, run scripts/thumbnail.py to choose layouts, then duplicate slides or layouts with scripts/add_slide.py unpacked/ slide2.xml --after slideN.xml. To reorder or delete slides, edit <p:sldIdLst> in ppt/presentation.xml. Run scripts/clean.py unpacked/ only after that list is final.

Some setup details are easy to miss:

  • Give thumbnail.py a prefix. The default is thumbnails, and it overwrites grids from other decks in the same directory.
  • For any deck derived from a template, run validate.py with --original src.pptx. Without it, the template's own schema errors show up as if you caused them.
  • Convert to PDF through scripts/office/soffice.py. The skill notes that bare soffice hangs in its sandbox.
  • Do not reorder the children of <p:presentation>.

More slide and chart pitfalls the skill documents

The gotcha list covers more than the items in the summary above. For lists, set bullet: true on each item instead of typing a literal bullet character, which renders double bullets. Space bulleted paragraphs with paraSpaceAfter rather than lineSpacing. Use one new pptxgen() per output file. rectRadius only works on ROUNDED_RECTANGLE. pptxgenjs does not support gradient fills, so use a gradient image as the background. Set margin: 0 on text boxes that must line up with shapes. Put speaker notes in slide.addNotes().

For charts, the defaults render with no title or data labels, so set showTitle, showValue and chartColors. On stacked bar or column charts, a dataLabelPosition of outEnd corrupts the file. Combo charts that use secondary axes need both valAxes and catAxes, with two entries each.

Security review

Review before installing

PowerPoint skill with local Python helpers for adding slides, cleaning, validating and rendering thumbnails of decks through LibreOffice and Poppler. It makes no network calls and has no allowed-tools; in sandboxes that block Unix sockets it temporarily compiles and preloads a C shim for LibreOffice.

Worth knowing

  • Relies on a CLI or package we could not reviewRelies on the npm package pptxgenjs (described as preinstalled), pip packages markitdown, Pillow, defusedxml and lxml, plus LibreOffice and Poppler, none of which are in the repo.skills/pptx/SKILL.md:238

What we checked

The skill folder (56 files) on Oct 29, 2026. Not a full review: 39 of 56 files were not downloaded (large repository; we reviewed the skill folders); we read 1 of 15 code files; it relies on code outside the repository: npm package pptxgenjs, pip packages markitdown / Pillow / defusedxml / lxml, LibreOffice, Poppler, gcc; 39 of 56 files (OOXML schema .xsd files) were not downloaded; only soffice.py was read in full; the other 14 code files were pattern-scanned for network, subprocess, file-write and environment use.

NVIDIA SkillSpector static scan: 9 pattern hits (Dangerous Code Execution 5, Tool Misuse 2, Data Exfiltration 1, MCP Least Privilege 1). The Tool Misuse hits are the documented unzip/rm -f/zip recipe for rebuilding a .pptx; the Env Variable Harvesting hit is os.environ.copy() passed to soffice; subprocess hits are soffice, gcc, git and pdftoppm. No HTTP or socket client code was found beyond a capability probe.

A review, not a certification. Skills change after we check them — read the files before installing.

License

Proprietary, source-available — Anthropic PBC, all rights reserved; use is governed by your agreement with Anthropic or its Consumer/Commercial Terms.

Can it run unattended?

Not really. It is a task skill with a QA loop, but it expects visual review of slides by the user or agent each time.

Alternatives

Frontend Slides

zarazhangrui/frontend-slides

Skill that builds animated, single-file HTML slide decks from scratch or from a PowerPoint, after showing you three visual style previews.

Recommended Check first Depth 4/5

FAQ

What is the pptx skill?

It is Anthropic's skill for working with PowerPoint files: creating decks with pptxgenjs, editing templates by changing the underlying XML, validating the result and rendering slides to images for checks.

How do I install the pptx skill?

Run /plugin marketplace add anthropics/skills and then /plugin install document-skills@anthropic-agent-skills. It is also built into paid Claude.ai plans.

Is the pptx skill open source?

No. The repo calls the document skills source-available, and the folder's license reserves all rights to Anthropic, so read it before copying code into your own product.

pptx skill vs frontend-slides?

Anthropic's pptx produces real .pptx files for PowerPoint. zarazhangrui/frontend-slides builds web-based slide decks with HTML and CSS.

What prompts make Claude use the pptx skill?

The skill's description tells the agent to trigger whenever you mention a deck, slides, a presentation, or a .pptx or .potx filename. This covers reading or extracting text, even when you plan to use the text somewhere else.

Can I use academic-pptx-skill with Anthropic's pptx skill?

Gabberflast/academic-pptx-skill describes itself as working alongside Anthropic's built-in PPTX skill. It adds rules for academic talks, such as action titles and citation standards.

Sources: GitHub repository; install counts from skills.sh via Best Skills (CC BY 4.0). Review based on the published SKILL.md.