Getting started

From prompt to polished deck.

Install the package, give it your template, and start building presentations.

Install

Claude app (desktop & web)

Download the skill ZIP and upload it in Customize > Skills:

Download agent-slides.zip

Coding agents (Claude Code, Cursor, Gemini CLI, Codex)

npx skills add https://github.com/mpuig/agent-slides

This clones the repo, lets you pick which skills to install, and sets them up for your agent. Skills call the CLI via uvx, which auto-installs the Python package in an isolated environment on first run — no manual pip install needed.

Manual setup

# Clone the repo
git clone https://github.com/mpuig/agent-slides.git

# Symlink skills into your agent's skill directory
ln -s agent-slides/skills/* .claude/skills/

Requires uv to be available in your environment. The skills invoke the CLI via uvx --from agent-slides slides, which resolves and caches the package automatically.

Prepare your template

Every deck starts from a PowerPoint template — your corporate theme, a client-provided file, or one of the bundled templates. The extraction step analyzes its layouts, colors, fonts, and spatial zones into a machine-readable contract the agent uses when building slides.

In Claude Code, run:

/slides-extract

The skill will ask you to point it at a .pptx file. It produces three artifacts in your project directory:

  • Resolved manifest — a JSON contract describing every available layout, its placeholders, color zones, and editable regions
  • Base template — a cleaned copy of the original file, ready for rendering
  • Design profile — font-size bounds, allowed colors, and contrast rules used by the QA engine

You can also run extraction directly from the CLI:

uvx --from agent-slides slides extract "template.pptx" --output-dir project/

Build your first deck

With your template extracted, you're ready to build. In Claude Code:

/slides-full "10-slide strategy deck on Q3 growth"

The agent plans a narrative arc, selects layouts from your template contract, renders slide operations into a .pptx file, and runs quality checks automatically. If the QA engine finds issues — font sizes outside bounds, low contrast, overlapping shapes — the agent fixes them and rechecks until both gates pass.

If you want just the build step without the full QA loop:

/slides-build "10-slide strategy deck on Q3 growth"

The output is a ready-to-open PowerPoint file in your working directory.

Refine and iterate

Decks rarely land perfectly on the first pass. Use natural language to request changes:

  • "Change slide 3 to use the split-panel layout"
  • "Move the chart on slide 8 to the left"
  • "Replace the pie chart with a bar chart"
  • "Add speaker notes to every slide"
  • "Swap the order of slides 4 and 5"

For targeted edits on an existing deck:

/slides-edit

The edit skill reads the current deck, applies your changes as operations, and re-renders. It supports text replacements, layout swaps, chart modifications, and structural changes like reordering or removing slides.

Review quality

Three specialized skills cover different dimensions of deck quality:

/slides-audit — Technical lint

Checks every shape against the design profile: font sizes within bounds, sufficient color contrast, no overlapping elements, all content within slide margins. Returns structured violations with suggested fixes.

/slides-critique — Storytelling review

Evaluates narrative structure: action titles that drive the story forward, MECE logic across sections, consistent level of detail, and clear slide-to-slide flow.

/slides-polish — Final pass

Adds speaker notes, checks metadata consistency, verifies source citations, and ensures visual consistency across the full deck. This is the last step before delivery.

The /slides-full pipeline chains all three automatically. Run them individually when you want fine-grained control over the review process.

Advanced: CLI reference

For power users and automation workflows, the CLI provides direct access to every operation the skills use under the hood.

Key commands

# Shorthand: alias the CLI
alias slides='uvx --from agent-slides slides'

# Render a slides.json into a .pptx
slides render --slides-json @slides.json \
  --profile project/design-profile.json \
  --output deck.pptx

# Apply raw operations (with optional dry-run)
slides apply --ops-json @ops.json --dry-run --output deck.pptx

# Run validation + design lint
slides qa deck.pptx \
  --profile project/design-profile.json \
  --out qa.json --compact

# Inspect slide content with field masks
slides inspect deck.pptx \
  --fields slides.title,slides.shapes.text \
  --page-size 5 --compact

# Search for content across slides
slides find deck.pptx --query "pricing" --out results.json

# Find-and-replace text
slides edit deck.pptx \
  --query "old text" --replacement "new text" \
  --output deck.pptx

CI gating

Gate deck quality in your pipeline with exit codes — 0 means all clear, non-zero means violations found:

slides validate deck.pptx || exit 1
slides lint deck.pptx --profile dp.json --out lint.json
slides qa deck.pptx --profile dp.json --out qa.json