Skills

pptx: work with .pptx and .potx presentations

Use this when you need to open, create, or change .pptx/.potx files. First require the preinstalled pptxgenjs directly; when making thumbnails, pass a prefix that will not overwrite someone else's grid.

Official source · pptx

Install

require('pptxgenjs')

Who it's for

Whenever a .pptx or .potx file is involved — as input, output, or both — use this pptx guide. That includes making slides, pitch decks, or presentations, and reading, parsing, or extracting text from them. The summary also puts editing, merging, splitting, templates, notes, and comments in the same scope. The trigger is: you need to open, create, or change this kind of file.

It picks a path by task, not a single GUI. The material does not list agent products; do not treat this as exclusive to one piece of software. The official guide page is

https://raw.githubusercontent.com/anthropics/skills/main/skills/pptx/SKILL.md

First try in 3 minutes

The recommended first path is the one the material states: pptxgenjs is already preinstalled, so do not run npm install first. Write a script and run:

require('pptxgenjs')

Prerequisite: the current environment can run this require. Success signal: the import succeeds and does not report a missing module. This is a read-only check; do not write a presentation to disk yet. Only if require fails may you use the fallback on the same page, npm install pptxgenjs. Do not treat the fallback install as the default first step.

If the import succeeds and you confirm you want a new file, then write a script that generates a .pptx. Before writing to disk, confirm the output filename and whether it would overwrite an existing deck. The summary says reading can use markitdown or thumbnail.py, but the excerpt does not write a complete markitdown call; thumbnail.py has overwrite risk (see the cases below), so do not run thumbnails first.

Use cases

Case 1: Create a new presentation. The path is pptxgenjs: write a script and require('pptxgenjs') directly; do not npm install first. The material describes .pptx as a ZIP of XML files and says to pick a method by task: create with pptxgenjs, edit by unzipping / changing slide XML / rezipping, read via markitdown or thumbnail.py from the summary. This case covers create only. Done means the script can require successfully and, after you confirm the output path, produces a .pptx. The excerpt does not give a concrete slide API, so do not invent page-layout function names that never appear.

Case 2: Before generating a thumbnail grid for an existing deck, avoid overwrites. The material says you must pass a prefix; the default is thumbnails, which overwrites grids from other presentations in the same directory. The summary requires the second argument to be named after the deck. This command has side effects: pick a prefix that will not collide, confirm the directory has no grid with that name, then run. Done means you have prepared a distinct prefix for this output, not reused the default thumbnails.

Boundaries

.pptx is a ZIP of XML; pick the method by task: create with the preinstalled pptxgenjs; edit the XML; for reading, do not default to installing a package first. Only if require fails, npm install pptxgenjs. The default thumbnail prefix overwrites other grids in the same directory.

Do not write a repository path that never appears as an install command. If capabilities such as markitdown, merge, or split in the summary have no complete command, write only that "the material names them; the steps are not expanded." Beyond these written triggers, require order, and prefix side effects, this guide does not cover the rest.