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 🙏

© 2025 – Pkg Stats / Ryan Hefner

claudeslide

v1.4.1

Published

CLI tool for editing PowerPoint files with AI assistance

Downloads

1,649

Readme

ClaudeSlide

Edit PowerPoint presentations using Claude's native XML understanding.

English | 日本語

ClaudeSlide transforms PPTX files into an editable workspace where Claude can directly read, understand, and modify presentation content through XML manipulation.

Why ClaudeSlide?

The Problem

Editing PowerPoint programmatically has traditionally required specialized libraries and APIs (python-pptx, Apache POI, OpenXML SDK). These tools have steep learning curves, limited flexibility, and often can't handle complex formatting or custom layouts well.

The Solution

PPTX files are actually ZIP archives containing XML files. Claude Opus 4.5 excels at understanding and generating structured XML with high accuracy. ClaudeSlide leverages this capability by:

  1. Extracting the PPTX into readable XML files
  2. Providing Claude with context about Office Open XML structure
  3. Enabling direct XML editing through Claude Code's agentic workflow
  4. Validating changes before repackaging to PPTX

This approach gives you the full power of natural language instructions for presentation editing—no API knowledge required.

What Claude Can Do

  • Edit text, formatting, colors, and fonts
  • Add, remove, or reorder slides
  • Create shapes, diagrams, and layouts
  • Insert and position images
  • Modify themes and master slides
  • Generate SVG graphics for complex visuals
  • Fix broken presentations

Example

Check out the example repository to see ClaudeSlide in action.

Sample slides generated/edited by Claude:

| | | | |:---:|:---:|:---:| | Slide 1 | Slide 2 | Slide 3 | | Slide 4 | Slide 5 | Slide 6 | | Slide 7 | Slide 8 | Slide 9 |

Installation

npm install -g claudeslide

Or use directly with npx:

npx claudeslide init presentation.pptx --name my-project

Quick Start

# 1. Initialize from a PPTX file
npx claudeslide init presentation.pptx --name my-project
cd my-project

# 2. Start Claude Code and give instructions
claude
# "Change the title on slide 1 to 'Q4 Results'"
# "Add a new slide with a bullet list of our key achievements"
# "Make all headings blue and increase font size to 32pt"

# 3. Validate and save
npm run validate
npm run save

Commands

claudeslide init [pptx-file]

Extract a PPTX file and set up a Claude-ready editing environment.

# Interactive mode
claudeslide init

# With arguments
claudeslide init presentation.pptx --name my-project

# Options
-n, --name <name>   Project name (required)
-o, --output <dir>  Output directory
-f, --force         Overwrite existing directory
--no-git            Skip git initialization

What gets created:

  • work/ - Extracted PPTX contents (XML files)
  • CLAUDE.md - Context and instructions for Claude
  • .claude/skills/pptx/ - XML reference documentation
  • .claude/commands/ - Slash commands for common operations
  • source.pptx - Backup of original file

claudeslide validate

Check XML validity before saving:

  • XML well-formedness
  • Required files exist
  • Relationship integrity
  • Content-Types consistency

claudeslide save

Repackage the XML back into a valid PPTX file.

claudeslide save                    # Saves to <project-name>.pptx
claudeslide save -o output.pptx     # Custom output path

claudeslide preview

Generate PNG previews of slides (requires LibreOffice).

claudeslide preview           # Generate previews
claudeslide preview --dpi 300 # Higher resolution

Project Structure

my-project/
├── CLAUDE.md                 # Instructions and slide overview
├── package.json              # npm run scripts
├── .claudeslide.json         # Project metadata
├── source.pptx               # Original file backup
├── .claude/
│   ├── commands/             # Slash commands (/save, /validate, etc.)
│   └── skills/pptx/          # OOXML reference documentation
├── work/                     # Extracted PPTX contents
│   ├── [Content_Types].xml
│   ├── ppt/
│   │   ├── slides/           # Slide content (slide1.xml, slide2.xml, ...)
│   │   ├── slideLayouts/     # Layout templates
│   │   ├── slideMasters/     # Master slides
│   │   ├── theme/            # Colors and fonts
│   │   └── media/            # Images and media files
│   └── docProps/             # Document metadata
└── preview/                  # Generated PNG previews

Example Workflows

Edit Existing Content

"Change the title on slide 3 to 'Financial Overview'"
"Replace all instances of '2024' with '2025'"
"Make the subtitle on slide 1 italic"

Add New Content

"Add a new slide after slide 2 with a title 'Key Metrics' and three bullet points"
"Insert a blue rectangle shape at the bottom of slide 4"
"Add speaker notes to slide 1 explaining the agenda"

Restructure Presentation

"Move slide 5 to be the second slide"
"Delete slides 7 through 9"
"Duplicate slide 2 and change the title to 'Q2 Results'"

Fix Issues

"The presentation won't open - check for XML errors and fix them"
"Slide 3 is showing a broken image - diagnose and repair"

Requirements

  • Node.js >= 18.0.0
  • Git (optional) - for version control of changes
  • LibreOffice (optional) - for preview generation
  • poppler-utils (optional) - for PNG conversion

Installing Optional Dependencies

macOS:

brew install --cask libreoffice
brew install poppler

Ubuntu/Debian:

sudo apt install libreoffice poppler-utils

Arch Linux:

sudo pacman -S libreoffice-fresh poppler

How It Works

  1. PPTX = ZIP + XML: PowerPoint files are ZIP archives containing Office Open XML (OOXML) files
  2. Extract: ClaudeSlide unzips the PPTX into the work/ directory
  3. Context: CLAUDE.md and skill files give Claude the knowledge to edit OOXML
  4. Edit: Claude reads and modifies XML files based on your instructions
  5. Validate: XML structure is checked for correctness
  6. Package: Modified XML is zipped back into a valid PPTX

Tips for Best Results

  • Be specific: "Make the title red" → "Change the title on slide 1 to red (#FF0000)"
  • Validate often: Run npm run validate after significant changes
  • Use git: The project initializes with git—commit before major edits
  • Check previews: Use npm run preview to visually verify changes
  • Keep backups: source.pptx is your original, but git history helps too

License

MIT © Ameyanagi