Agent skill

PPTX Skill

by OpenLoaf in OpenLoaf/OpenLoaf

Triggers whenever the user asks to do anything with PowerPoint slides (.pptx): read, summarize, extract, edit, create, or convert.

AGPL-3.0Auto-check passedDocuments & Office

Install PPTX Skill

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

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

GitHub CLI
$ gh skill install OpenLoaf/OpenLoaf pptx-skill --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/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/pptx/en .claude/skills/pptx-skill && 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-skill
GitHub stars
107
Token cost
~2.9k tokens
SKILL.md length
729 words
Files
1
Skills in repo
34
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Triggers whenever the user asks to do anything with PowerPoint slides (.pptx): read, summarize, extract, edit, create, or convert.

  • Works in 4 steps: Read: Start with PptxInspect(summary) → Write: JsSandbox + pptxgenjs → Format Conversion → …
  • Ever the user asks to do anything with PowerPoint slides (.pptx): read
  • SKILL.md covers Tool List, 1. Read: Start with…, 2. Write: JsSandbox + pptxgenjs and 2.4 Per-slide Visual…, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

PPTX Skill is an agent skill from OpenLoaf/OpenLoaf. Triggers whenever the user asks to do anything with PowerPoint slides (.pptx): read, summarize, extract, edit, create, or convert. Key insight: PPTX files are visually structured — charts, diagrams, and layouts cannot be reliably captured by text extraction alone. The correct approach for understanding slide content is to render the target slide(s) as PNG images (via PptxInspect render) and pass them to a vision model (CloudImageUnderstand), not to rely solely on text/outline extraction. Use text tools (outline /…

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Documents & Office, covering PowerPoint presentations and Slides and decks. It works with Microsoft PowerPoint and python-pptx. The repository describes itself as: 🍞Open-source, local-first AI workspace with Agents, multi-model chat (GPT/Claude/Gemini/DeepSeek), Notion-like docs, AI image & video generation, email, calendar & terminal…. The licence is AGPL-3.0.

When your agent uses it

  • Ever the user asks to do anything with PowerPoint slides (.pptx): read
  • Mentions a .pptx file

Example prompts

  • “summarize this PPT”
  • “what is this deck about”
  • “s on slide 3”
  • “/pptx-skill”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Read: Start with PptxInspect(summary)
  2. Write: JsSandbox + pptxgenjs
  3. Format Conversion
  4. Common Error Recovery

What it can do on your machine

Read from SKILL.md and the folder at commit f7eccf6. 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 javascript).

    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

PPTX Skill loads about 2.9k tokens when it runs. Until then it costs about 208 tokens; SKILL.md has 729 words of instructions outside code blocks.

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

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 OpenLoaf/OpenLoaf at commit f7eccf6, republished under its AGPL-3.0 licence (© OpenLoaf). 729 words, ~2,927 tokens.

Download SKILL.mdSave it as .claude/skills/pptx-skill/SKILL.md (or your agent's skills folder).
name
pptx-skill
description
Triggers whenever the user asks to do anything with PowerPoint slides (.pptx): read, summarize, extract, edit, create, or convert. Key insight: PPTX files are visually structured — charts, diagrams, and layouts cannot be reliably captured by text extraction alone. The correct approach for understanding slide content is to render the target slide(s) as PNG images (via PptxInspect render) and pass them to a vision model (CloudImageUnderstand), not to rely solely on text/outline extraction. Use text tools (outline / text / shapes) only as supplementary context. Typical phrasings: "summarize this PPT", "what is this deck about", "what's on slide 3", "describe page 5", "make me a Q4 report deck", "change the title of slide 3". Load this skill whenever the user mentions a .pptx file, deck, slides, or presentation.

PPTX Skill

Read with PptxInspect; write / edit / create with JsSandbox running Node scripts (preferred library: pptxgenjs); format conversion with DocConvert; visual OCR with CloudImageUnderstand.

Tool List

ToolResponsibilityRead-only
PptxInspectRead: summary / outline / text / notes / tables / shapes / images / xml / renderYes
JsSandboxAll write: create / edit / generate from scratch — use pptxgenjs for new decks, adm-zip to patch existing XMLNo
DocConvertpptx ↔ pdf / html / mdNo
CloudImageUnderstandOCR / chart understanding on rendered slidesNo

Loading (two steps):

  1. LoadSkill pptx-skill
  2. ToolSearch(query: "select:PptxInspect,JsSandbox,DocConvert")

Read / DocPreview on a .pptx return only Markdown-level body text (losing shape coordinates, speaker notes, table structure, and XML detail). Any task that involves analyzing, summarizing, editing, or reviewing a deck goes through PptxInspect + JsSandbox.


1. Read: Start with PptxInspect(summary)

PptxInspect { action: "summary", filePath: "…" }

Returns slideCount / layoutCount / masterCount / hasNotes / hasCharts / hasSmartArt / creator / modifiedAt / fileSize plus a suggestedNextTool hint. Decision table:

SituationNext step
Don't know the deck's shapesummary → outline to scan titles
Need slide contenttext (body text) / notes (speaker notes)
Need to locate anomalous visualsshapes to get the shape tree, then render on suspicious slides
Need visual verificationrender with slideNumbers filter
Need to export embedded imagesimages with extractImages=true
Need to plan XML-level editsxml with partName for the target part
1.1 Render notes

render uses node-pptx-png (skia-canvas-based, pure Node) — no LibreOffice dependency.

Known limitations:

  • SmartArt, custom DrawingML charts (non-OpenXML), and WMF/EMF vector backgrounds may degrade.
  • When fidelity matters: fallback to DocConvert(from="pptx", to="pdf") + PdfInspect(render) (LibreOffice rendering chain), or use render + CloudImageUnderstand for OCR.

2. Write: JsSandbox + pptxgenjs

2.1 Demo: Generate a quarterly business review deck
js
import pptxgen from 'pptxgenjs'

const pres = new pptxgen()
// Standard PowerPoint widescreen is 13.333 × 7.5 inches; in pptxgenjs that is LAYOUT_WIDE.
// Do not pair 13.33-based coordinates with LAYOUT_16x9 (10 × 5.625 inches),
// or shapes/text will be placed outside the slide bounds.
pres.layout = 'LAYOUT_WIDE'
pres.defineSlideMaster({
  title: 'MAIN',
  background: { color: 'FFFFFF' },
  objects: [
    { rect: { x: 0, y: 7.0, w: 13.33, h: 0.5, fill: { color: '1F3A8A' } } },
    { text: {
      text: 'OpenLoaf · 2026 Q1 Business Review',
      options: { x: 0.5, y: 7.05, w: 12, h: 0.4, fontSize: 10, color: 'FFFFFF' },
    }},
  ],
})

// Cover slide
const s1 = pres.addSlide({ masterName: 'MAIN' })
s1.addText('2026 Q1 Business Review', {
  x: 0.5, y: 2.2, w: 12.3, h: 1.5,
  fontSize: 44, bold: true, color: '1F3A8A',
  fontFace: 'Calibri',
})
s1.addText('Product Team · John Smith   2026-04-20', {
  x: 0.5, y: 4.0, w: 12.3, h: 0.6,
  fontSize: 18, color: '475569', fontFace: 'Calibri',
})

// Key metrics
const s2 = pres.addSlide({ masterName: 'MAIN' })
s2.addText('Key Metrics', {
  x: 0.5, y: 0.4, w: 12.3, h: 0.8,
  fontSize: 28, bold: true, color: '1F3A8A', fontFace: 'Calibri',
})
const kpis = [
  { label: 'Revenue',      value: '+32%',   color: '16A34A' },
  { label: 'Paying Users', value: '12k',    color: '2563EB' },
  { label: 'NPS',          value: '42→51',  color: '9333EA' },
]
kpis.forEach((k, i) => {
  const x = 0.5 + i * 4.3
  s2.addShape(pres.ShapeType.roundRect, {
    x, y: 2.0, w: 4.0, h: 3.0, fill: { color: 'F1F5F9' }, line: { color: 'CBD5E1' },
  })
  s2.addText(k.value, {
    x, y: 2.4, w: 4.0, h: 1.0, align: 'center',
    fontSize: 40, bold: true, color: k.color, fontFace: 'Calibri',
  })
  s2.addText(k.label, {
    x, y: 3.6, w: 4.0, h: 0.6, align: 'center',
    fontSize: 18, color: '475569', fontFace: 'Calibri',
  })
})
s2.addNotes('All three Q1 KPIs significantly exceeded targets. Paying users up 46% QoQ.')

// Bar chart slide
const s3 = pres.addSlide({ masterName: 'MAIN' })
s3.addText('Monthly Revenue', {
  x: 0.5, y: 0.4, w: 12.3, h: 0.8,
  fontSize: 28, bold: true, color: '1F3A8A', fontFace: 'Calibri',
})
s3.addChart(pres.ChartType.bar, [{
  name: 'Revenue ($k)',
  labels: ['Jan', 'Feb', 'Mar'],
  values: [820, 1050, 1340],
}], {
  x: 1.0, y: 1.5, w: 11.3, h: 5.5,
  showTitle: false, showLegend: true, showValue: true,
})

// Q&A slide
const s4 = pres.addSlide({ masterName: 'MAIN' })
s4.addText('Q & A', {
  x: 0.5, y: 3.0, w: 12.3, h: 1.5, align: 'center',
  fontSize: 60, bold: true, color: '1F3A8A', fontFace: 'Calibri',
})

await pres.writeFile({ fileName: 'q1_review.pptx' })
console.log('q1_review.pptx written')

Key points:

  • pptxgenjs API is fully object-based ({x, y, w, h, fontSize, ...}) — no JSON string concatenation.
  • Lock the slide coordinate system before placing objects: LAYOUT_WIDE = 13.333 × 7.5 (standard widescreen); LAYOUT_16x9 = 10 × 5.625. If your coordinates assume 13.33, use LAYOUT_WIDE or a custom layout with that exact size.
  • CJK content requires fontFace (e.g. 'Microsoft YaHei' / 'Noto Sans CJK SC'); without it, the default Latin font may substitute or corrupt CJK characters.
  • addChart natively supports bar / line / pie / doughnut; for "image-feel" charts, render a PNG with chartjs-node-canvas then addImage it.
2.2 Demo: Generate N slides from a data array (one item per slide)
js
import pptxgen from 'pptxgenjs'

const items = [
  { title: 'Scene 1: The Arrival', desc: 'City aerial opening → multi-angle road shots → pull into market' },
  { title: 'Scene 2: Loading Power', desc: 'Owner greeting → full-load unboxing → trunk 87% opening rate 1831mm' },
  { title: 'Scene 3: Superior Chassis', desc: '186mm ground clearance + fold-flat cargo + fixed tie-down anchors' },
]

const pres = new pptxgen()
pres.layout = 'LAYOUT_WIDE'

const cover = pres.addSlide()
cover.addText('V6 Commercial — Shot List', {
  x: 0.5, y: 2.8, w: 12.3, h: 1.3, align: 'center',
  fontSize: 40, bold: true, color: '0F172A', fontFace: 'Calibri',
})

items.forEach((it, i) => {
  const s = pres.addSlide()
  s.addText(`${i + 1}. ${it.title}`, {
    x: 0.5, y: 0.5, w: 12.3, h: 0.8,
    fontSize: 26, bold: true, color: '1F3A8A', fontFace: 'Calibri',
  })
  s.addText(it.desc, {
    x: 0.5, y: 1.7, w: 12.3, h: 3.5,
    fontSize: 20, color: '334155', fontFace: 'Calibri',
    valign: 'top',
  })
})

await pres.writeFile({ fileName: 'storyboard.pptx' })
console.log(`storyboard.pptx — ${items.length + 1} slides`)
2.3 Demo: Edit the title of slide N in an existing deck

pptxgenjs is generation-only and cannot read existing files. To edit an old deck, patch the XML with adm-zip:

js
import AdmZip from 'adm-zip'
import fs from 'node:fs/promises'

const zip = new AdmZip(await fs.readFile('deck.pptx'))
const target = 'ppt/slides/slide3.xml'
let xml = zip.readAsText(target)
// Simple replacement of the first a:t text node
xml = xml.replace(/<a:t>[^<]*<\/a:t>/, '<a:t>New Title</a:t>')
zip.updateFile(target, Buffer.from(xml, 'utf-8'))
await fs.writeFile('deck.pptx', zip.toBuffer())
console.log('slide 3 title updated')

This is a hard XML patch and will fail if the run is split across multiple a:r elements. The reliable approach is to regenerate the whole deck with pptxgenjs.


Show full SKILL.md (311 more words)Show less

2.4 Per-slide Visual Understanding (branch by model capability)

When the user asks "what's on slide N?" / "what does this chart mean?" / "how does slide 5 look?" — anything that needs visual comprehension — branch on the current model's native-inputs (see the <system-tag type="msg-context"> at the end of each user turn):

Branch A — vision-capable model (native-inputs includes image): render to PNG, then Read the image path. The runtime injects the image as a native part via a follow-up user message at the next step, so you observe the pixels directly.

PptxInspect { action: "render", filePath: "…", slideNumbers: [5], scale: 1.5 }
  → result.data.pages[0].imagePath = "<asset_dir>/slide5-scale1.5.png"
Read { file_path: "<pages[0].imagePath>" }
  → runtime injects the image as a user-role image part; describe what you see

Branch B — non-vision model (native-inputs does not include image): use CloudImageUnderstand (requires LoadSkill cloud-media-skill).

CloudImageUnderstand {
  image: { path: "<pages[0].imagePath>" },
  prompt: "Describe this slide in detail: title, bullet points, chart data (if any), layout. If the page has no chart or data table, say 'no data chart on this page' explicitly."
}

⚠️ Anti-hallucination hard rule (both branches): before writing your reply, ask "does every number, region, name, or axis value I'm about to mention come from an actual visual channel?" — Branch A requires the image part the runtime just injected; Branch B requires a CloudImageUnderstand response. When neither produced observable content, do NOT invent anything from the filename, slide title, or surrounding text — reply "image content not retrieved, please confirm" or re-dispatch through the correct branch.

Batch (visual summary of a whole deck): omit slideNumbers to render all PNGs, then loop the matching branch per slide. For decks >20 slides, run outline first and confirm with the user before rendering.


3. Format Conversion

DocConvert(from="pptx", to="pdf", sourcePath="…")    // for distribution / high-fidelity rendering via LibreOffice
DocConvert(from="pptx", to="md",  sourcePath="…")    // extract body text / generate summaries

4. Common Error Recovery

SymptomCauseFix
PPT_LEGACY_FORMATBinary .ppt formatDocConvert(from="ppt", to="pptx") to convert first
CJK shows as squares / replaced by lettersfontFace not setPass fontFace: 'Microsoft YaHei' on every addText / addChart
render result: SmartArt distortednode-pptx-png does not support SmartArtFallback to DocConvert(to="pdf") + PdfInspect(render)
writeFile output can't be openedPath traversal / permission issueUse a relative path — files land in the session cwd (asset dir)
Generating many slides is slowRepeated addText calls per slidePut common elements in defineSlideMaster; only put differences on each slide

To patch a script: JsSandbox(action="edit-and-run", scriptPath=…, edits=[…]) — fewer tokens transferred.

© OpenLoaf, AGPL-3.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 apps/server/src/ai/builtin-skills/pptx/en of OpenLoaf/OpenLoaf.

Open the folder on GitHubat commit f7eccf6

Compare with similar skills

PPTX Skill 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.

PPTX Skill compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PPTX Skill this skillOpenLoaf/OpenLoaf107—~2.9kAutomated safety check: PassAGPL-3.0
Slidesfcakyon/claude-codex-settings1.2k1 repos~1.1kAutomated safety check: PassMIT
Powerpoint SlidesNoi1r/powerpoint-skill123—~12kAutomated safety check: NotesMIT
PPTX HTML Fidelity Auditsanqiufong/slides-from-anything1321 repos~3.5kAutomated safety check: PassApache-2.0
Slide Making Skillhaojing8312/WorkClaw1411 repos~1.8kAutomated safety check: PassApache-2.0
Ppt Generationpeintune/runjam228—~7.1kAutomated safety check: PassMIT

Similar skills

  • Slides

    fcakyon/claude-codex-settings

    Create and edit presentation slide decks (.pptx) with PptxGenJS, bundled layout helpers, and render/validation utilities.

    1.2k GitHub starsUsed in 1 repo~1.1k tokens
    Documents & OfficeAuto-check passed
  • Powerpoint Slides

    Noi1r/powerpoint-skill

    Create visually rich PowerPoint (.pptx) presentations from academic papers, research notes, or any content the user wants in slide format.

    123 GitHub stars~12k tokensUpdated 6 mo ago
    Documents & OfficeAuto-check: notes
  • PPTX HTML Fidelity Audit

    sanqiufong/slides-from-anything

    Audit a python-pptx export against its source HTML deck, identify layout/content drift (footer overflow, cropped content, missing italic/em, lost styling, off-rhythm spacing), and re-export with…

    132 GitHub starsUsed in 1 repo~3.5k tokens
    Documents & OfficeAuto-check passed
  • Slide Making Skill

    haojing8312/WorkClaw

    Implement single-slide PowerPoint pages with PptxGenJS. An agent skill from haojing8312/WorkClaw.

    141 GitHub starsUsed in 1 repo~1.8k tokens
    Documents & OfficeAuto-check passed
  • Ppt Generation

    peintune/runjam

    A skill your agent uses when the user requests to generate, create, or make presentations (PPT/PPTX).

    228 GitHub stars~7.1k tokensUpdated 2 days ago
    Documents & OfficeAuto-check passed
  • PPTX

    ymx10086/ResearchClaw

    Create, edit, and analyze PowerPoint presentations — research talks, conference presentations, lecture slides, and poster summaries.

    313 GitHub stars~2.3k tokensUpdated 6 mo ago
    Documents & OfficeAuto-check passed

More from OpenLoaf/OpenLoaf

All 34 skills in this repo
  • Agent Orchestration Skill

    OpenLoaf/OpenLoaf

    Triggers when the master Agent faces a multi-step complex task and is deciding whether / how to outsource sub-tasks to built-in subagents (browser / doc-editor / data-analyst / extractor /…

    107 GitHub stars~1.9k tokensUpdated 4 mo ago
    Auto-check passed
  • Browser Ops Skill

    OpenLoaf/OpenLoaf

    Triggered when the user asks for page-level interaction with a specific webpage: login, form filling, button clicks, pagination scraping, screenshots, downloading page images, handling CAPTCHAs or…

    107 GitHub stars~1.5k tokensUpdated 4 mo ago
    Auto-check passed
  • Canvas Ops Skill

    OpenLoaf/OpenLoaf

    Triggered when the user wants lifecycle management of OpenLoaf canvases / whiteboards: create, open, filter, duplicate, delete, rename, or change ownership.

    107 GitHub stars~1.4k tokensUpdated 4 mo ago
    Auto-check passed
  • Reads, edits, converts and reviews Word documents through three dedicated tools, covering tracked changes, comments, tables, images and format conversion.

    107 GitHub stars~1.9k tokensUpdated 4 mo ago
    Auto-check passed
  • Email Operations

    OpenLoaf/OpenLoaf

    Handles a real email account through query and mutate tools: check the inbox, read, search, reply, forward, compose and organize, with sending always confirmed first.

    107 GitHub stars~1.8k tokensUpdated 4 mo ago
    Auto-check passed
  • macOS Desktop Control

    OpenLoaf/OpenLoaf

    Guides an agent to operate native macOS apps by surveying an app first, acting through intents, menus or keystrokes, and verifying each step, in OpenLoaf Desktop only.

    107 GitHub stars~2.4k tokensUpdated 4 mo ago
    Auto-check passed

Questions about PPTX Skill

What does PPTX Skill do?

Triggers whenever the user asks to do anything with PowerPoint slides (.pptx): read, summarize, extract, edit, create, or convert. PPTX Skill is an agent skill from OpenLoaf/OpenLoaf.pptx): read, summarize, extract, edit, create, or convert.

When should I use PPTX Skill?

PPTX Skill fits situations like: ever the user asks to do anything with PowerPoint slides (.pptx): read; mentions a .pptx file.

How do I install PPTX Skill in Claude Code?

Run `npx skills add OpenLoaf/OpenLoaf --skill pptx-skill -a claude-code`. Or copy the skill folder (apps/server/src/ai/builtin-skills/pptx/en in OpenLoaf/OpenLoaf) into .claude/skills/pptx-skill in your project. Claude Code loads it when a task matches its description.

How do I install PPTX Skill in Codex?

Run `npx skills add OpenLoaf/OpenLoaf --skill pptx-skill -a codex`. Or copy the skill folder (apps/server/src/ai/builtin-skills/pptx/en in OpenLoaf/OpenLoaf) into .agents/skills/pptx-skill in your project. Codex loads it when a task matches its description.

Can I use PPTX Skill 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 OpenLoaf/OpenLoaf --skill pptx-skill -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-skill, .gemini/skills/pptx-skill, .github/skills/pptx-skill and .opencode/skills/pptx-skill in your project.

What does PPTX Skill need to run?

SKILL.md names no scripts, command-line tools or credentials: PPTX Skill is instructions for the agent only.

Does PPTX Skill 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 PPTX Skill 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 PPTX Skill use?

PPTX Skill is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does PPTX Skill use?

About 2.9k tokens (SKILL.md is roughly 12k 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 PPTX Skill?

Skills that share tags, products or a category with PPTX Skill: Slides (fcakyon/claude-codex-settings, 1.2k stars), Powerpoint Slides (Noi1r/powerpoint-skill, 123 stars), PPTX HTML Fidelity Audit (sanqiufong/slides-from-anything, 132 stars) and Slide Making Skill (haojing8312/WorkClaw, 141 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PPTX Skill?

OpenLoaf (a GitHub organization) maintains it in OpenLoaf/OpenLoaf, which has 107 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on May 14, 2026.

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