pptx: Anthropic's PowerPoint skill for Claude
Makes Claude create, edit and read PowerPoint decks. Built into Claude.ai, and available in Claude Code and the Claude API.
- Installs
- 246.7K
- on skills.sh
- Stars
- 186.4K
- on GitHub
- Files
- 55
- besides SKILL.md
- Updated
- Oct 2026
- last repo commit
The pptx skill makes Claude build, edit and read PowerPoint decks (.pptx files) from a plain request. Ask for a deck, fill in a template, or summarise one you upload, and Claude picks the right method and checks the slides as images before it hands the file back. In Claude.ai it needs Code execution and file creation turned on, and in the API it needs the code execution tool. It is Anthropic's own skill, and it is source-available, not open source.
Good for
- Anyone who wants a first-draft PowerPoint deck from notes or an outline
- Teams who fill the same slide template again and again
- Sales and marketing people who need pitch decks fast
- Developers who build decks through the Claude API
- Students and teachers who turn a document into slides
Install pptx
Claude Code
- 1
Copy this prompt.
Install the pptx skill in Claude Code. Run this command: /plugin marketplace add anthropics/skills /plugin install document-skills@anthropic-agent-skills Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js with pptxgenjs, Python with markitdown, LibreOffice, Poppler.
The plugin installs all four document skills (xlsx, docx, pptx, pdf). Pick the plugin if you want the skill without a claude.ai sign-in. The synced copy is newer than the repo copy right now, and it does not load with API-key sign-in, on Bedrock, or in bare or --safe-mode sessions. On Windows, install LibreOffice so Claude does not drive your open PowerPoint to check slides.
From the project README. Source.
What's in the skill
When it loads
Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions "deck," "slides," "presentation," or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.
Sections in SKILL.md
- Scripts
- Creating with pptxgenjs — gotchas
- Editing existing decks and templates
- Design Ideas
- Before Starting
- Color Palettes
- For Each Slide
- Typography
- Spacing
- Avoid (Common Mistakes)
- QA (Required)
- Content QA
- File QA (required)
- Visual QA
- Converting to Images
- Dependencies
Key facts
- Author
- Anthropic
- Installs on skills.sh
- 246,627 (Nov 2, 2026)
- Last change to this skill
- Jul 17, 2026
What it includes
Writes a pptxgenjs script that builds a new deck with charts, icons and notes
For a new presentation, Claude writes JavaScript that builds each slide, then runs it.
Try: “Make a 10-slide pitch deck for our Q3 results with a revenue chart”
Runs code ·
Create a deckUnzips the .pptx, edits the slide XML, zips it back
Keeps your template's layouts, fonts and colours by editing the file's slide XML directly.
Try: “Fill this template.pptx with the content from notes.md”
Write ·
Edit a deck or templateDumps every slide's text as Markdown, one block per slide
Pulls the text out of a deck so Claude can summarise or reuse it.
Try: “Summarise the key points of board-update.pptx”
Read ·
Read a deckMakes a labelled image grid of every slide
Lets Claude see a template's layouts so it can choose which slide fits each section.
Runs code ·
thumbnail.pyDuplicates a slide or layout and registers it in the file
Adds a copy of a slide without breaking the deck. It rewrites the input unless you pass -o.
Write ·
add_slide.pyRemoves slides, media and links that nothing uses any more
Tidies the deck after slides are deleted.
Delete ·
clean.pyChecks the file's structure and charts, and names the fix for each failure
Catches errors PowerPoint would reject before you open the file.
Read ·
office/validate.pyRuns LibreOffice without a window to convert files to PDF
Converts the deck to PDF for checking, or upgrades an old .ppt file to .pptx.
Try: “Convert old-deck.ppt to pptx”
Runs code ·
office/soffice.pyRenders each slide to an image and looks for overflow, overlap and low contrast
Claude looks at pictures of the finished slides and fixes layout problems before it hands you the file.
Runs code ·
Visual checkBuilt-in palettes, safe fonts, sizes, spacing and a list of looks to avoid
A style guide so slides do not all look the same.
Try: “Make it look less like an AI-made deck”
Design rules
From the official docs
Permissions
Medium risk
Claude runs scripts that can rewrite or delete slides in the deck you give it, and in Claude.ai file creation has internet access. Work on a copy of your deck and watch the chat while it runs.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
On Windows it can close your open PowerPoint
Without LibreOffice, Claude may drive your installed PowerPoint to check slides, and one user lost all open decks. Install LibreOffice first. The issue is open. github.com
One script compiles a small C helper at runtime
Where sockets are blocked, soffice.py writes C code that is inside the script, compiles it with gcc and loads it into LibreOffice. Socket flagged this pattern; read the script if you run it on your own machine. github.com
add_slide.py rewrites your deck unless told not to
The skill's own notes say to pass -o, or the script rewrites the input deck in place. Work on a copy. github.com
clean.py can delete every slide
If presentation.xml cannot be parsed, clean.py treats every slide as unused and deletes them. Keep a copy of the original. The issue is open. github.com
A crafted deck can read local files on old lxml
The validators use lxml's default parser, and on lxml older than 5 a crafted .pptx can make them read local files. Open only decks you trust. The issue is open. github.com
skills.sh audits: two pass, Socket warns
Gen Agent Trust Hub passed it (Risk Level SAFE, noting dynamic and command execution). Snyk passed it (Risk Level LOW, no issues). Socket warned with one low alert on soffice.py. All three audits are dated Sep 15, 2026. skills.sh
Claude.ai file creation has internet access
Anthropic warns this may put your data at risk and says to monitor chats closely. Claude for PowerPoint should only be used with trusted files. anthropic.com
Security advisories
No published security advisories as of Nov 2, 2026.
Technical details
| Turning on read-only | No read-only mode. Reading a deck does not change it, but add_slide.py rewrites the input deck unless you pass -o, and clean.py deletes unused slides and media. |
|---|---|
| Talks to | Claude.ai file creation has internet access. The API container has no network access |
| Sign-in and keys | No keys or sign-in of its own. |
| Data retention | Agent Skills are not covered by zero data retention arrangements in the Claude API. |
| Scopes |
|
What people say
People like getting a full first draft in one go, and say matching a company template still takes a lot of hand work.
What people like
- Claude writes a whole deck from notes in one go.
- A .pptx file lets colleagues review it with comments in tools they already use.
Common complaints
- Matching a company template exactly still takes about as much fiddling as building the deck by hand.
- On Windows without LibreOffice, checking slides closed all of one user's open PowerPoint files.
- Keynote refuses to import some generated decks.
In their words
“Pasted the same notes into claude, it wrote a pptx file, I imported that into Slides, job done. Being integrated into the product doesn't always mean a better result.”marcus_holmesHacker NewsAug 2026
“Claude with skills comes close but not close enough. The amount of fiddling needed to adjust is nearly equal to doing it yourself from scratch.”armcatGitHub issueAug 2026
“basically visual verification of a generated slide closed all PowerPoint files, not just the Claude generated one”JimHokansonGitHub issueMay 2026
“The same files open without complaint in Microsoft PowerPoint, PowerPoint Online, and LibreOffice Impress, so the failure is silent until a Mac user actually tries to open the file.”MYCL94
Examples
Build a new deck from a short brief
Create a presentation about renewable energy
Claude writes the deck and returns it as a downloadable .pptx file.
SourceTurn meeting notes into a deck, then open it in Google Slides
Turn these notes into a 10-slide PowerPoint deck for the Q3 review.
One HN commenter pasted notes into Claude, got a .pptx, and imported it into Google Slides.
Fill your own template with new content
Fill this template.pptx with the content from notes.md. Keep the layouts and fonts.
Summarise a deck someone sent you
Summarise the key points of board-update.pptx, slide by slide.
Make a deck that colleagues can comment on
Make a pitch deck for our Q3 results with a revenue chart, as a .pptx so my team can review it in PowerPoint.
Common errors and fixes
Keynote says the deck is invalid
Cause: Keynote rejects some decks that PowerPoint and LibreOffice open fine.
Fix: Upload the file to PowerPoint Online (OneDrive), download it again, then open it in Keynote.
claude-desktop Source
All your open PowerPoint files close during a check
Cause: On Windows without LibreOffice, Claude may drive your installed PowerPoint and quit it.
Fix: Install LibreOffice so slides render with soffice instead.
claude-code Source
Japanese text breaks lines in the wrong places
Cause: The deck builder sets the text language to en-US by default.
Fix: No fix yet. Check line breaks in the finished deck before you share it.
claude-code, claude-desktop Source
The sections list no longer matches the slides
Cause: clean.py and add_slide.py leave the section list out of sync, and validate.py does not catch it.
Fix: No fix yet. After adding or removing slides, check the sections in PowerPoint.
claude-code Source
thumbnail.py crashes after rendering every slide
Cause: Passing --cols 0 makes it fail at the end.
Fix: Leave out the --cols option or give it a number above 0.
claude-code Source
PDF conversion fails now and then in Docker
Cause: LibreOffice conversion fails sometimes and the script does not retry.
Fix: Run the conversion again. The issue is open.
claude-code Source
Icons do not render in API-built decks
Cause: The API sandbox shipped react and react-dom at mismatched versions.
Fix: No fix yet. Ask for a deck without icons if they come out broken.
Unrelated skills load after the plugin install
Cause: document-skills loads every skill in the repo, not just the four document skills.
Fix: Delete the unrelated skill folders from ~/.claude/plugins/cache/anthropic-agent-skills, and repeat after updates.
claude-code Source
Questions
Is there a PowerPoint skill for Claude?
Yes. It is called pptx, and Anthropic builds it into Claude. It is one of four document skills, next to docx, xlsx and pdf, that let Claude create files. Ask for a deck or attach a .pptx and Claude uses it on its own.
How do I install the pptx skill?
In Claude.ai there is nothing to install. Turn on Code execution and file creation in Settings > Capabilities and check that pptx is on in Customize > Skills. In Claude Code, use the plugin steps in the install box above.
Does the pptx skill work on the free plan?
Yes, per Anthropic's support page, which lists Free, Pro, Max, Ultra, Team and Enterprise for skills, and skills need Code execution and file creation turned on. The repo README still says paid plans, but it is older than the support page. If Settings > Capabilities shows Code execution and file creation, you have it.
Can I use the pptx skill in Claude Code or the API?
Yes to both. In Claude Code, install the document-skills plugin from the anthropics/skills marketplace. If you sign in with a claude.ai account, Anthropic's built-in skills also sync to your machine. In the API, add the skill with skill_id pptx and the code execution tool to a Messages request, then download the deck with the Files API.
pptx skill vs the Claude in PowerPoint add-in?
The skill makes Claude write a new .pptx file in a sandbox, and you download it. Claude for PowerPoint is a separate Microsoft 365 add-in that edits the deck you already have open, using its slide master and layouts. The add-in is for Pro, Max, Team and Enterprise, and skills you turn on in Claude also work inside it.
Is the pptx skill open source?
No. The license says all rights reserved. Use is governed by your agreement with Anthropic, and you may not copy it, change it, share it or keep copies outside Anthropic's services. Anthropic calls it source-available. Whether a local Claude Code install counts is not answered anywhere, and a user who asked on GitHub got no reply.
Is the pptx skill safe?
Mostly. It runs scripts on the machine where Claude works, and some of them rewrite or delete slides in the deck you give it. The skills.sh audits show two passes (Gen Agent Trust Hub and Snyk) and one low warning (Socket). Work on a copy of your deck.
Does the pptx skill work in Codex, Cursor or Copilot?
Anthropic does not document it. It only covers Claude.ai, Claude Code and the API. A user asked about GitHub Copilot on the repo and got no answer, and the license ties use to Anthropic's services.
What does the pptx skill need on my computer?
Claude.ai and the API sandbox already have everything. On your own machine, the scripts use Node with pptxgenjs, Python with markitdown, Pillow, defusedxml and lxml, LibreOffice, and Poppler. Without LibreOffice on Windows, Claude may drive your open PowerPoint instead.
Why won't my deck open in Keynote?
An open issue reports decks that PowerPoint, PowerPoint Online and LibreOffice open fine but Keynote rejects. The reporter's workaround is to upload the file to PowerPoint Online (OneDrive), download it again, then open it in Keynote.
Information
updated Nov 2, 2026
- Repository
- anthropics/skills
- Folder
skills/pptx
Sources
Docs, issue trackers and discussions this page is built from.
Show all 33Hide
- The repo copy of docx, pptx, and xlsx lags the claude.ai sync · github.com
- anthropics/skills README · github.com
- Extend Claude with skills · code.claude.com
- marketplace.json · github.com
- pptx SKILL.md · github.com
- Using skills in Claude · support.claude.com
- What are skills? · support.claude.com
- Create and edit files with Claude · support.claude.com
- Agent Skills guide · platform.claude.com
- pptx LICENSE.txt · github.com
- pptx on skills.sh · skills.sh
- Commits to skills/pptx · github.com
- Socket audit for pptx · skills.sh
- Snyk audit for pptx · skills.sh
- Gen Agent Trust Hub audit for pptx · skills.sh
- Copilot licensing question · github.com
- Is a local install allowed under the license? · github.com
- Closes open PowerPoint · github.com
- Keynote import · github.com
- Use Claude in PowerPoint · support.claude.com
- soffice.py · github.com
- clean.py deletes every slide when presentation.xml cannot be parsed · github.com
- Validators use lxml's default parser · github.com
- Create files with Claude · anthropic.com
- Hacker News comment · news.ycombinator.com
- Hacker News comment · news.ycombinator.com
- Hacker News comment · news.ycombinator.com
- Japanese kinsoku · github.com
- Section list out of sync · github.com
- thumbnail.py --cols 0 · github.com
- LibreOffice PDF conversion in Docker · github.com
- react / react-dom mismatch in API sandbox · github.com
- document-skills loads every skill · github.com