Agent skill · Content & Marketing

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, regard

guanyanggithub.com/guanyangGitHub ↗
claude-codeships scriptsMIT
Install
npx skills add guanyang/open-agent-hub --skill pptx --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 115
SKILL.md size: 20 KB
Bundled scripts: yes
Path: skills/pptx/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 940
Language: TypeScript

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# 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/add_slide.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/offi

What's inside
Steps it walks through
  1. Scripts
  2. Creating with pptxgenjs — gotchas
  3. Editing existing decks and templates
  4. Design Ideas
  5. Before Starting
  6. Color Palettes
  7. For Each Slide
  8. Typography
  9. Spacing
  10. Avoid (Common Mistakes)
  11. QA (Required)
  12. Content QA
  13. File QA (required)
  14. Visual QA
Ships with 24 files
  • LICENSE.txt
  • editing.md
  • html2pptx.md
  • ooxml.md
  • ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd
  • ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd
first 24 of 115
Commands it runs
python3 -c "import sys,zipfile; zipfile.ZipFile(sys.argv[1]).extractall('unpacked')" deck.pptx
python scripts/add_slide.py unpacked/ slide2.xml --after slide2.xml   # duplicate a slide (or slideLayoutN.xml); prints the new slide's path
reorder / delete slides = edit <p:sldIdLst> in ppt/presentation.xml
python scripts/clean.py unpacked/                                     # after deletions: removes orphaned slides, media, rels
edit slide content in ppt/slides/slideN.xml
python scripts/office/validate.py out.pptx --original deck.pptx
markitdown output.pptx
markitdown output.pptx | grep -iE "\bx{3,}\b|lorem|ipsum|\bTODO|\[insert|this.*(page|slide).*layout"
python scripts/office/validate.py output.pptx                      # built from scratch
python scripts/office/validate.py output.pptx --original src.pptx  # built from a template
More from open-agent-hub
All skills →
About this skill
What does the pptx skill do?

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, regard

How do I install it?

Run `npx skills add guanyang/open-agent-hub --skill pptx --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From guanyang/open-agent-hub, a repository with 940 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going