npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

microsoft-powerpoint

v0.1.4

Published

Agent skill for Microsoft PowerPoint for Claude Code, Cursor, Codex and other SKILL.md agents: inspect, edit and build .pptx decks, delete or reorder slides, render previews in a sandbox and clean decks before sharing.

Readme

microsoft-powerpoint

TL;DR: microsoft-powerpoint is a free, MIT-licensed agent skill that teaches AI agents (Claude Code, Cursor, Codex, Gemini CLI and other agents that read SKILL.md skills) to read, edit and build PowerPoint decks without losing formatting, render slide previews in a sandbox, and clean decks before they are shared. Install: npx skills add skillsaas/microsoft-powerpoint or npm install microsoft-powerpoint.

An agent skill (SKILL.md) that teaches AI coding agents to work with Microsoft PowerPoint decks safely: read them, edit text without losing formatting, render previews, and clean them before they are shared.

Use it when

  • a user asks you to read, summarize, edit or rebrand a .pptx, .pptm, .ppsx or .potx;
  • find and replace misses words because PowerPoint split them across runs;
  • slides must be deleted, reordered or hidden (python-pptx has no API), or text_frame.text wiped formatting;
  • a new deck must be built from the user's template, filling layout placeholders;
  • you need slide images or a PDF (LibreOffice in a sandbox), or notes pages as a handout;
  • a chart's numbers must change and its embedded workbook must follow;
  • a deck came from outside (macros, OLE objects, linked pictures, click actions that run programs);
  • a deck is about to be sent and may still hold speaker notes, comments, hidden slides or metadata;
  • you automate PowerPoint with VBA, an Office.js add-in or Microsoft Graph.

Install

npx skills add skillsaas/microsoft-powerpoint    # skills CLI, reads SKILL.md at the repo root
npm install microsoft-powerpoint                 # files land in node_modules/microsoft-powerpoint/
# Planned, not yet published: npx @skillsaas/cli add microsoft-powerpoint

Or copy this folder into your agent's skills folder (for example .claude/skills/ or .agents/skills/), then run pip install -r scripts/requirements.txt.

Try it: python scripts/inspect_pptx.py tests/fixtures/deck.pptx, then python tests/smoke_test.py.

What it does

  • inspect_pptx.py: read-only inventory and risk list (macros, OLE objects, linked pictures, click actions that run programs, notes, comments, hidden slides).
  • pptx_replace.py: replaces text split across runs, with an --expect count.
  • pptx_slides.py: deletes, hides, unhides and moves slides completely (python-pptx has no API for this).
  • pptx_build.py: builds a new deck from a .pptx or .potx template by placeholder (needs python-pptx), with --dry-run.
  • pptx_sanitize.py share-check and share-ready copy; pptx_render.py PDF or PNG with LibreOffice in bubblewrap (Linux).
  • Python 3.9+ with lxml; references for python-pptx, PresentationML, charts, VBA, Office.js and Microsoft Graph.

FAQ

What is the microsoft-powerpoint skill? An Agent Skills package (a SKILL.md plus references and Python scripts) that tells an AI agent how to work with PowerPoint decks correctly. It is unofficial and not affiliated with Microsoft.

How do I delete or reorder slides with python-pptx? python-pptx has no API for it. pptx_slides.py deletes, hides and moves slides and removes the parts a deleted slide leaves behind.

Why does replacing text in a .pptx lose formatting? Setting text_frame.text rewrites the runs. pptx_replace.py replaces text across runs and keeps their formatting.

How do I make slide images or a PDF without PowerPoint? pptx_render.py uses LibreOffice in a bubblewrap sandbox on Linux; PowerPoint remains the reference for exact visual fidelity.

How do I install it in Claude Code? npx skills add skillsaas/microsoft-powerpoint, or copy the folder to ~/.claude/skills/microsoft-powerpoint/, then pip install -r scripts/requirements.txt.

How do I clean a deck before sending it? pptx_sanitize.py lists speaker notes, comments, hidden slides and metadata and writes a share-ready copy.

Contents

| Path | What | | :--- | :--- | | SKILL.md | Router: decision guide, workflow, rules, exit codes, checklist | | references/ | PresentationML, python-pptx, charts and media, rendering, security, recipes, extraction, automation, fallbacks, troubleshooting | | scripts/inspect_pptx.py | Read-only inventory and risk list | | scripts/pptx_replace.py | Replace text split across runs, with --expect | | scripts/pptx_slides.py | Delete, hide, unhide, move slides completely | | scripts/pptx_build.py | New deck from a .pptx or .potx template by placeholder idx (needs python-pptx) | | scripts/pptlinks.py, scripts/pptpkg.py | Shared helpers: link checks, safe package reader | | scripts/pptx_sanitize.py | Share-check and share-ready copy | | scripts/pptx_render.py | PDF / PNG / legacy conversion with LibreOffice in bubblewrap | | tests/smoke_test.py | Tests, run with python tests/smoke_test.py |

Requirements: Python 3.9+ and lxml>=5 (tested 6.1.3); python-pptx 1.0.2 for pptx_build.py. Rendering needs Linux with LibreOffice, bubblewrap and poppler-utils. See the catalog at https://github.com/skillsaas/index.

Status and maintenance

Version 0.1.4, published on npm and GitHub (pre-1.0). Smoke tests run on Linux only; not run on macOS or Windows. Each version is reviewed by a panel of people and AI agents before the next; CHANGELOG.md lists what changed and why. Versions follow semver; until 1.0, a minor bump may change script flags or JSON fields, and the CHANGELOG says so. Run python tests/smoke_test.py after install to check your setup.

Trademark

Unofficial. Not affiliated with, endorsed by or sponsored by Microsoft. Microsoft and PowerPoint are trademarks of the Microsoft group of companies.

License: MIT.