powerpoint
Create professional PowerPoint presentations. Use when asked to "create a PowerPoint", "make a presentation", "build slides", or generate pptx files.
Best use case
powerpoint is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Create professional PowerPoint presentations. Use when asked to "create a PowerPoint", "make a presentation", "build slides", or generate pptx files.
Teams using powerpoint should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/powerpoint/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How powerpoint Compares
| Feature / Agent | powerpoint | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Create professional PowerPoint presentations. Use when asked to "create a PowerPoint", "make a presentation", "build slides", or generate pptx files.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# PowerPoint Creator Skill
Create professional PowerPoint presentations programmatically using python-pptx.
## Overview
This skill enables creation of `.pptx` files with:
- Title, section, content, and closing slides
- Bullet points with custom markers
- Visual accents (bars, lines, backgrounds)
- Images, tables, and logos
- Custom color schemes and fonts
## File Management
**All temporary files go in `/tmp/claude/pptx-project/`** to avoid filesystem clutter.
Before starting, ask where to save the final `.pptx`:
- Desktop: `~/Desktop/presentation.pptx`
- Downloads: `~/Downloads/presentation.pptx`
- Current project directory
- A specific path they provide
## Quick Start Workflow
### 1. Set Up Environment
```bash
mkdir -p /tmp/claude/pptx-project && cd /tmp/claude/pptx-project
uv init && uv add python-pptx Pillow
```
### 2. Create Script
Write or adapt a script based on user requirements. Use `scripts/create_presentation.py` as reference.
### 3. Generate and Deliver
```bash
cd /tmp/claude/pptx-project
uv run python create_presentation.py ~/Desktop/presentation.pptx
```
### 4. Cleanup
```bash
rm -rf /tmp/claude/pptx-project
```
## Design Principles
### Avoid Common Pitfalls
**DO NOT create "pastel and bubbly" designs.** Common mistakes:
- Soft, desaturated colors (cream, light teal, soft pink)
- Decorative circles and rounded shapes
- Too much visual clutter
**DO create bold, professional designs:**
- Strong, saturated primary colors
- Sharp rectangles and clean lines
- High contrast between text and background
- Generous whitespace
### Recommended Design Elements
1. **Vertical accent bar** on title slides (left edge)
2. **Solid color backgrounds** for section dividers (use primary color)
3. **Top border line** on content slides
4. **Square bullet markers** instead of text bullets
5. **Dark background** for closing slides (contrast with content)
## Core Imports
```python
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
```
## Essential Patterns
### Setting Background Color
```python
def add_background(slide, color: RGBColor):
"""Set slide background to solid color."""
fill = slide.background.fill
fill.solid()
fill.fore_color.rgb = color
```
### Adding Accent Shapes
```python
# 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()
```
### Square Bullet Markers
```python
# 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
```
## Slide Types
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 |
## Style Configuration
```python
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"
```
## Workflow Example
When user asks: "Create a presentation about Q4 results"
1. **Ask** where to save final `.pptx`
2. **Gather** content (title, sections, bullets)
3. **Ask** about brand colors or use professional defaults
4. **Set up** in temp: `cd /tmp/claude/pptx-project && uv init && uv add python-pptx`
5. **Write** script adapting template patterns
6. **Generate** and save to user's location
7. **Cleanup** temp directory
## Bundled Resources
### Scripts
- **`scripts/create_presentation.py`** - Complete template with all slide types
### References
- **`references/layouts.md`** - Layout indices and placeholder details
- **`references/styling.md`** - Extended color schemes and styling patterns
## Limitations
- No animations or transitions (static slides only)
- Limited master slide customization
- Complex charts need additional work
- For heavy customization, start from a `.pptx` template
## Tips
- Always use layout index 6 (Blank) for full positioning control
- Use `Inches()` and `Pt()` for consistent sizing
- Test in PowerPoint, Google Slides, and Keynote for compatibility
- Keep slides simple: 3-5 bullets max, large readable fonts
- Prefer shapes (`MSO_SHAPE.RECTANGLE`) over text characters for bulletsRelated Skills
obsidian-cli
Use the Obsidian CLI to manage knowledge in an Obsidian vault — daily notes, search, tasks, tags, link graph analysis, properties, templates, and file operations. This skill should be used when the user asks to interact with their Obsidian vault, manage daily notes, search notes, manage tasks, explore tags or backlinks, set properties, use templates, or perform vault maintenance.
qr-code
Generate QR codes from URLs, text, or other data and save them as SVG, PNG, EPS, or PDF files. This skill should be used when the user asks to create, generate, or make a QR code for any content such as website URLs, text strings, WiFi credentials, contact info, or other data. Triggers include mentions of 'QR code', 'QR', 'barcode for a link', or requests to make a scannable code. Supports customization of colors, size, error correction level, and output format.
pdf-ocr
Parse PDF files to markdown using GLM-OCR via Ollama locally. Converts each page to an image, runs OCR, and outputs clean markdown. Use when the user wants to extract text from a PDF.
ralph-method
Set up a Ralph Wiggum task - runs Phase 1 (requirements interview) and Phase 2 (implementation planning), then stops with instructions to run the building loop. Creates namespaced specs in specs/[task-name]/.
journal
An agent to journal developer activity over a specified time period.
walkthrough-creator
Create and maintain the walkthrough artifact during implementation
task-list-creator
Create or update the task list artifact from gathered requirements
implementation-plan-creator
Create the implementation plan artifact from an approved task list
adr-manager
Add Architecture Decision Record (ADR) entries to an ADR file. This skill should be used when recording significant architectural decisions during development. It handles formatting and appending entries using Michael Nygard's ADR template.
essay-draft-from-research
Produces a long-form essay draft grounded in a user-supplied directory of research documents via an interview workflow. Use whenever the user wants to "draft an essay from my research", "write an essay from these notes", "turn this research directory into an essay", "I've been collecting notes on X, help me draft an essay", or "draft a long-form piece using these sources". Do NOT use for: one-shot summarization of a single document, short notes or tweets under ~600 words, pure research-findings synthesis with no drafting, or essay drafting when there is no research corpus to ground in.
feature-spec-creator
Generates a feature spec for an existing codebase via an interview workflow. Use when the user wants to write, draft, or scope a feature spec — phrases like "write a feature spec", "spec out this feature", "draft a spec for X", "I want to add X to this codebase", "let's plan a new feature", or "scope out this feature". Do NOT use for bug fixes, pure refactors with no behavior change, or greenfield projects with no existing code.
create-skill
Creates a new Claude Code skill that follows the Anchored Interview pattern — ground in a CORPUS, run an interview anchored by that grounding, then produce a single ARTIFACT. Use whenever the user wants to scaffold, generate, or design an interview-style skill — phrases like "make me an anchored interview skill", "create a skill that interviews me about X and produces Y", "scaffold a skill that reads my <corpus> and writes a <artifact>", "I want a skill for spec/draft/plan/findings creation via interview", or any request to build a skill that has the ground-then-ask-then-act shape. Do NOT use for: running an anchored interview on a specific task (this skill *creates* such skills, it doesn't perform them — for that, use or create the appropriate task-specific skill); editing an existing SKILL.md; one-shot transformations with no judgment calls; or skills where there is no corpus to ground in.