Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aws-samples avatar

Powerpoint Presentations

  • 63 installs
  • 186 repo stars
  • Updated August 4, 2026
  • aws-samples/sample-strands-agent-with-agentcore

powerpoint-presentations is a Claude skill that creates, modifies, and manages PowerPoint decks using PptxGenJS and template-aware workflows.

About

This skill lets an agent create, modify, and manage PowerPoint presentations, either from scratch with PptxGenJS or from an uploaded .pptx template. The template path preserves the slide master, theme, logo, and footer while swapping in new content. A developer uses it when an assistant needs to produce polished slide decks. It includes extensive design guidance on palettes, typography, layouts, and preview verification.

  • Creates, modifies, and manages PowerPoint presentations with PptxGenJS
  • Supports create-from-scratch and create-from-template workflows that preserve masters and theme
  • Ships detailed design guidance: palettes, typography, layouts, and common mistakes to avoid

Powerpoint Presentations by the numbers

  • 63 all-time installs (skills.sh)
  • Ranked #354 of 688 Office & Documents skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

powerpoint-presentations capabilities & compatibility

Capabilities
slide generation · deck editing
Use cases
presentations
Pricing
Free
From the docs

What powerpoint-presentations says it does

Create, modify, and manage PowerPoint presentations.
SKILL.md
npx skills add https://github.com/aws-samples/sample-strands-agent-with-agentcore --skill powerpoint-presentations

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs63
repo stars186
Last updatedAugust 4, 2026
Repositoryaws-samples/sample-strands-agent-with-agentcore

What it does

Generate or edit a PowerPoint deck from scratch or from a template while preserving the template's theme.

Who is it for?

Producing polished slide decks from scratch or from an uploaded .pptx template with design guidance.

Skip if: Non-slide document formats.

When should I use this skill?

The user asks to create, edit, or manage a PowerPoint presentation or slide deck.

What you get

A designed .pptx deck built from scratch or from a template with preserved master, theme, logo, and footer.

  • PowerPoint .pptx deck
  • template-based slide deck

By the numbers

  • 10 color-palette themes documented
  • max 4 bullets per slide guidance

Files

SKILL.mdMarkdownGitHub ↗

PowerPoint Presentations

Quick Reference

TaskHow
Create from scratchget_slide_design_referencecreate_presentation (PptxGenJS). Read pptxgenjs.md.
Create from templateget_presentation_layoutsdelete_slides (strip content) → add_slideupdate_slide_content. Do NOT use `create_presentation`.
Edit existinganalyze_presentationupdate_slide_content. Read editing-guide.md.
Verifypreview_presentation_slides after every change

Design Ideas

Don't create boring slides. Plain bullets on a white background won't impress anyone.

Before Starting

  • Pick a bold, content-informed color palette: The palette should feel designed for THIS topic.
  • Dominance over equality: One color dominates (60-70% visual weight), with 1-2 supporting tones and one sharp accent. Never give all colors equal weight.
  • Dark/light contrast: Dark backgrounds for title + conclusion slides, lighter tints for content slides. Or commit to dark throughout for a premium feel.
  • Commit to a visual motif: Pick ONE distinctive element and repeat it — rounded image frames, icons in colored circles, thick single-side borders.

Color Palettes

Choose colors that match your topic — don't default to generic blue.

ThemePrimarySecondaryAccent
Midnight Executive1E2761 (navy)CADCFC (ice blue)FFFFFF (white)
Teal Trust028090 (teal)00A896 (seafoam)02C39A (mint)
Forest & Moss2C5F2D (forest)97BC62 (moss)F5F5F5 (cream)
Berry & Cream6D2E46 (berry)A26769 (dusty rose)ECE2D0 (cream)
Coral EnergyF96167 (coral)F9E795 (gold)2F3C7E (navy)
Ocean Gradient065A82 (ocean)1C7293 (teal)21295C (midnight)
Charcoal Minimal36454F (charcoal)F2F2F2 (off-white)212121 (black)
Cherry Bold990011 (cherry)FCF6F5 (off-white)2F3C7E (navy)
Sage Calm84B59F (sage)69A297 (eucalyptus)50808E (slate)
Warm TerracottaB85042 (terracotta)E7E8D1 (sand)A7BEAE (sage)

For Each Slide

Every slide needs a visual element — image, chart, icon, or shape. Text-only slides are forgettable.

Layout options:

  • Two-column (text left, illustration right)
  • Icon + text rows (icon in colored circle, bold header, description below)
  • 2x2 or 2x3 grid (image one side, content blocks the other)
  • Half-bleed image (full left or right) with content overlay

Data display:

  • Large stat callouts (big numbers 60-72pt with small labels below)
  • Comparison columns (before/after, pros/cons, side-by-side options)
  • Timeline or process flow (numbered steps, arrows)

Visual polish:

  • Icons in small colored circles next to section headers
  • Italic accent text for key stats or taglines

Typography

Header FontBody Font
GeorgiaCalibri
Arial BlackArial
Calibri BoldCalibri Light
CambriaCalibri
Trebuchet MSCalibri
ElementSize
Slide title36-44pt bold
Section header20-24pt bold
Body text14-16pt
Captions10-12pt muted

Font pairings: Georgia + Calibri (classic), Arial Black + Arial (modern), Calibri Bold + Calibri Light (corporate). Left-align body text; center only titles and stats.

Spacing

  • 0.5" minimum margins from edges
  • 0.3-0.5" between content blocks
  • 0.5"+ breathing room below titles

Avoid (Common Mistakes)

  • Plain bullets on white background — always fill slides with a palette color
  • Default PowerPoint blue (#4472C4) — signals "auto-generated"
  • Don't repeat the same layout — vary columns, cards, and callouts across slides
  • Don't center body text — left-align paragraphs; center only titles and stats
  • Don't skimp on size contrast — titles need 36pt+ to stand out from 14-16pt body
  • Don't mix spacing randomly — choose 0.3" or 0.5" gaps and use consistently
  • Don't style one slide and leave the rest plain — commit fully or keep it simple throughout
  • Don't create text-only slides — add shapes, icons, charts, or accent elements
  • Don't forget text box padding — set margin: 0 when aligning text with shapes at same x-position
  • Don't use low-contrast elements — text AND icons need strong contrast against background
  • NEVER use accent lines under titles — use whitespace or background color instead
  • Don't overcrowd slides — max 4 bullets; split to multiple slides or use 2x2/3-column grid

See design-guide.md for visual element code patterns (accent bars, icon circles, side stripes, cards).

---

Workflow

A. Create from scratch (no template)

1. Call get_slide_design_reference for palette and layout ideas 2. Call create_presentation with slides parameter (PptxGenJS). Read pptxgenjs.md for the full API.

B. Create from a template (user uploaded a .pptx template)

Do NOT use `create_presentation` — that ignores the template entirely and recreates from scratch.

Instead, use the template file as the base: 1. get_presentation_layouts("template-name") — see available layout names 2. preview_presentation_slides — inspect visual style (colors, logo, footer, chrome elements) 3. delete_slides("template-name", [indices of all content slides], "working-name") — strip example content, keep masters/layouts 4. add_slide("working-name", layout_name, position, "working-name-v2") — add slides using the template's own layouts (inherits background, logo, footer automatically) 5. update_slide_content(...) — fill in text and images

This preserves the template's slide master, theme, logo, footer, and background — things create_presentation cannot replicate.

C. Edit existing presentation

Read editing-guide.md for detailed workflows. Then: analyze_presentation → identify element IDs → update_slide_content.

Verify

Call preview_presentation_slides after any modification. Assume there are problems — inspect carefully.

When continuing a deck across conversation turns: Do NOT re-preview existing slides just to check the design system. The palette, fonts, and layout decisions from the previous turn are already in the conversation history — use that. Only re-preview if you need to verify the visual state after a modification.

Rules

  • Batch all edits in ONE update_slide_content call. Parallel calls cause data loss.
  • output_name must differ from presentation_name.
  • All slide indices are 0-based EXCEPT preview_presentation_slides which uses 1-based slide_numbers.
  • Filenames: letters, numbers, hyphens only.

---

QA (Required)

Assume there are problems. Your job is to find them.

Your first render is almost never perfect. Approach QA as a bug hunt, not a confirmation step.

Visual QA

Call preview_presentation_slides and visually inspect the screenshots. Look for:

  • Overlapping elements (text through shapes, lines through words)
  • Text overflow or cut off at edges
  • Elements too close (< 0.3" gaps) or cards nearly touching
  • Uneven gaps (large empty area in one place, cramped in another)
  • Insufficient margin from slide edges (< 0.5")
  • Columns or similar elements not aligned consistently
  • Low-contrast text (light text on light background, dark text on dark background)
  • Low-contrast icons without a contrasting background circle
  • Text boxes too narrow causing excessive wrapping
  • Inconsistent font sizes or styles across similar elements

Verification Loop

1. Generate → preview_presentation_slides → inspect screenshots 2. List issues found (if none found, look again more critically) 3. Fix with update_slide_content 4. Re-verify affected slides — one fix often creates another problem 5. Repeat until a full pass reveals no new issues

Do not declare success until you've completed at least one fix-and-verify cycle.

---

Tool Reference

get_slide_design_reference

Get design guidelines, color palettes, typography rules, and layout patterns.

ParameterTypeRequiredDescription
topicstrNo (default "all")"colors", "typography", "layouts", "pitfalls", "all"

create_presentation

Create a new presentation with custom-designed slides (16:9 widescreen).

ParameterTypeRequiredDescription
presentation_namestrYesFilename without extension (letters, numbers, hyphens only)
slideslist or nullYesList of {"custom_code": "..."} dicts, or null for blank

Example tool_input:

{
  "presentation_name": "my-deck",
  "slides": [
    {"custom_code": "let slide = pres.addSlide();\nslide.background = { color: '1E2761' };\nslide.addText('Welcome', { x: 0.6, y: 2.5, w: 10, h: 1.5, fontSize: 44, bold: true, color: 'FFFFFF', align: 'center' });"}
  ]
}

IMPORTANT: custom_code uses pres in scope. Create slides with pres.addSlide(). Colors are 6-digit hex WITHOUT '#'. Do NOT reuse option objects across multiple addText/addShape calls. See pptxgenjs.md for full API.

analyze_presentation

Analyze structure with element IDs and positions for editing.

ParameterTypeRequiredDescription
presentation_namestrYesPresentation to analyze
slide_indexintNoAnalyze a specific slide only
include_notesboolNo (default false)Include speaker notes

update_slide_content

Update one or more slides with operations in a single call.

ParameterTypeRequiredDescription
presentation_namestrYesSource file
slide_updateslistYesList of update operations
output_namestrYesOutput filename (MUST differ from source)

Supported actions per operation: set_text, replace_text, replace_image. See editing-guide.md for details.

add_slide

Add a new blank slide at a specific position.

ParameterTypeRequiredDescription
presentation_namestrYesSource presentation
layout_namestrYesLayout name from get_presentation_layouts
positionintYes0-based index (-1 to append at end)
output_namestrYesOutput filename

After adding, populate content with update_slide_content.

delete_slides

ParameterTypeRequired
presentation_namestrYes
slide_indiceslist[int]Yes (0-based)
output_namestrYes

move_slide

ParameterTypeRequired
presentation_namestrYes
from_indexintYes (0-based)
to_indexintYes (0-based)
output_namestrYes

duplicate_slide

ParameterTypeRequiredDescription
presentation_namestrYes
source_indexintYes (0-based)Slide to duplicate
output_namestrYes
insert_positionintNo (default -1)Where to insert copy; -1 appends after source

update_slide_notes

ParameterTypeRequired
presentation_namestrYes
slide_indexintYes (0-based)
notes_textstrYes
output_namestrYes

list_my_powerpoint_presentations

List all presentations in workspace. No parameters needed.

get_presentation_layouts

Get available slide layouts from a presentation.

ParameterTypeRequired
presentation_namestrYes

preview_presentation_slides

Get slide screenshots for visual inspection.

ParameterTypeRequiredDescription
presentation_namestrYesPresentation to preview
slide_numberslist[int]Yes1-based slide numbers (not 0-based)

UI Guidance (from tools-config)

Creating New Presentations:

  • Use get_slide_design_reference() first to get design guidelines and color palettes
  • create_presentation slides format: [{"custom_code": "let slide = pres.addSlide(); slide.addText(...)"}]
  • Each custom_code snippet has pres in scope; create slides with pres.addSlide()
  • Color format: 6-digit hex WITHOUT '#' (e.g. '1E2761', not '#1E2761')

Editing Existing Presentations:

  • Operations: set_text, replace_text, replace_image
  • Batch all edits in 1 call (parallel calls = data loss)
  • Output name must differ from source
  • preview_presentation_slides first to check layout

Design Philosophy (MANDATORY for new presentations):

  • CRITICAL: Choose ONE palette for the ENTIRE presentation. All slides must use the same primary and accent colors. Do NOT mix palettes across slides.
  • Bold dominant background colors (60-70% slide coverage). NEVER use plain white backgrounds.
  • Available palettes: Midnight Executive (#1E2761/#408EC6), Teal Trust (#0A1A2A/#028090), Forest & Moss (#2C5F2D/#97BC62), Berry & Cream (#ECE2D0/#6D2E46), Coral Energy (#1A1A2E/#FF6F61), Ocean Gradient (#065A82/#1B9AAA), Charcoal Minimal (#1C1C1E/#E8E8E8), Cherry Bold (#150E11/#990011), Sage Calm (#2D3A2D/#8FB96A)
  • Dark slides for emphasis, lighter tints of the SAME palette for data slides.
  • Every slide must have visual elements (shapes, accent bars, icon circles) — no text-only slides.

Typography:

  • Titles: 36-44pt bold (Georgia or Arial Black). Body: 14-16pt (Calibri). Stats: 48-120pt bold.
  • Font pairings: Georgia+Calibri (classic), Arial Black+Arial (modern), Calibri Bold+Calibri Light (corporate)
  • Left-align body text. Center only titles and stats.

Spacing:

  • 0.5"+ margins from edges. 0.3-0.5" gaps between elements. 0.5"+ breathing room below titles.

Anti-Patterns (AVOID):

  • Plain bullets on white background
  • Default PowerPoint blue (#4472C4)
  • Accent lines directly under titles
  • Text-only slides without visual elements
  • More than 4 bullet points per slide

QA: Always use preview_presentation_slides after creation to verify appearance.

Rules:

  • Names: letters, numbers, hyphens only
  • Indices: 0-based

Related skills

FAQ

Does it respect uploaded templates?

Yes, the create-from-template workflow uses get_presentation_layouts and add_slide and preserves the slide master, theme, logo, and footer.

How do you verify slides?

Call preview_presentation_slides after every change to inspect the result.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.