PPTX
rvdbreemen/OTGW-firmware
Use this skill any time a .pptx file is involved in any way — as input, output, or both.
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.
$ npx skills add pipeshub-ai/pipeshub-ai --skill pptx -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pipeshub-ai/pipeshub-ai pptx --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "pptx" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx into .claude/skills/pptx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/pptxType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pipeshub-ai/pipeshub-ai --skill pptx -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pipeshub-ai/pipeshub-ai pptx --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .agents/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx .agents/skills/pptx && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pptx" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx into .agents/skills/pptx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pipeshub-ai/pipeshub-ai --skill pptx -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pipeshub-ai/pipeshub-ai pptx --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx .cursor/skills/pptx && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pptx" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx into .cursor/skills/pptx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pipeshub-ai/pipeshub-ai.git --path backend/python/app/agents/agent_loop/skills/builtin_packs/pptx--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pipeshub-ai/pipeshub-ai --skill pptx -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pipeshub-ai/pipeshub-ai pptx --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx .gemini/skills/pptx && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pptx" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx into .gemini/skills/pptx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pipeshub-ai/pipeshub-ai pptxInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pipeshub-ai/pipeshub-ai --skill pptx -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .github/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx .github/skills/pptx && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pptx" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx into .github/skills/pptx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pipeshub-ai/pipeshub-ai --skill pptx -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pipeshub-ai/pipeshub-ai pptx --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx .opencode/skills/pptx && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pptx" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/pptx into .opencode/skills/pptx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pptxCreates 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. 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.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit a883af6. It shows what the files ask for, not the result of running them.
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.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
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.
.claude/skills/pptx/SKILL.md (or your agent's skills folder).| Task | Approach |
|---|---|
| Create a new deck from scratch | pptxgenjs — write a TypeScript program (packages: ["pptxgenjs"]) and run it via your coding tool |
| Edit an existing .pptx | office-utils: unpack → edit XML → pack (see that skill) |
| Read / extract text from a .pptx | python-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.
Minimal skeleton — writeFile is async and MUST be awaited before the program exits, or the file is silently truncated/missing:
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:
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.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.
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.
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
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
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| PowerPoint Deck Builder this skillpipeshub-ai/pipeshub-ai | 3.8k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| PPTXrvdbreemen/OTGW-firmware | 207 | 34 repos | ~2.3k | Automated safety check: Pass | Proprietary | |
| PPTX Generatorpoco-ai/poco-claw | 1.4k | 4 repos | ~2k | Automated safety check: Pass | MIT | |
| Python PPTX Generatorsickn33/agentic-awesome-skills | 47k | 2 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Slide Deckcoreyhaines31/makerskills | 850 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Slides PolishAI4Scientist/nano-scientist | 128 | 2 repos | ~7k | Automated safety check: Notes | None |
rvdbreemen/OTGW-firmware
Use this skill any time a .pptx file is involved in any way — as input, output, or both.
poco-ai/poco-claw
Generate, edit, and read PowerPoint presentations. An agent skill from poco-ai/poco-claw.
sickn33/agentic-awesome-skills
Generate complete Python scripts that build polished PowerPoint decks with python-pptx and real slide content.
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/).
AI4Scientist/nano-scientist
Per-page Codex review + targeted python-pptx / Beamer fixes for academic talk slides.
bluzir/claude-code-design
Export an HTML deck to PPTX via per-slide screenshots. An agent skill from bluzir/claude-code-design.
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.
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.
pipeshub-ai/pipeshub-ai
Picks the right library for generating a new PDF, filling an existing PDF form, or extracting text and tables, defaulting to Node where possible.
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.
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.
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.
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.