Agent skill

PowerPoint Reader and Builder

by TokenRhythm in TokenRhythm/opensquilla

Reads, edits in place, or creates PowerPoint .pptx decks, picking one of three paths based on what tools and files are available.

Apache-2.0Auto-check: notesDocuments & Office

Install PowerPoint Reader and Builder

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

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

GitHub CLI
$ gh skill install TokenRhythm/opensquilla 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/TokenRhythm/opensquilla.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/opensquilla/skills/bundled/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
7.1k
Token cost
~3.8k tokens
SKILL.md length
1,500 words
Files
6 (incl. scripts, references)
Skills in repo
8
Repo updated
First seen
Licence
Apache-2.0

At a glance

Reads, edits in place, or creates PowerPoint .pptx decks, picking one of three paths based on what tools and files are available.

  • Extracting all the text from an existing PowerPoint deck
  • SKILL.md covers Delivery rule, Decide the path first, Path A: Read text from a .pptx and Path B: Edit an existing deck, plus 5 more sections
  • Runs Python and Shell scripts from its folder; calls python, brew and apt-get
  • Editing a deck's content while keeping its existing design

What it does

This skill treats a .pptx file as the OOXML zip container it actually is - XML describing slides, layouts, masters and media - and picks exactly one of three paths before doing any work: reading text from an existing deck, editing an existing deck in place while preserving its design, or creating a new deck from scratch or a brief. If the user hands over a deck and asks for changes, it defaults to the edit-in-place path and treats that deck's visual style as the baseline, only falling back to building from scratch when the user explicitly asks to start fresh or there is no input deck.

Which concrete steps it takes depends on what tools the current session actually exposes: when file-authoring tools like write_file or execute_code are available it builds the .pptx in the workspace and publishes the final file; in a restricted channel it runs the same logic through inline Python via execute_code; and when no file-authoring tool is available at all, it explicitly refuses to generate or paste OOXML or source code as a substitute, replying instead that the session cannot create files and offering alternatives such as describing the slide contents in text.

For reading text, it ships a helper script that walks slides through the python-pptx public API and prints text grouped by slide; two reference files cover pptxgenjs and python-pptx in more depth for whichever of those two libraries the chosen path actually needs.

When your agent uses it

  • Extracting all the text from an existing PowerPoint deck
  • Editing a deck's content while keeping its existing design
  • Building a new PowerPoint presentation from a written brief

Example prompts

  • “Extract the text from every slide in this deck.”
  • “Update the numbers on slide 4 but keep the existing template.”
  • “Build a 10-slide deck from this brief using our brand colors.”

Requirements

  • python-pptx (Python path)
  • A file-authoring tool such as write_file or execute_code

What it can do on your machine

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

    Ships 2 files in scripts/ (Python and Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • brew
    • apt-get
    • bash
    • uv
    • pip
    • npm
    • node

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

  • Network

    No URLs in SKILL.md. Its commands use uv, pip and npm, which can reach the network depending on how they are called.

    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 Reader and Builder loads about 3.8k tokens when it runs, and up to ~6.7k if it reads all its reference files. Until then it costs about 42 tokens; SKILL.md has 1,500 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~42
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.7k

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:345
    Debian/Ubuntu `sudo apt-get install -y libreoffice`; on Windows install
  • NoteRuns commands with sudoSKILL.md:349
    Debian/Ubuntu `sudo apt-get install -y poppler-utils`; Windows ships it

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); the scripts in this folder are not scanned.

SKILL.md

The full file from TokenRhythm/opensquilla at commit 4494195, republished under its Apache-2.0 licence (© TokenRhythm). 1,500 words, ~3,763 tokens.

Download SKILL.mdSave it as .claude/skills/pptx/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
pptx
description
Read, inspect, edit, or create PowerPoint `.pptx` presentations, including text extraction, template-preserving changes, slide review, and generation from a brief.
visibility
public
invocation
direct
description_zh
读取、编辑或创建PowerPoint .pptx 文件。当用户提到演示文稿、幻灯片、slide deck、presentation 或 .pptx 文件名时触发——无论目标是提取文本、修改现有演示、从零构建还是准备评审幻灯片。支持三种执行路径:文本提取(始终可用)、模板编辑(解压→修补幻灯片XML→重新打包)以及从零…
homepage
https://python-pptx.readthedocs.io/
provenance.origin
clawhub-mit0
provenance.license
MIT-0
provenance.upstream_url
https://clawhub.ai/ivangdavila/powerpoint-pptx
provenance.maintained_by
OpenSquilla

pptx

Work with PowerPoint .pptx decks. The pptx file format is OOXML — a zip container holding XML descriptions of slides, layouts, masters, and media.

Delivery rule

First, use the available tool list for this session to choose the delivery path.

If write_file, edit_file, apply_patch, or execute_code is available:

  • Build the .pptx in the active workspace using the paths below.
  • Call publish_artifact for the final .pptx before your final reply when that tool is available.
  • The code examples later in this document apply.

In restricted channels, run the inline Python examples with execute_code and save workspace-relative files before calling publish_artifact. Shell, Node, and LibreOffice commands require the corresponding exposed tool and runtime. Do not use Python subprocesses to bypass an unavailable shell tool, and do not retry generation on the host when sandbox execution fails.

If none of those file-authoring tools are available:

  • Do not attempt to generate, save, or modify the .pptx.
  • Do not paste OOXML, Python, JavaScript, HTML, or other source as a substitute for sending the deck.
  • Ignore the Path B, Path C, and Visual QA sections below; they do not apply when file authoring is unavailable.
  • Reply plainly: explain that the current session cannot create files, and offer to publish an existing .pptx by path, describe the slide contents in text, or continue in a file-authoring surface such as the OpenSquilla Web UI.

In all cases, do not paste full file source as the deliverable. Source code is appropriate only when the user explicitly asks for code.

Decide the path first

Pick one of three paths up front; do not mix them. The right path depends only on what is on disk before you start.

You haveGoalPath
Existing .pptxRead text onlyA. Read
Existing .pptxModify content while keeping the designB. Edit-in-place
Nothing, or a briefBuild a new deckC. Create from scratch

If the user hands you a deck and asks for changes, default to path B and treat the input deck as the visual style baseline. Only fall back to path C when the user explicitly says "start fresh" or there is no input deck.


Path A: Read text from a .pptx

When shell execution is available, use the helper script. It walks slides via the python-pptx public API and prints text grouped by slide. With execute_code, use the inline Python example instead.

bash
python {baseDir}/scripts/extract_text.py /path/to/deck.pptx
python {baseDir}/scripts/extract_text.py /path/to/deck.pptx --json

For programmatic use, call python-pptx directly:

python
from pptx import Presentation
prs = Presentation("deck.pptx")
for i, slide in enumerate(prs.slides, 1):
    for shape in slide.shapes:
        if shape.has_text_frame:
            for para in shape.text_frame.paragraphs:
                print(i, "".join(run.text for run in para.runs))

If markitdown is available, it gives a faster Markdown rendering:

bash
python -m markitdown deck.pptx

Path B: Edit an existing deck

Two sub-strategies; pick by how invasive the edit is.

B1. Text-only edits (preferred)

When the change is "swap this string for that one" or "fill these placeholders": use python-pptx to mutate runs in place. This preserves all theme/master/font settings.

python
from pptx import Presentation
prs = Presentation("input.pptx")
slide = prs.slides[0]
for shape in slide.shapes:
    if not shape.has_text_frame:
        continue
    for para in shape.text_frame.paragraphs:
        for run in para.runs:
            if run.text == "{{TITLE}}":
                run.text = "Q3 Review"
prs.save("output.pptx")

Edit at the run level, not the paragraph level — replacing whole paragraph text drops formatting. If a placeholder spans multiple runs (often happens when the original template had partial bold/italic), concatenate the runs into the first run and clear the others.

B2. Structural edits (add/remove/reorder slides, change layouts)

python-pptx's slide-level mutation is limited (no public reorder API). For structural work, unzip the .pptx, patch ppt/presentation.xml and the slide files, and repack:

bash
mkdir _unpacked && (cd _unpacked && unzip -q ../input.pptx)
# edit _unpacked/ppt/presentation.xml (sldIdLst order)
# edit _unpacked/ppt/slides/slideN.xml content
(cd _unpacked && zip -q -r ../output.pptx . -x "*.DS_Store")

Rules when patching slide XML:

  • Use defusedxml.minidom or lxml, not stdlib xml.etree.ElementTree. ET drops or rewrites namespace prefixes (a:, p:, r:) in ways PowerPoint refuses to load.
  • After deleting slides, remove their <p:sldId> from ppt/presentation.xml's <p:sldIdLst> AND remove the matching relationship in ppt/_rels/presentation.xml.rels. Skipping either yields a "repair" prompt in PowerPoint.
  • Update [Content_Types].xml if you change the slide count.
  • If the deck has speaker notes, each slideN.xml has a paired notesSlideN.xml referenced by slideN.xml.rels. Delete or move both together.

When done, validate by opening the output in LibreOffice headless (next section) before declaring success. An invalid deck silently fails to render in some places but loads fine in others.


Path C: Create from scratch

Use python-pptx when the runtime is Python-first (more readable, simpler deps). Use PptxGenJS when you need richer layout primitives (charts, tables with merged cells, gradients) or are already in a Node toolchain.

C1. python-pptx quick recipe
python
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor

prs = Presentation()
prs.slide_width, prs.slide_height = Inches(13.333), Inches(7.5)  # 16:9 wide

title_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_layout)
slide.shapes.title.text = "Q3 Review"
slide.placeholders[1].text = "Wei E."

content_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(content_layout)
slide.shapes.title.text = "Highlights"
tf = slide.placeholders[1].text_frame
tf.text = "Revenue +18% YoY"
for line in ("Churn down to 4.1%", "Two new enterprise logos"):
    p = tf.add_paragraph()
    p.text = line

prs.save("out.pptx")

See references/python_pptx.md for shapes, tables, images, charts, and color/font helpers.

C2. PptxGenJS quick recipe
javascript
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" × 7.5"

const slide = pres.addSlide();
slide.background = { color: "0F172A" };
slide.addText("Q3 Review", {
  x: 0.5, y: 0.6, w: 9, h: 1.2,
  fontSize: 44, bold: true, color: "FFFFFF", margin: 0,
});

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

See references/pptxgenjs.md for the full surface.

Design checklist (apply to both C1 and C2)

Plain bullets on white look generated. Apply each item before declaring done:

  • Pick a content-specific palette (one dominant color ~60% of weight, one support, one accent). Avoid generic blue.
  • Title slides and section dividers in dark; content slides in light.
  • Every slide carries one meaningful visual element: a topic-specific image, chart, diagram, data graphic, or recognizable icon. Emoji, colored boxes, and decorative lines do not satisfy this requirement. No slide is title + bullets only.
  • Use varied layouts across slides — two-column, half-bleed image, stat grid, quote slide. Repeating one layout for ten pages is the strongest "AI-generated" tell.
  • Header font ≥ 36 pt; body 14–16 pt. Keep ≥ 0.5" margin from slide edges.
  • Left-align body paragraphs; center only titles.
  • Do not add a thin colored line under every title — it is a strong visual marker for AI-generated decks.

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

Visual QA (when render tools are available)

For paths B and C, when both soffice (LibreOffice) and pdftoppm (poppler) are available and the renderer runs, render the entire deck to images and inspect every page before publish_artifact.

bash
bash {baseDir}/scripts/render_thumbs.sh out.pptx
# emits out-01.jpg, out-02.jpg, ... in cwd, plus out.pdf

Do not pass --range for final QA. Count the emitted out-*.jpg files and inspect each one. A timeout, conversion error, missing thumbnail, or a review of only a subset of the pages means visual QA is incomplete. If inspection finds a defect, fix it, render the entire deck again, and re-inspect every page. If the full inspection finds no defect, publish without inventing an unnecessary edit just to force a rerender.

The script needs soffice (LibreOffice) and pdftoppm (poppler) on PATH. If either is missing, the script tells you what to install for the host OS.

Inspection prompt for a fresh-eyes pass (use a sub-agent or re-read with a different model than the one that generated the deck):

Inspect each slide image. Assume there are issues; find them.
For each slide list:
  - Overlapping text/shapes
  - Text overflow or cut off at margins
  - Decorative lines positioned for one-line titles when title wrapped to two
  - Low-contrast text (light on light or dark on dark)
  - Inconsistent spacing across analogous slides
  - Leftover placeholder text ("Lorem", "TODO", "{{...}}", "xxxx")
  - Misaligned columns or icons
Report all findings. When you found a defect, do not declare clean until its
fix-and-reverify cycle has passed across every rendered page.

If either render tool is unavailable, visual QA is unavailable. A B1 text-only edit may still be published after the file saves and the intended text is verified; state that visual QA was unavailable. For B2 or C work without a renderer, complete the available structural checks but do not claim that visual QA passed.


Common pitfalls

SymptomCauseFix
.pptx opens with "PowerPoint found a problem"Deleted slide left orphaned <p:sldId> or relUse the unpack/repack flow; clean rels and Content_Types
Output has corrupt colors / file refuses to open (PptxGenJS)Used "#FF0000" (with #) or "FF000080" (8-char alpha)Use "FF0000" and pass alpha via transparency or opacity
Bullets appear doubled (PptxGenJS)Wrote unicode • in the text string AND used bullet: trueDrop the unicode glyph; use bullet: true only
Smart-quote characters render as garbage after editing XMLXML was read with stdlib xml.etree.ElementTreeSwitch to defusedxml.minidom or lxml; preserve xml:space="preserve" on <a:t>
Second shape inherits weird shadow values (PptxGenJS)Re-used the same shadow options object across two shapes — the library mutates it in placeBuild a fresh object per call
Long edited string doesn't wrappython-pptx does not auto-fit; the original textbox width is fixedEither shorten the text or compute line breaks; consider enable_auto_size after measurement
Visual QA looks wrong on Windows but right on macOSFonts on the system differ — soffice falls back silentlyPin fonts referenced by the template, or render QA on the same OS as the consumer

Troubleshooting

  • "python-pptx not installed": run uv pip install python-pptx (or pip install python-pptx). The skill declares this under metadata.platform.install, so the eligibility report surfaces an install hint automatically when the binary is present but the module is missing.
  • "command not found: soffice": on macOS brew install libreoffice; on Debian/Ubuntu sudo apt-get install -y libreoffice; on Windows install LibreOffice from libreoffice.org and add program/ to PATH. Visual QA is optional — paths A and B1 work without it.
  • "command not found: pdftoppm": macOS brew install poppler; Debian/Ubuntu sudo apt-get install -y poppler-utils; Windows ships it inside the LibreOffice install or via pdftoppm from poppler-windows releases.
  • PptxGenJS path fails with MODULE_NOT_FOUND: do not use a global npm install; Node does not resolve global packages from require(). Prefer the Python path. If the JS path is necessary, create a disposable local project outside the user's repository. Create a fresh per-run OS temporary directory with tempfile.mkdtemp(prefix="opensquilla-pptxgenjs-"), use it as the working directory for npm install --ignore-scripts --no-save pptxgenjs and node build_deck.js, and keep the authoring script beside its node_modules directory. Write the final .pptx into the active workspace and remove the disposable directory after publishing it. Do not use a fixed path or a shell-specific directory-creation command.

Boundaries

  • This skill is for .pptx (Office Open XML PresentationML). It is not for .ppt (legacy binary), Google Slides, or Keynote files. Convert those to .pptx first (LibreOffice or Keynote export).
  • Do not embed external macro logic (.pptm / VBA). Bundled Codex sandboxes do not execute the embedded code, and security scanners flag mixed content.
  • Source and runtime dependency notices are recorded in THIRD_PARTY_NOTICES.md.

© TokenRhythm, 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

SKILL.md and 5 other files (scripts, references) in src/opensquilla/skills/bundled/pptx of TokenRhythm/opensquilla.

  • SKILL.md
  • THIRD_PARTY_NOTICES.md
  • references/pptxgenjs.md
  • references/python_pptx.md
  • scripts/extract_text.py
  • scripts/render_thumbs.sh

Open the folder on GitHubat commit 4494195

Compare with similar skills

PowerPoint Reader and 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 Reader and Builder compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PowerPoint Reader and Builder this skillTokenRhythm/opensquilla7.1k—~3.8kAutomated safety check: NotesApache-2.0
PPTXAgentTeam-TaichuAI/ScienceClaw670—~2.5kAutomated safety check: PassProprietary
Office PPTXsingula-ai/alego1091 repos~1.7kAutomated safety check: PassMIT
PresentationsPinelliaChill/Operant165—~195Automated safety check: PassCustom licence
Nature Paper2pptCitrus-bit/Anaxa1201 repos~5.9kAutomated safety check: PassMIT
Impressaiskillstore/marketplace4303 repos~1.1kAutomated safety check: PassNone

Similar skills

  • PPTX

    AgentTeam-TaichuAI/ScienceClaw

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

    670 GitHub stars~2.5k tokensUpdated 5 mo ago
    Documents & OfficeAuto-check passed
  • Office PPTX

    singula-ai/alego

    Create, read, edit, and check PowerPoint presentations (.pptx), including slide text, tables, images, and charts.

    109 GitHub starsUsed in 1 repo~1.7k tokens
    Documents & OfficeAuto-check passed
  • Presentations

    PinelliaChill/Operant

    Create a PowerPoint deck from user content and verify its slide structure.

    165 GitHub stars~195 tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Nature Paper2ppt

    Citrus-bit/Anaxa

    Build a complete but efficient Nature-style Chinese PPTX presentation from a scientific paper, preprint, PDF, article text, abstract, figure legends, or reading notes.

    120 GitHub starsUsed in 1 repo~5.9k tokens
    Documents & OfficeAuto-check passed
  • Impress

    aiskillstore/marketplace

    Presentation creation, format conversion (ODP/PPTX/PDF), slide automation with LibreOffice Impress.

    430 GitHub starsUsed in 3 repos~1.1k tokens
    Documents & OfficeAuto-check passed
  • Wps Ppt Automation

    sundial-org/awesome-openclaw-skills

    Automate common PowerPoint/WPS Presentation operations on Windows via COM (read text/notes/outline, export PDF/images, replace text, insert/delete slides, unify font/size/theme, extract images/media).

    663 GitHub stars~714 tokensUpdated 7 mo ago
    Documents & OfficeAuto-check passed

More from TokenRhythm/opensquilla

All 8 skills in this repo
  • Deep Research Workflow

    TokenRhythm/opensquilla

    Runs multi-round research in three stages with a persisted state file, evidence tracking and a long-form report with per-claim citations.

    7.1k GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed
  • PDF Toolkit

    TokenRhythm/opensquilla

    Deterministic PDF operations through bundled scripts: extract text and tables, merge files or page ranges, split by range, fill form fields and build PDFs from data.

    7.1k GitHub stars~1.9k tokensUpdated 2 days ago
    Auto-check passed
  • Word DOCX Toolkit

    TokenRhythm/opensquilla

    Inspects, edits in place or creates Word .docx files with bundled Python scripts, keeping existing styles intact when content changes.

    7.1k GitHub stars~1.7k tokensUpdated 2 days ago
    Auto-check passed
  • HTML Coder

    TokenRhythm/opensquilla

    Guides semantic, accessible HTML work: pages, forms, media and HTML5 APIs, plus how to deliver a runnable webpage project with a preview.

    7.1k GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check passed
  • Excel Workbook Editor

    TokenRhythm/opensquilla

    Inspects, edits in place or creates Microsoft Excel .xlsx workbooks with openpyxl, treating each cell as a typed number, string, datetime or formula value.

    7.1k GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed
  • Sub-Agent Delegation

    TokenRhythm/opensquilla

    Hands a self-contained coding task to Codex, Claude Code, OpenCode or Pi as a non-interactive background process, using OpenSquilla's exec_command and process tools.

    7.1k GitHub stars~3k tokensUpdated 2 days ago
    Auto-check passed

Questions about PowerPoint Reader and Builder

What does PowerPoint Reader and Builder do?

Reads, edits in place, or creates PowerPoint .pptx decks, picking one of three paths based on what tools and files are available. pptx file as the OOXML zip container it actually is - XML describing slides, layouts, masters and media - and picks exactly one of three paths before doing any work: reading text from an existing deck, editing an existing deck in place while preserving its design, or creating a new deck from scratch or a brief. If the user hands over a deck and asks for changes, it defaults to the edit-in-place path and treats that deck's visual style as the baseline, only falling back to building from scratch when the user explicitly asks to start fresh or there is no input deck.

When should I use PowerPoint Reader and Builder?

PowerPoint Reader and Builder fits situations like: extracting all the text from an existing PowerPoint deck; editing a deck's content while keeping its existing design; building a new PowerPoint presentation from a written brief.

How do I install PowerPoint Reader and Builder in Claude Code?

Run `npx skills add TokenRhythm/opensquilla --skill pptx -a claude-code`. Or copy the skill folder (src/opensquilla/skills/bundled/pptx in TokenRhythm/opensquilla) into .claude/skills/pptx in your project. Claude Code loads it when a task matches its description.

How do I install PowerPoint Reader and Builder in Codex?

Run `npx skills add TokenRhythm/opensquilla --skill pptx -a codex`. Or copy the skill folder (src/opensquilla/skills/bundled/pptx in TokenRhythm/opensquilla) into .agents/skills/pptx in your project. Codex loads it when a task matches its description.

Can I use PowerPoint Reader and 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 TokenRhythm/opensquilla --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 Reader and Builder need to run?

Going by SKILL.md and its folder, PowerPoint Reader and Builder needs Python and a shell for the scripts in its folder and the command-line tools its instructions call (python, brew, apt-get, bash, uv and pip). Our summary lists: python-pptx (Python path); A file-authoring tool such as write_file or execute_code.

Does PowerPoint Reader and Builder access the network?

SKILL.md contains no URLs. Its commands use uv, pip and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is PowerPoint Reader and Builder safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does PowerPoint Reader and Builder use?

PowerPoint Reader and 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 Reader and Builder use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.9k tokens, read only when the agent opens those files.

What are the alternatives to PowerPoint Reader and Builder?

Skills that share tags, products or a category with PowerPoint Reader and Builder: PPTX (AgentTeam-TaichuAI/ScienceClaw, 670 stars), Office PPTX (singula-ai/alego, 109 stars), Presentations (PinelliaChill/Operant, 165 stars) and Nature Paper2ppt (Citrus-bit/Anaxa, 120 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PowerPoint Reader and Builder?

TokenRhythm (a GitHub organization) maintains it in TokenRhythm/opensquilla, which has 7,087 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 4, 2026.

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