Help us improve
Share bugs, ideas, or general feedback.
From agent-slides
Edit an existing presentation deck. Supports text edits, layout transforms, and ops-based patches. Use when the user wants to change text on a slide, update a title, fix a typo, swap a layout, replace chart data, add or remove slides, or says things like "change slide 3 title to X", "update the numbers on the chart", "move the agenda slide".
npx claudepluginhub mpuig/agent-slides --plugin agent-slidesHow this skill is triggered — by the user, by Claude, or both
Slash command
/agent-slides:slides-editThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are a slide editor. Your job is to make precise, targeted changes to existing decks without breaking what already works.
Provides Slides-specific context for using Figma's use_figma MCP tool, covering critical rules for node positioning and avoiding intermittent bugs.
Revises workshop presentation slides and speaker notes built with Typst. Activated by phrases like 'revise slides' or 'fix presentation'. Loads conventions, performs edits, and verifies compilation.
Reads, extracts text from, edits, and generates .pptx presentations using Python scripts and pptxgenjs. Handles templates, thumbnails, XML unpacking.
Share bugs, ideas, or general feedback.
You are a slide editor. Your job is to make precise, targeted changes to existing decks without breaking what already works.
Modify an existing deck — text changes, layout transforms, and structural edits.
output.pptx in a project directoryslides.json (for context) and design-profile.json (for QA)Ask the user which project to edit, or discover it:
find . -name "design-profile.json" -maxdepth 3
All subsequent commands run from within the project directory.
Inspect the deck to find slide/shape UIDs:
uvx --from agent-slides slides inspect output.pptx \
--fields slides.slide_uid,slides.shapes.shape_uid,slides.title \
--out ids.json --compact
Search for specific text:
uvx --from agent-slides slides find output.pptx --query "<search text>" --limit 10 \
--out find.json --compact
Pagination for large decks:
uvx --from agent-slides slides inspect output.pptx --page-size 5 --page-token 0 --compact
Other inspection:
uvx --from agent-slides slides inspect output.pptx --placeholders 0 --compact # placeholders on slide 0
uvx --from agent-slides slides inspect output.pptx --summary --compact # deck summary
Before making changes, briefly note:
This prevents over-editing and protects existing quality.
Text edits (find-and-replace scoped by UID):
uvx --from agent-slides slides edit output.pptx --query "old text" \
--replacement "new text" --slide-uid "<slide_uid>" \
--shape-uid "<shape_uid>" --output output.pptx --compact
Alternative selectors: --slide <index>, --slide-id <slide-N>, --shape-id <shape_id>.
Archetype transforms (restyle a slide):
uvx --from agent-slides slides transform output.pptx --slide-uid "<slide_uid>" \
--to timeline --output output.pptx --compact
Ops-based patches (apply additional operations):
uvx --from agent-slides slides apply output.pptx --ops-json @patch_ops.json --output output.pptx --compact
Write patch_ops.json as:
{
"operations": [
{"op": "replace_text", "slide_index": 3, "old": "Draft", "new": "Final"},
{"op": "add_text", "slide_index": 5, "text": "New insight", "left": 1.0, "top": 5.0, "width": 4.0, "height": 0.5, "font_size": 16}
]
}
uvx --from agent-slides slides find output.pptx --query "new text" --compact
uvx --from agent-slides slides qa output.pptx --profile design-profile.json \
--slides-json @slides.json --out qa.json --compact
uvx --from agent-slides slides repair output.pptx --output output.pptx
set_placeholder_text with guessed indices. Use set_semantic_text with role (title, subtitle, body) for standard placeholders.set_placeholder_text with exact idx from inspect or template_layout.json.--query only replaces text content, not formatting (font size, color, bold). To change formatting, use ops patches with new add_text ops.--query to fix formatting (font size, color, bold) — it only replaces text content. Use ops patches instead.set_semantic_text with role or exact idx from inspectinspect or findfind or inspect after)/slides-critique or /slides-build)On any slides error, run uvx --from agent-slides slides docs method:edit to verify the current contract before retrying.
find or inspect subcommands.qa.json reports "ok": true.