PowerPoint
SkillFiles & storageLets your agent create and edit PowerPoint presentations, including filling in existing .pptx templates.
Then ask your AI: use the PowerPoint skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.
About this skill
Create designed, editable PowerPoint .pptx presentations with PptxGenJS. Use when the user asks to create, generate, update, or inspect a deck, slide deck, presentation, or .pptx file.
What this skill tells your AI
The instructions your AI receives, as published by the-open-agent/openagent in skills/powerpoint/SKILL.md and read by Ahel’s review.
Use this skill whenever a PowerPoint deck is involved. For new decks, pass a trusted PptxGenJS build script directly to the pptx_write tool. For filling or editing an existing template, call pptx_template_analyze first and then pptx_template_fill with the exact IDs returned by analysis.
Workflow
- Decide the deck outline and choose a visual system: palette, typography, repeated motif, and slide rhythm.
- Write JavaScript module content that exports
default async function build(pptx, ctx)or namedbuild(pptx, ctx). - In the script, add slides directly with PptxGenJS. Do not generate HTML for this workflow.
- Call
pptx_writewithpath,script, optionalassets_dir, and optionaldata. - Verify the result with
pptx_read; for visual QA, convert the PPTX to images if the environment has LibreOffice and Poppler.
Template Workflow
- Use
pptx_template_analyzewhen the user provides a.pptxtemplate or wants to preserve existing layouts, charts, images, tables, or SmartArt. - Build a
template_fill_pptx_plan.v1plan from the returned slide IDs and object IDs, then callpptx_template_fill. - For SmartArt, use
smartarts[*].smartart_idandsmartarts[*].nodes[*].node_idinsmartart_edits. This edits existing node text only; it does not create, delete, or relayout SmartArt nodes.
Script Creation
- Put the complete JavaScript module in the
scriptargument. - Do not use
local_file_writeor shell commands to create a temporary.mjsfile for this workflow. - If revising a deck, update the
scriptcontent and callpptx_writeagain.
Tool Contract
{
"tool": "pptx_write",
"arguments": {
"path": "deck.pptx",
"script": "export default async function build(pptx, ctx) {\\n pptx.layout = \"LAYOUT_WIDE\";\\n}",
"assets_dir": "/absolute/path/to/assets",
"data": {"title": "Quarterly Review"}
}
}
The worker creates the PptxGenJS instance and writes the output file. The script only adds slides and content.
export default async function build(pptx, ctx) {
pptx.layout = "LAYOUT_WIDE";
pptx.author = "OpenAgent";
const slide = pptx.addSlide();
slide.background = { color: "FFFFFF" };
slide.addText("Title", {
x: 0.6, y: 0.4, w: 8, h: 0.6,
fontSize: 36, bold: true, color: "1F2937",
margin: 0,
});
slide.addNotes("speaker notes");
}
ctx includes:
ctx.data: JSON data passed from the tool call.ctx.assetsDir: resolved asset directory.ctx.outPath: final PPTX path.ctx.resolveAsset("image.png"): absolute path underassets_dir.ctx.imageData("image.png"): base64 image data URL.ctx.iconSvgData("check", "16A34A"): Font Awesome solid icon as SVG data.
Design Rules
- Avoid plain white bullet decks. Every slide should have a visual element: shape, image, chart, icon, timeline, stat callout, or diagram.
- Vary layouts across the deck: title, divider, two-column, card grid, process flow, quote/callout, and conclusion.
- Pick topic-specific colors. Use one dominant color, one or two supporting tones, and one accent.
- Use strong hierarchy: titles around 36-44 pt, section labels around 20-24 pt, body text around 14-18 pt.
- Keep at least 0.5 inch margins and consistent gaps around 0.3-0.5 inch.
- Use editable text wherever practical; use images for photos, screenshots, logos, or complex visual backgrounds.
- Add speaker notes when useful;
pptx_readcan surface them later.
PptxGenJS Reference
For API patterns, chart examples, bullets, image sizing, icons, and common file-corruption pitfalls, load pptxgenjs.md.
Required QA
- Run
pptx_readon the generated file and check slide order, missing text, typo risk, and notes. - Inspect generated XML or render slides when visual precision matters.
- Watch for overlap, text overflow, low contrast, cramped spacing, repeated layouts, and leftover placeholder text.
- If a visual issue is found, edit the
.mjsscript and rewrite the PPTX.
Signals
- GitHub stars
- 6k
- Forks
- 666
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
powerpoint-the-open-agent- Source
- github.com/the-open-agent/openagent
github.com/the-open-agent/openagent
Related picks
Skill · thedaviddias
The pick for JavaScriptmodern-javascript-patterns
Skill · sickn33
The pick for JavaScriptgolden-pptx-kw
Skill · yusufkaraaslan
The pick for Powerpointpptx
Skill · axoviq-ai
The pick for Powerpointdocx
Skill · anthropics
More in Files & storagexlsx
Skill · anthropics
More in Files & storage