Agent skill

PowerPoint Deck Builder

by pipeshub-ai in pipeshub-ai/pipeshub-ai

Creates new PowerPoint decks with pptxgenjs in TypeScript, reads existing decks with python-pptx, and applies a design-quality checklist so every slide has real visual hierarchy.

Apache-2.0Auto-check passedDocuments & Office

Install PowerPoint Deck Builder

skills CLI
$ npx skills add pipeshub-ai/pipeshub-ai --skill pptx -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install pipeshub-ai/pipeshub-ai pptx --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx .claude/skills/pptx && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pptx
GitHub stars
3.8k
Token cost
~1.6k tokens
SKILL.md length
620 words
Files
1
Skills in repo
9
Repo updated
First seen
Licence
Apache-2.0

At a glance

Creates new PowerPoint decks with pptxgenjs in TypeScript, reads existing decks with python-pptx, and applies a design-quality checklist so every slide has real visual hierarchy.

  • Works in 5 steps: Pick a color palette informed by the… → Vary layout across slides — don't reuse… → Avoid dense walls of text. A slide is a… → …
  • Creating a new PowerPoint deck from scratch with pptxgenjs
  • SKILL.md covers Quick Reference, Creating a new deck (pptxgenjs), Editing an existing .pptx and Reading a deck, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

For creating a deck from scratch, the skill insists on pptxgenjs run as a TypeScript program rather than python-pptx, since python-pptx's creation API only produces flat, template-default output; python-pptx stays in the environment solely for reading and extracting text from existing decks. Editing an existing .pptx instead goes through a separate office-utils skill that unpacks, edits the XML and repacks the file. A minimal pptxgenjs skeleton must await its async writeFile call before the program exits, or the output file is silently truncated or missing; positions and sizes are given in inches and colors are hex strings without a leading hash.

Design quality is treated as equal to technical correctness: the checklist opens with picking a color palette informed by the deck's topic rather than a random default, one dominant color for accents and headers plus one or two neutrals for backgrounds and body text, stating the chosen palette in a code comment, since five unrelated colors reads as generated rather than designed.

When your agent uses it

  • Creating a new PowerPoint deck from scratch with pptxgenjs
  • Reading or extracting text from an existing .pptx file
  • Choosing a deliberate color palette for a presentation instead of defaults

Example prompts

  • “Build a 10-slide investor pitch deck with pptxgenjs in a navy and gray palette.”
  • “Extract the bullet points from this existing quarterly review deck.”
  • “Add a table slide showing our Q3 numbers to the deck I'm building.”

Requirements

  • Node.js with pptxgenjs for creating decks
  • Python with python-pptx for reading decks

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Pick a color palette informed by the topic, not a random default. One dominant color (used for accents, headers, key numbers) plus one or…
  2. Vary layout across slides — don't reuse the same "title + bullet list" template for all of them. A title slide, a two-column comparison…
  3. Avoid dense walls of text. A slide is a visual aid, not a document — 5-7 words per bullet, 3-5 bullets per slide is a reasonable ceiling…
  4. Set explicit font sizes for hierarchy — title text meaningfully larger (28-40pt) than body text (16-20pt); don't rely on template defaults…
  5. Before finishing, run through this checklist against your generated code: Does every slide have a clear single takeaway? Is there a…

What it can do on your machine

Read from SKILL.md and the folder at commit a883af6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

PowerPoint Deck Builder loads about 1.6k tokens when it runs. Until then it costs about 110 tokens; SKILL.md has 620 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~110
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from pipeshub-ai/pipeshub-ai at commit a883af6, republished under its Apache-2.0 licence (© pipeshub-ai). 620 words, ~1,581 tokens.

Download SKILL.mdSave it as .claude/skills/pptx/SKILL.md (or your agent's skills folder).
name
pptx
description
Use this skill whenever the user asks for a PowerPoint presentation, a .pptx file, or slides for a talk/pitch/report — creating a new deck from scratch, editing an existing .pptx, or reading/summarizing an existing deck's content. Covers slide layout, color/typography choices, and a content-quality checklist for professional-looking output. Does not cover rendering slides to images for visual QA (see the 'Not supported' section).

PowerPoint presentations (.pptx)

Quick Reference

TaskApproach
Create a new deck from scratchpptxgenjs — write a TypeScript program (packages: ["pptxgenjs"]) and run it via your coding tool
Edit an existing .pptxoffice-utils: unpack → edit XML → pack (see that skill)
Read / extract text from a .pptxpython-pptx (Python, already installed)

Always CREATE decks with pptxgenjs in TypeScript — never with python-pptx. python-pptx is in this environment only for reading existing decks; its creation API produces flat, template-default output and is not the supported path here. Run the TypeScript program via whatever coding surface you have: the run_code tool directly (language="typescript", packages=["pptxgenjs"]), or the coding_agent delegate — in that case restate these library/language requirements in its goal. pptxgenjs is pre-installed in the standard sandbox image, so the install step is an instant no-op there, and the packages arg covers any sandbox where it isn't.

Creating a new deck (pptxgenjs)

Minimal skeleton — writeFile is async and MUST be awaited before the program exits, or the file is silently truncated/missing:

typescript
import PptxGenJS from "pptxgenjs";

async function main() {
  const pptx = new PptxGenJS();
  pptx.defineLayout({ name: "WIDE", width: 13.33, height: 7.5 });
  pptx.layout = "WIDE";

  // Title slide — distinct from content slides.
  const title = pptx.addSlide();
  title.background = { color: "1B2A4A" }; // deliberate palette, not a default
  title.addText("Bug Bash — Last 2 Months", {
    x: 0.8, y: 2.6, w: 11.7, h: 1.2, fontSize: 40, bold: true, color: "FFFFFF",
  });
  title.addText("Leadership summary", { x: 0.8, y: 3.9, w: 11.7, h: 0.6, fontSize: 18, color: "9DB2D0" });

  // Content slide with header accent + bullets.
  const slide = pptx.addSlide();
  slide.addShape("rect", { x: 0, y: 0, w: 13.33, h: 0.9, fill: { color: "1B2A4A" } });
  slide.addText("Key findings", { x: 0.5, y: 0.12, w: 9, h: 0.66, fontSize: 24, bold: true, color: "FFFFFF" });
  slide.addText([
    { text: "12 sessions held across 9 feature areas", options: { bullet: true } },
    { text: "38 bugs filed, 31 resolved", options: { bullet: true } },
  ], { x: 0.7, y: 1.3, w: 11.9, h: 4.5, fontSize: 18, color: "222222" });

  await pptx.writeFile({ fileName: "deck.pptx" });
}

main();

Positions/sizes are in inches on the slide layout; colors are hex strings without #. addTable(rows, options) handles tabular slides; addImage({ data: "image/png;base64,..." }) embeds charts rendered elsewhere.

Design quality matters as much as technical correctness for a deck; a technically valid presentation with no visual hierarchy still reads as low-effort. Apply this checklist to every deck you generate:

  1. Pick a color palette informed by the topic, not a random default. One dominant color (used for accents, headers, key numbers) plus one or two neutrals (backgrounds, body text) reads as designed; five unrelated colors reads as generated. A finance deck skews navy/gray; a creative pitch can use a bolder accent — pick deliberately and state your choice in a code comment.
  2. Vary layout across slides — don't reuse the same "title + bullet list" template for all of them. A title slide, a two-column comparison slide, a big-number/stat slide, and a section-divider slide all look different in pptxgenjs's addSlide()/addText()/addShape()/addImage() API. A deck where every slide is identical bullet-point boilerplate is a common failure mode — actively avoid it.
  3. Avoid dense walls of text. A slide is a visual aid, not a document — 5-7 words per bullet, 3-5 bullets per slide is a reasonable ceiling. If the source content is denser than that, summarize it for the slide and note that the detail lives in a companion doc, rather than shrinking the font to fit everything.
  4. Set explicit font sizes for hierarchy — title text meaningfully larger (28-40pt) than body text (16-20pt); don't rely on template defaults if you're building shapes/text boxes manually.
  5. Before finishing, run through this checklist against your generated code: Does every slide have a clear single takeaway? Is there a consistent color/font scheme across all slides? Are any text boxes likely to overflow their bounding box given the content length? Is the title slide distinct from content slides?
Show full SKILL.md (148 more words)Show less

Editing an existing .pptx

Use office-utils's unpack → edit → pack cycle: individual slides live at ppt/slides/slide1.xml, ppt/slides/slide2.xml, etc. inside the unpacked tree (matching ppt/_rels/presentation.xml.rels' slide ordering). Make the smallest edit that achieves the goal — editing one slide's text run rather than regenerating the whole deck preserves the original author's layout/theme/master-slide choices that a from-scratch pptxgenjs regeneration would lose.

Reading a deck

python-pptx: Presentation(path).slides → each slide's .shapes exposes .text_frame.text for text content and .table for tables. Already installed — no install_packages call needed.

Not supported in this environment

  • Rendering slides to images for visual QA requires LibreOffice (soffice) + Poppler, neither of which is installed in the sandbox yet. You cannot visually verify a generated deck's layout — rely on the content-quality checklist above and on structural checks (does the file still parse? are text boxes' declared dimensions large enough for their text at the chosen font size?) instead of an actual render.

© pipeshub-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in backend/python/app/agents/agent_loop/skills/builtin_packs/pptx of pipeshub-ai/pipeshub-ai.

Open the folder on GitHubat commit a883af6

Compare with similar skills

PowerPoint Deck Builder next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

PowerPoint Deck Builder compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PowerPoint Deck Builder this skillpipeshub-ai/pipeshub-ai3.8k—~1.6kAutomated safety check: PassApache-2.0
PPTXrvdbreemen/OTGW-firmware20734 repos~2.3kAutomated safety check: PassProprietary
PPTX Generatorpoco-ai/poco-claw1.4k4 repos~2kAutomated safety check: PassMIT
Python PPTX Generatorsickn33/agentic-awesome-skills47k2 repos~1.1kAutomated safety check: PassMIT
Slide Deckcoreyhaines31/makerskills850—~4.3kAutomated safety check: PassMIT
Slides PolishAI4Scientist/nano-scientist1282 repos~7kAutomated safety check: NotesNone

Similar skills

  • PPTX

    rvdbreemen/OTGW-firmware

    Use this skill any time a .pptx file is involved in any way — as input, output, or both.

    207 GitHub starsUsed in 34 repos~2.3k tokens
    Documents & OfficeAuto-check passed
  • PPTX Generator

    poco-ai/poco-claw

    Generate, edit, and read PowerPoint presentations. An agent skill from poco-ai/poco-claw.

    1.4k GitHub starsUsed in 4 repos~2k tokens
    Documents & OfficeAuto-check passed
  • Python PPTX Generator

    sickn33/agentic-awesome-skills

    Generate complete Python scripts that build polished PowerPoint decks with python-pptx and real slide content.

    47k GitHub starsUsed in 2 repos~1.1k tokens
    Documents & OfficeAuto-check passed
  • Slide Deck

    coreyhaines31/makerskills

    When you want to draft, update, convert, or export a slide deck for a React/Next.js slide system (${SLIDEDECKREPO:-$HOME/code/your-slide-deck-site}/src/app/slides/).

    850 GitHub stars~4.3k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Slides Polish

    AI4Scientist/nano-scientist

    Per-page Codex review + targeted python-pptx / Beamer fixes for academic talk slides.

    128 GitHub starsUsed in 2 repos~7k tokens
    Documents & OfficeAuto-check: notes
  • Export PPTX

    bluzir/claude-code-design

    Export an HTML deck to PPTX via per-slide screenshots. An agent skill from bluzir/claude-code-design.

    106 GitHub stars~433 tokensUpdated 5 mo ago
    Documents & OfficeAuto-check passed

More from pipeshub-ai/pipeshub-ai

All 9 skills in this repo
  • PipesHub Excel Spreadsheet Builder

    pipeshub-ai/pipeshub-ai

    Creates and edits .xlsx workbooks with real Excel formulas rather than hardcoded computed values, defaulting to exceljs in TypeScript with a static formula-safety check.

    3.8k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Office Open XML Utilities

    pipeshub-ai/pipeshub-ai

    Unpacks a .docx or .pptx into pretty-printed XML, lets you make small targeted edits, and repacks it into a file Office will open.

    3.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Picks the right library for generating a new PDF, filling an existing PDF form, or extracting text and tables, defaulting to Node where possible.

    3.8k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Verified Data Analysis with pandas

    pipeshub-ai/pipeshub-ai

    Loads, cleans, aggregates and joins tabular data with pandas under a verification rule: every number reported must be one that the code actually printed.

    3.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Chart Type Selection Guide

    pipeshub-ai/pipeshub-ai

    Picks the right chart type for a data question and applies readability rules like axis labels, colorblind palettes and legend restraint.

    3.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Word Document Creation And Editing

    pipeshub-ai/pipeshub-ai

    Routes a Word document request to the right approach: a TypeScript library for new files, XML editing for existing ones, and plain reading only.

    3.8k GitHub stars~1.3k tokensUpdated today
    Auto-check passed

Questions about PowerPoint Deck Builder

What does PowerPoint Deck Builder do?

Creates new PowerPoint decks with pptxgenjs in TypeScript, reads existing decks with python-pptx, and applies a design-quality checklist so every slide has real visual hierarchy. For creating a deck from scratch, the skill insists on pptxgenjs run as a TypeScript program rather than python-pptx, since python-pptx's creation API only produces flat, template-default output; python-pptx stays in the environment solely for reading and extracting text from existing decks.pptx instead goes through a separate office-utils skill that unpacks, edits the XML and repacks the file.

When should I use PowerPoint Deck Builder?

PowerPoint Deck Builder fits situations like: creating a new PowerPoint deck from scratch with pptxgenjs; reading or extracting text from an existing .pptx file; choosing a deliberate color palette for a presentation instead of defaults.

How do I install PowerPoint Deck Builder in Claude Code?

Run `npx skills add pipeshub-ai/pipeshub-ai --skill pptx -a claude-code`. Or copy the skill folder (backend/python/app/agents/agent_loop/skills/builtin_packs/pptx in pipeshub-ai/pipeshub-ai) into .claude/skills/pptx in your project. Claude Code loads it when a task matches its description.

How do I install PowerPoint Deck Builder in Codex?

Run `npx skills add pipeshub-ai/pipeshub-ai --skill pptx -a codex`. Or copy the skill folder (backend/python/app/agents/agent_loop/skills/builtin_packs/pptx in pipeshub-ai/pipeshub-ai) into .agents/skills/pptx in your project. Codex loads it when a task matches its description.

Can I use PowerPoint Deck Builder in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pipeshub-ai/pipeshub-ai --skill pptx -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pptx, .gemini/skills/pptx, .github/skills/pptx and .opencode/skills/pptx in your project.

What does PowerPoint Deck Builder need to run?

SKILL.md names no scripts, command-line tools or credentials: PowerPoint Deck Builder is instructions for the agent only. Our summary lists: Node.js with pptxgenjs for creating decks; Python with python-pptx for reading decks.

Does PowerPoint Deck Builder access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is PowerPoint Deck Builder safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does PowerPoint Deck Builder use?

PowerPoint Deck Builder is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does PowerPoint Deck Builder use?

About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to PowerPoint Deck Builder?

Skills that share tags, products or a category with PowerPoint Deck Builder: PPTX (rvdbreemen/OTGW-firmware, 207 stars), PPTX Generator (poco-ai/poco-claw, 1.4k stars), Python PPTX Generator (sickn33/agentic-awesome-skills, 47k stars) and Slide Deck (coreyhaines31/makerskills, 850 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PowerPoint Deck Builder?

pipeshub-ai (a GitHub organization) maintains it in pipeshub-ai/pipeshub-ai, which has 3,821 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 9, 2026.

Source: pipeshub-ai/pipeshub-ai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.