powerpoint

Create professional PowerPoint presentations. Use when asked to "create a PowerPoint", "make a presentation", "build slides", or generate pptx files.

12 stars

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

$curl -o ~/.claude/skills/powerpoint/SKILL.md --create-dirs "https://raw.githubusercontent.com/AlteredCraft/claude-code-plugins/main/plugins/document-gen/skills/powerpoint/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/powerpoint/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How powerpoint Compares

Feature / AgentpowerpointStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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 bullets

Related Skills

obsidian-cli

12
from AlteredCraft/claude-code-plugins

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

12
from AlteredCraft/claude-code-plugins

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

12
from AlteredCraft/claude-code-plugins

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

12
from AlteredCraft/claude-code-plugins

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

12
from AlteredCraft/claude-code-plugins

An agent to journal developer activity over a specified time period.

walkthrough-creator

12
from AlteredCraft/claude-code-plugins

Create and maintain the walkthrough artifact during implementation

task-list-creator

12
from AlteredCraft/claude-code-plugins

Create or update the task list artifact from gathered requirements

implementation-plan-creator

12
from AlteredCraft/claude-code-plugins

Create the implementation plan artifact from an approved task list

adr-manager

12
from AlteredCraft/claude-code-plugins

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

12
from AlteredCraft/claude-code-plugins

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

12
from AlteredCraft/claude-code-plugins

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

12
from AlteredCraft/claude-code-plugins

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.