Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/sairam-muppalla-powerpoint
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: presentations, writing, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/powerpoint
What's inside
- Skill name
powerpoint- Description
- Create, read, edit .pptx decks with python-pptx.
- License
- MIT
- Instructions
- 208 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (8)
- LICENSE
- SKILL.md
- pptx_create.py · scripts/
- pptx_edit.py · scripts/
- pptx_from_template.py · scripts/
- pptx_read.py · scripts/
- pptx_render.py · scripts/
- test_powerpoint_skill.py · tests/
SKILL.md (first lines)
# Powerpoint Skill
Create, inspect, and edit PowerPoint (.pptx) presentations using the
python-pptx library. Five helper scripts cover deck creation from a JSON
spec, structured read-back, in-place edits, template-driven brand decks,
and slide rendering — all offline, no PowerPoint installation required.
## When to Use
- The user asks to build a slide deck, report presentation, or pitch deck.
- You need to extract text, notes, tables, chart data, or images from a
.pptx someone shared.
- You need to update an existing deck: replace text, refresh or patch
chart data, swap a logo, duplicate/remove/reorder slides, set
backgrounds, footers, hyperlinks, or speaker notes.
- You must produce an on-brand deck from a company .pptx template.
- Do NOT use this for .ppt (legacy binary) files — convert them first with
`soffice --convert-to pptx old.ppt` if LibreOffice is available.
## Prerequisites
- Python 3.10+ with `python-pptx` installed
(`pip install python-pptx`).
- Optional: LibreOffice (`soffice`) plus poppler (`pdftoppm` or
`pdftocairo`) for rendering slides to PNGs and for PDF export.
`pptx_render.py` detects both with `shutil.which` and degrades
gracefully (reports `{"rendered": false, "missing": [...]}`, exit 0)
when absent — all create/read/edit operations work without them.
- Check availability via `terminal`:
`python -c "import pptx; print(pptx.__version__)"` and `which soffice pdftoppm`.
## How to Run
All scripts live in `scripts/`, take `--help`, print JSON to stdout, and
exit non-zero on failure. Run them with `terminal`:
```bash
python scripts/pptx_create.py deck.json out.pptx
python scripts/pptx_read.py deck.pptx --outline # full JSON outline
python scripts/pptx_read.py deck.pptx --notes # speaker notes
python scripts/pptx_read.py deck.pptx --images ./img # export pictures
python scripts/pptx_edit.py deck.pptx --replace-text "Old Corp" "New Corp"
python scripts/pptx_edit.py deck.pptx --chart-data update.json
python scripts/pptx_edit.py deck.pptx --duplicate-slide 2
python scripts/pptx_edit.py deck.pptx --remove-slide 3 --move-slide 2 0
python scripts/pptx_from_template.py brand.pptx out.pptx --values vals.json
python scripts/pptx_render.py deck.pptx --outdir ./render # slide PNGs
```
Author JSON specs with `write_file`; inspect script output and generated
JSON with `read_file`.
## Quick Reference
| Task | Command |
|---|---|
| New deck from spec | `pptx_create.py spec.json out.pptx` |
| 16:9 vs 4:3 | `"slide_size": "16:9"` or `"4:3"` in the spec |
| Outline as JSON | `pptx_read.py deck.pptx --outline` |
| Export images | `pptx_read.py deck.pptx --images DIR` |
| Replace text | `pptx_edit.py deck.pptx --replace-text OLD NEW` |
| Replace chart data | `pptx_edit.py deck.pptx --chart-data spec.json` |
| Patch one series | same flag, spec with `"ops"` (see below) |
| Swap picture | `pptx_edit.py deck.pptx --swap-image N NAME new.png` |
| Duplicate slide | `pptx_edit.py deck.pptx --duplicate-slide N` |
| Remove slide | `pptx_edit.py deck.pptx --remove-slide N` |
| Reorder slide | `pptx_edit.py deck.pptx --move-slide FROM TO` |
| Slide background | `pptx_edit.py deck.pptx --set-background N RRGGBB` |
| Hyperlink runs | `pptx_edit.py deck.pptx --hyperlink N TEXT URL` |
| Slide number on | `pptx_edit.py deck.pptx --enable-slide-number N` |
| Footer text | `pptx_edit.py deck.pptx --set-footer N TEXT` |
| Set notes | `pptx_edit.py deck.pptx --set-notes N TEXT` |
| Append notes | `pptx_edit.py deck.pptx --append-notes N TEXT` |
| Fill template | `pptx_from_template.py tpl.pptx out.pptx --values v.json` |
| Render slide PNGs | `pptx_render.py deck.pptx --outdir DIR` |
## Procedure
### 1. Create a deck
Write a JSON spec (see `pptx_create.py --help` for the full format), then
run `pptx_create.py`. Per slide you can set: `layout` (title,
title_content, section, two_content, title_only, blank), `title`,
`subtitle`, `bullets` (strings, or dicts with `level` 0-4, `size` pt,
`bold`, `italic`, `font`, `color` hex, `link` URL for a hyperlink),
`background` (solid hex), `footer` (text; enables the layout's footer
placeholder), `slide_number` (true; enables the layout's slide-number
placeholder), `images` (path + left/top/width/height in inches), `tables`
(`rows` as list-of-lists), `shapes` (rectangle, rounded_rectangle, oval,
diamond, right_arrow, chevron, with `fill` hex + optional `text`),
`charts` (bar, bar_h, line, pie with `categories` + `series`), and
`notes` (speaker notes).
### 2. Read a deck
`pptx_read.py deck.pptx --outline` returns slide size, layout inventory,
and per slide: layout name, all shape texts, table cells, image inventory
(filename/ext/bytes), chart categories/series/values, and speaker notes.
Use `--images DIR` to dump embedded pictures to files, then
`vision_analyze` on any exported image if you need to see its content.
### 3. Edit a deck
`pptx_edit.py` combines operations in one pass; use `--output` to keep the
original. Text replacement scans slide shapes, table cells, and notes.
Image swap retargets the picture's relationship id so position and size
are preserved. Slide removal drops the relationship and the `<p:sldId>`
entry; reorder moves the `<p:sldId>` element within `<p:sldIdLst>`
(python-pptx has no public API for either — the script does the XML-level
work). `--duplicate-slide N` appends an independent deep copy of slide N:
shape XML plus image/media/hyperlink relationships are cloned and rIds
remapped, so editing the copy never touches the original. Chart slides
are refused (see Pitfalls). `--set-notes`/`--append-notes` edit speaker
notes; `--set-background`, `--hyperlink`, `--enable-slide-number`, and
`--set-footer` handle deck polish.
Chart updates take a JSON spec via `--chart-data`. Full replace:
`{"slide": 0, "chart": 0, "categories": [...], "series": {...}}`. For
surgical edits, pass `"ops"` instead — a list ofFrom SaiRam-Muppalla/hermes-skills-backup, MIT.
More from SaiRam-Muppalla/hermes-skills-backup
- 0.570score
pulse
SaiRam-Muppalla
Multi-source recency research skill that takes the pulse of any topic across Reddit, Hacker News, the open web, and optionally X/Twitter within a configurable…
SkillAFreshness: AClaude Code +9 - 0.570score
syllabus
SaiRam-Muppalla
Generates a curated supplementary reading list from any course syllabus using Consensus academic search.
SkillAFreshness: AClaude Code +9 - 0.566score
litreview
SaiRam-Muppalla
Academic literature orientation skill that searches papers via free keyless APIs (PubMed E-utilities + OpenAlex) by default — with the Consensus MCP as an…
SkillAFreshness: AClaude Code +9 - 0.565score
deep-research
SaiRam-Muppalla
Run a disciplined, multi-source research investigation for a high-stakes question or decision — fan-out web search across many channels, parallel sub-agents…
SkillAFreshness: AClaude Code +9 - 0.565score
research
SaiRam-Muppalla
Default entry point for any research request — a hybrid router that classifies the question deterministically and either delegates to a specialist research…
SkillAFreshness: AClaude Code +9 - 0.565score
prospecting
SaiRam-Muppalla
When the user wants to find, qualify, and build a list of prospects to reach out to — across B2B SaaS, general B2B, or local small businesses.
SkillAFreshness: AClaude Code +9 - 0.560score
pdf
SaiRam-Muppalla
PDF files: create, read, merge, fill, OCR, edit text.
SkillAFreshness: AClaude Code +9 - 0.560score
grounded-citations
SaiRam-Muppalla
Ground answers and documents in cited, verifiable sources.
SkillAFreshness: AClaude Code +9 - 0.560score
xlsx
SaiRam-Muppalla
Create, read, edit Excel .xlsx workbooks and CSVs.
SkillAFreshness: AClaude Code +9 - 0.550score
mow-curriculum-architect
SaiRam-Muppalla
Use when designing hands-on bootcamps and code labs.
SkillAFreshness: AClaude Code +9 - 0.539score
interview-system-designer
SaiRam-Muppalla
This skill should be used when the user asks to "design interview processes", "create hiring pipelines", "calibrate interview loops", "generate interview…
SkillAFreshness: AClaude Code +9 - 0.536score
research-summarizer
Alireza Rezvani
Structured research summarization agent skill for non-dev users.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 20, 2026 (9 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from SaiRam-Muppalla
- 0.570score
pulse
SaiRam-Muppalla
Multi-source recency research skill that takes the pulse of any topic across Reddit, Hacker News, the open web, and optionally X/Twitter within a configurable…
SkillAFreshness: AClaude Code +9 - 0.570score
syllabus
SaiRam-Muppalla
Generates a curated supplementary reading list from any course syllabus using Consensus academic search.
SkillAFreshness: AClaude Code +9 - 0.566score
litreview
SaiRam-Muppalla
Academic literature orientation skill that searches papers via free keyless APIs (PubMed E-utilities + OpenAlex) by default — with the Consensus MCP as an…
SkillAFreshness: AClaude Code +9 - 0.565score
prospecting
SaiRam-Muppalla
When the user wants to find, qualify, and build a list of prospects to reach out to — across B2B SaaS, general B2B, or local small businesses.
SkillAFreshness: AClaude Code +9 - 0.565score
research
SaiRam-Muppalla
Default entry point for any research request — a hybrid router that classifies the question deterministically and either delegates to a specialist research…
SkillAFreshness: AClaude Code +9 - 0.565score
deep-research
SaiRam-Muppalla
Run a disciplined, multi-source research investigation for a high-stakes question or decision — fan-out web search across many channels, parallel sub-agents…
SkillAFreshness: AClaude Code +9
Cite this page
powerpoint skill. Agent Mart. https://agentmart.dev/skills/sairam-muppalla-powerpoint (last updated 2026-10-24)