Create professional PowerPoint presentations. Use when asked to "create a PowerPoint", "make a presentation", "build slides", or generate .pptx files.
Create professional PowerPoint presentations programmatically using python-pptx.
This skill enables creation of .pptx files with:
All temporary files go in /tmp/claude/pptx-project/ to avoid filesystem clutter.
Before starting, ask where to save the final .pptx:
~/Desktop/presentation.pptx~/Downloads/presentation.pptxmkdir -p /tmp/claude/pptx-project && cd /tmp/claude/pptx-project
uv init && uv add python-pptx Pillow
Write or adapt a script based on user requirements. Use scripts/create_presentation.py as reference.
cd /tmp/claude/pptx-project
uv run python create_presentation.py ~/Desktop/presentation.pptx
rm -rf /tmp/claude/pptx-project
DO NOT create "pastel and bubbly" designs. Common mistakes:
DO create bold, professional designs:
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
from pptx.enum.shapes import MSO_SHAPE # Required for rectangles/shapes
def add_background(slide, color: RGBColor):
"""Set slide background to solid color."""
fill = slide.background.fill
fill.solid()
fill.fore_color.rgb = color
# Vertical accent bar (title slides)
bar = slide.shapes.add_shape(
MSO_SHAPE.RECTANGLE,
left=Inches(0), top=Inches(0),
width=Inches(0.35), height=Style.SLIDE_HEIGHT
)
bar.fill.solid()
bar.fill.fore_color.rgb = Style.PRIMARY
bar.line.fill.background() # Remove border
# Horizontal accent line
line = slide.shapes.add_shape(
MSO_SHAPE.RECTANGLE,
left=Inches(1), top=Inches(4.5),
width=Inches(2), height=Inches(0.04)
)
line.fill.solid()
line.fill.fore_color.rgb = Style.ACCENT
line.line.fill.background()
# Instead of text bullets, use colored squares
for i, bullet in enumerate(bullets):
y_pos = 1.8 + (i * 1.0)
# Square marker
marker = slide.shapes.add_shape(
MSO_SHAPE.RECTANGLE,
left=Inches(0.8), top=Inches(y_pos + 0.12),
width=Inches(0.12), height=Inches(0.12)
)
marker.fill.solid()
marker.fill.fore_color.rgb = Style.PRIMARY
marker.line.fill.background()
# Text to the right of marker
text_box = slide.shapes.add_textbox(
Inches(1.15), Inches(y_pos), Inches(11), Inches(0.8)
)
# ... style text
The template script supports these slide types:
| Type | Use Case | Visual Style |
|------|----------|--------------|
| title | Opening slide | White bg, vertical accent bar, horizontal line |
| section | Section dividers | Solid primary bg, white text, accent line |
| content | Bullet point slides | White bg, top border line, square bullets |
| closing | Thank you / contact | Dark bg, centered text, accent line |
| blank | Custom layouts | White bg, optional title |
class Style:
# Use bold, saturated colors
PRIMARY = RGBColor(0, 82, 147) # Strong blue
SECONDARY = RGBColor(214, 102, 75) # Coral accent
ACCENT = RGBColor(218, 175, 65) # Gold highlight
# Clean backgrounds
BG_WHITE = RGBColor(255, 255, 255)
BG_DARK = RGBColor(33, 37, 41)
# Text colors
TEXT_PRIMARY = RGBColor(33, 37, 41)
TEXT_ON_DARK = RGBColor(255, 255, 255)
# Safe fonts
TITLE_FONT = "Arial"
BODY_FONT = "Arial"
When user asks: "Create a presentation about Q4 results"
.pptxcd /tmp/claude/pptx-project && uv init && uv add python-pptxscripts/create_presentation.py - Complete template with all slide typesreferences/layouts.md - Layout indices and placeholder detailsreferences/styling.md - Extended color schemes and styling patterns.pptx templateInches() and Pt() for consistent sizingMSO_SHAPE.RECTANGLE) over text characters for bulletsGoogle Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Trello boards, lists, and cards via the Trello REST API.
Category:productivity