Agent skill · creative production · k-dense-ai

pptx

Use this skill any time a .pptx or .potx 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 or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.

Why this skill is useful

Adds multiple executable scripts for creating, editing, and validating .pptx files that extend the AI's capabilities beyond generic knowledge.

What it needs

Requires node, python installed locally. About 12k tokens when loaded. Last updated 2026-08-03. 32,849 stars on the source repository.

What this skill does

PPTX creation, editing, and analysis A .pptx is a ZIP archive of XML files. Choose your approach by task: Task Approach --- --- Create a new deck Write a pptxgenjs script — see gotchas below Edit an existing deck, or build from a template unzip → edit ppt/slides/slideN.xml → zip Read content markitdown deck.pptx (one block per slide under <!-- Slide number: N --> markers); visual grid: python scripts/thumbnail.py deck.pptx Scripts Paths are relative to this skill's directory. Everything else is plain Python, node, or shell. Script What it does --- --- scripts/thumbnail.py deck.pptx [prefix] Labeled grid of every slide, for picking template layouts. .pptx only. Pass prefix — it defaults to thumbnails, which overwrites the grids of any other deck done in the same directory scripts/addslide.py unpacked/ slide2.xml [--after slideN.xml] Duplicate a slide (or a slideLayoutN.xml) with all the package bookkeeping. Also takes a .pptx directly with -o out.pptx scripts/clean.py unpacked/ Delete slides, media, and rels no longer referenced. Run after <p:sldIdLst> is final scripts/office/validate.py deck.pptx [--original src.pptx] Schema, relationship, content-type, chart and slide checks; each failure names its fix. Pass --original for any template-derived deck — it baselines the schema checks against the template, so the template's own XSD errors don't read as yours scripts/office/soffice.py --headless --convert-to pdf deck.pptx LibreOffice wrapper — bare soffice hangs in this sandbox Creating with pptxgenjs — gotchas pptxgenjs is preinstalled — do not run npm install first; write the script and require('pptxgenjs') directly. Only if that require fails: npm install pptxgenjs. The model knows the API; these are the footguns: Set pres.layout before adding slides. The default canvas is LAYOUT16x9 = 10" × 5.625", not 13.3" wide. Coordinates past the edge are written, not clamped — the shape just isn't on the slide. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills k-dense-ai/pptx

View the source on GitHub

Browse the @skills marketplace