Skip to main content
skill CX Codex

ai-slides — Claude Code skill: build decks from a topic or outline

Turns a topic, outline or rough notes into a full presentation with structure, slide content and visual suggestions. Handy when the deck is due tomorrow.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add claude-office-skills/skills --skill ai-slides -a claude-code
Open on GitHub

What ai-slides does

The skill runs in stages: it drafts an outline for the slide count you ask for, expands each section for a given audience, suggests visuals, then formats everything as Marp markdown. The built-in structure covers a title slide, agenda, an opening hook, three to five content sections, a summary with a call to action, and a closing slide with contact details and a Q&A prompt.

You need the office-mcp MCP server with the create_pptx and add_slide tools. Without it you get markdown only, no generated file. Recommended models are claude-sonnet-4 and claude-opus-4; claude-3-5-sonnet, gpt-4 and gpt-4o are listed as compatible. The skill itself supports English and Chinese, so check any deck you write in another language.

One thing to know before you start: the skill advises a maximum of six bullets per slide, six words each. That means it will trim long paragraphs on its own. If a slide needs exact wording, write that text separately and paste it in.

What it helps with

  • turn a single topic into a 10-slide deck
  • expand rough notes into finished slides with content
  • pick visuals for each content section
  • draft a pitch deck for a SaaS startup from a short brief
  • convert a quarterly review into slides for the team

Example prompts for the agent

  • Create a 10-slide presentation about machine learning
  • Generate a pitch deck for a SaaS startup, audience is investors
  • Build training slides on cybersecurity basics from these notes

How to install ai-slides

1Skills CLI (Vercel)

npx skills add claude-office-skills/skills --skill ai-slides -a claude-code

2Manually: put the files in place

~/.claude/skills/ai-slides/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/ai-slides/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about ai-slides

How do I install ai-slides in Claude?

Run npx skills add claude-office-skills/skills --skill ai-slides -a claude-code. The skill file then sits at ~/.claude/skills/ai-slides/SKILL.md.

What does ai-slides do?

It generates a presentation end to end: outline, slide content, visual suggestions and Marp markdown output. You give it a topic, outline or rough notes plus the audience and length.

What does the skill need to run?

The office-mcp MCP server with the create_pptx and add_slide tools. Recommended models are claude-sonnet-4 and claude-opus-4, with claude-3-5-sonnet, gpt-4 and gpt-4o listed as compatible.

Source text

SKILL.md · MIT
---
# ═══════════════════════════════════════════════════════════════════════════════
# CLAUDE OFFICE SKILL - Enhanced Metadata v2.0
# ═══════════════════════════════════════════════════════════════════════════════

# Basic Information
name: ai-slides
description: "Generate complete presentations with AI - from outline to polished slides"
version: "1.0"
author: claude-office-skills
license: MIT

# Categorization
category: presentation
tags:
  - ai
  - slides
  - generation
  - automatic
department: All

# AI Model Compatibility
models:
  recommended:
    - claude-sonnet-4
    - claude-opus-4
  compatible:
    - claude-3-5-sonnet
    - gpt-4
    - gpt-4o

# MCP Tools Integration
mcp:
  server: office-mcp
  tools:
    - create_pptx
    - add_slide

# Skill Capabilities
capabilities:
  - ai_generation
  - automatic_slides

# Language Support
languages:
  - en
  - zh
---

# AI Slides Skill

## Overview

This skill enables AI-powered presentation generation. Provide a topic or outline, and get a complete, polished presentation with proper structure, content, and formatting.

## How to Use

1. Provide a topic, outline, or rough notes
2. Specify audience and presentation length
3. I'll generate a complete presentation

**Example prompts:**
- "Create a 10-slide presentation about machine learning"
- "Generate a pitch deck for a SaaS startup"
- "Build training slides on cybersecurity basics"
- "Make a quarterly review presentation from this data"

## Domain Knowledge

### Presentation Structure

```yaml
# Effective presentation structure
structure:
  - title_slide:
      title: "Clear, compelling title"
      subtitle: "Context or tagline"
      author: "Presenter name"
  
  - agenda:
      items: 3-5 main topics
  
  - introduction:
      hook: "Attention-grabbing opening"
      context: "Why this matters"
  
  - main_content:
      sections: 3-5 key points
      each_section:
        - heading
        - 3-5 bullets or visual
        - supporting data
  
  - conclusion:
      summary: "Key takeaways"
      call_to_action: "What to do next"
  
  - closing:
      thank_you: true
      contact_info: true
      qa_prompt: true
```

### Content Generation Pattern

```python
def generate_presentation(topic, audience, slide_count=10):
    """AI-powered presentation generation."""
    
    # 1. Generate outline
    outline = generate_outline(topic, slide_count)
    
    # 2. Expand each section
    slides = []
    for section in outline:
        slide_content = expand_section(section, audience)
        slides.append(slide_content)
    
    # 3. Add visuals suggestions
    for slide in slides:
        slide['visuals'] = suggest_visuals(slide['content'])
    
    # 4. Format as Marp markdown
    presentation = format_as_marp(slides)
    
    return presentation

def generate_outline(topic, count):
    """Generate presentation outline."""
    # Typical structure
    outline = [
        {'type': 'title', 'title': topic},
        {'type': 'agenda'},
        # Main content (60% of slides)
        # ... content slides
        {'type': 'summary'},
        {'type': 'closing'}
    ]
    return outline
```

### Marp Output

```python
def format_as_marp(slides):
    """Convert slides to Marp markdown."""
    
    marp = """---
marp: true
theme: gaia
paginate: true
---

"""
    
    for slide in slides:
        if slide['type'] == 'title':
            marp += f"""<!-- _class: lead -->

# {slide['title']}

{slide.get('subtitle', '')}

---

"""
        elif slide['type'] == 'content':
            marp += f"""# {slide['heading']}

"""
            for point in slide['points']:
                marp += f"- {point}\n"
            marp += "\n---\n\n"
    
    return marp
```

## Example: Generate Tech Talk

```python
topic = "Introduction to Docker"
audience = "Developers new to containers"
slides = 10

# Generated presentation
presentation = """---
marp: true
theme: gaia
paginate: true
---

<!-- _class: lead -->

# Introduction to Docker

Containerization Made Simple

---

# Agenda

1. What is Docker?
2. Core Concepts
3. Getting Started
4. Best Practices
5. Demo

---

# What is Docker?

- Container platform for packaging applications
- Lightweight alternative to VMs
- "Build once, run anywhere"
- 15M+ developers, 7M+ applications

---

# Why Containers?

| VMs | Containers |
|-----|------------|
| GB size | MB size |
| Minutes to start | Seconds to start |
| Full OS | Shared kernel |

---

# Core Concepts

- **Image**: Blueprint/template
- **Container**: Running instance
- **Dockerfile**: Build instructions
- **Registry**: Image storage (Docker Hub)

---

# Getting Started

```bash
# Pull an image
docker pull nginx

# Run a container
docker run -p 8080:80 nginx

# List containers
docker ps
```

---

# Your First Dockerfile

```dockerfile
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
```

---

# Best Practices

- Use official base images
- Minimize layers
- Don't run as root
- Use .dockerignore
- Multi-stage builds

---

# Summary

✅ Docker simplifies deployment
✅ Containers are lightweight & fast
✅ Easy to get started
✅ Industry standard

---

<!-- _class: lead -->

# Questions?

Resources: docs.docker.com
"""
```

## Best Practices

1. **Know Your Audience**: Tailor complexity and examples
2. **One Idea Per Slide**: Keep focused
3. **6x6 Rule**: Max 6 bullets, 6 words each
4. **Visual First**: Suggest images/diagrams
5. **Strong Opening/Closing**: Hook and call-to-action

## Resources

- [Marp](https://marp.app/) - Markdown presentations
- [Slidev](https://sli.dev/) - Vue-powered slides
- [reveal.js](https://revealjs.com/) - HTML presentations

© claude-office-skills · MIT · claude-office-skills/skills

Similar skills

Everything for Office documents →

From the same set111

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor