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.
npx skills add claude-office-skills/skills --skill ai-slides -a claude-codeWhat 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-code2Manually: put the files in place
~/.claude/skills/ai-slides/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ai-slides/
1Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill ai-slides -a codex2Manually: put the files in place
.agents/skills/ai-slides/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill ai-slides -a cursor2Manually: put the files in place
.cursor/skills/ai-slides/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install claude-office-skills/skills ai-slides2Manually: put the files in place
.github/skills/ai-slides/SKILL.md1Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill ai-slides -a gemini-cli2Platform CLI
gemini skills install https://github.com/claude-office-skills/skills --path ai-slidesManually: put the files in place
.devin/skills/ai-slides/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill ai-slides -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
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