| name | 2slides-ppt-generator |
| description | AI-powered presentation generation via the 2slides API — create slides from text, match a reference image style, summarize documents into decks, add AI voice narration, and export pages/audio. Use for any "make slides", "create a deck", or "slides from this document" request. |
| category | api-integration |
| risk | safe |
| source | community |
| source_repo | 2slides/slides-generation-2slides-skills |
| source_type | community |
| date_added | 2026-06-05 |
| author | 2slides |
| tags | ["presentations","slides","powerpoint","ai","api-integration","pdf","narration","document-summarization"] |
| tools | ["claude","cursor","gemini","codex","antigravity"] |
| plugin | {"setup":{"type":"manual","summary":"Install Python requirements and configure a 2slides API key before running generation scripts.","docs":"SKILL.md"}} |
2slides Presentation Generation
Overview
Generate professional presentations using the 2slides AI API. The skill supports content-based generation (theme-driven Fast PPT), style matching from a reference image, custom PDF design, document summarization, AI voice narration, and exporting pages/audio. It returns both an interactive slide URL and a downloadable PDF.
This skill is adapted from the official 2slides skill repository (2slides/slides-generation-2slides-skills). It calls the hosted 2slides API and requires the user's own API key and credits.
When to Use This Skill
- Use when the user asks to "create a presentation", "make slides", or "generate a deck" from text or an outline.
- Use when the user wants slides that match the style of a reference image ("create slides like this image").
- Use when the user wants custom-designed PDF slides without a reference image.
- Use when the user uploads a document and asks to "create slides from this document".
- Use when the user wants to add AI voice narration to generated slides, or export slides as PNG images and narration as WAV audio.
- Use when the user asks "what themes are available?" or wants to browse/select a theme.
Setup Requirements
Users must have a 2slides API key and credits:
- Get API Key: Visit https://2slides.com/api to create an account and API key
- New users receive 500 free credits (~50 Fast PPT pages)
- Purchase Credits (Optional): Visit https://2slides.com/pricing to buy additional credits
- Pay-as-you-go, no subscriptions
- Credits never expire
- Up to 20% off on larger packages
- Set API Key: Store the key in environment variable:
SLIDES_2SLIDES_API_KEY
export SLIDES_2SLIDES_API_KEY="your_api_key_here"
Credit Costs:
- Fast PPT: 10 credits/page
- Nano Banana 1K/2K: 100 credits/page
- Nano Banana 4K: 200 credits/page
- Voice Narration: 210 credits/page
- Download Export: FREE
See references/pricing.md for detailed pricing information.
Workflow Decision Tree
Choose the appropriate approach based on the user's request:
User Request
│
├─ "Create slides from this content/text"
│ └─> Use Content-Based Generation (Section 1)
│
├─ "Create slides like this image"
│ └─> Use Reference Image Generation (Section 2)
│
├─ "Create custom designed slides" or "Create PDF slides"
│ └─> Use Custom PDF Generation (Section 3)
│
├─ "Create slides from this document"
│ └─> Use Document Summarization (Section 4)
│
├─ "Add voice narration" or "Generate audio for slides"
│ └─> Use Voice Narration (Section 5)
│
├─ "Download slides as images" or "Export slides and voices"
│ └─> Use Download Export (Section 6)
│
└─ "Search for themes" or "What themes are available?"
└─> Use Theme Search (Section 7)
1. Content-Based Generation
Generate slides from user-provided text content.
When to Use
- User provides content directly in their message
- User says "create a presentation about X"
- User provides structured outline or bullet points
Workflow
Step 1: Prepare Content
Structure the content clearly for best results:
Title: [Main Topic]
Section 1: [Subtopic]
- Key point 1
- Key point 2
- Key point 3
Section 2: [Subtopic]
- Key point 1
- Key point 2
Step 2: Choose Theme (Required)
Search for an appropriate theme (themeId is required):
python scripts/search_themes.py --query "business"
python scripts/search_themes.py --query "professional"
python scripts/search_themes.py --query "creative"
Pick a theme ID from the results.
Step 3: Generate Slides
Use the generate_slides.py script with the theme ID:
python scripts/generate_slides.py --content "Your content here" --theme-id "theme123"
python scripts/generate_slides.py --content "Your content" --theme-id "theme123" --language "Spanish"
python scripts/generate_slides.py --content "Your content" --theme-id "theme123" --mode async
Step 4: Handle Results
Sync mode response:
{
"slideUrl": "https://2slides.com/slides/abc123",
"pdfUrl": "https://2slides.com/slides/abc123/download",
"status": "completed"
}
Provide both URLs to the user:
slideUrl: Interactive online slides
pdfUrl: Downloadable PDF version
Async mode response:
{
"jobId": "job123",
"status": "pending"
}
Poll for results:
python scripts/get_job_status.py --job-id "job123"
2. Reference Image Generation
Generate slides that match the style of a reference image.
When to Use
- User provides an image URL and says "create slides like this"
- User wants to match existing brand/design style
- User has a template image they want to emulate
Workflow
Step 1: Verify Image URL
Ensure the reference image is:
- Publicly accessible URL
- Valid image format (PNG, JPG, etc.)
- Represents the desired slide style
Step 2: Generate Slides
Use the generate_slides.py script with --reference-image:
python scripts/generate_slides.py \
--content "Your presentation content" \
--reference-image "https://example.com/template.jpg" \
--language "Auto"
Optional parameters (all values from 2slides API):
--language LANG
--mode sync|async
--aspect-ratio RATIO
--resolution 1K|2K|4K
--page N
--content-detail concise|standard
Note: This uses Nano Banana Pro mode with credit costs:
- 1K/2K: 100 credits per page
- 4K: 200 credits per page
Step 3: Handle Results
This mode always runs synchronously and returns:
{
"slideUrl": "https://2slides.com/workspace?jobId=...",
"pdfUrl": "https://...pdf...",
"status": "completed",
"message": "Successfully generated N slides",
"slidePageCount": N
}
Provide both URLs to the user:
slideUrl: View slides in 2slides workspace
pdfUrl: Direct PDF download (expires in 1 hour)
Processing time: ~30 seconds per page (30-60 seconds typical for 1-2 pages)
3. Custom PDF Generation
Generate custom-designed slides from text without needing a reference image.
When to Use
- User wants custom design without providing a reference image
- User requests "create PDF slides"
- User wants to specify design characteristics
- Alternative to theme-based generation with more design flexibility
Workflow
Step 1: Prepare Content
Structure the content clearly:
Title: [Main Topic]
Section 1: [Subtopic]
- Key point 1
- Key point 2
Section 2: [Subtopic]
- Key point 1
- Key point 2
Step 2: Generate Slides
Use the create_pdf_slides.py script:
Install the Python dependency first if it is not already available:
python -m pip install -r requirements.txt
python scripts/create_pdf_slides.py --content "Your content here"
python scripts/create_pdf_slides.py \
--content "Sales Report Q4 2025" \
--design-style "modern minimalist, blue color scheme"
python scripts/create_pdf_slides.py \
--content "Marketing Plan" \
--resolution 4K \
--page 0 \
--content-detail standard
Optional parameters:
--design-style "text"
--language LANG
--aspect-ratio RATIO
--resolution 1K|2K|4K
--page N
--content-detail concise|standard
Step 3: Handle Results
Returns same structure as create-like-this:
{
"slideUrl": "https://2slides.com/workspace?jobId=...",
"pdfUrl": "https://...pdf...",
"status": "completed",
"message": "Successfully generated N slides",
"slidePageCount": N
}
Notes:
- Same credit costs as create-like-this (100 credits/page for 1K/2K, 200 for 4K)
- Processing time: ~30 seconds per page
- Automatically generates PDF
- Uses AI to create custom design based on content and specs
4. Document Summarization
Generate slides from document content.
When to Use
- User uploads a document (PDF, DOCX, TXT, etc.)
- User says "create slides from this document"
- User wants to summarize long content into presentation format
Workflow
Step 1: Read Document
Use appropriate tool to read the document content:
- PDF: Use PDF reading tools
- DOCX: Use DOCX reading tools
- TXT/MD: Use Read tool
Step 2: Extract Key Points
Analyze the document and extract:
- Main topics and themes
- Key points for each section
- Important data, quotes, or examples
- Logical flow and structure
Step 3: Structure Content
Format extracted information into presentation structure:
Title: [Document Main Topic]
Introduction
- Context
- Purpose
- Overview
[Section 1 from document]
- Key point 1
- Key point 2
- Supporting detail
[Section 2 from document]
- Key point 1
- Key point 2
- Supporting detail
Conclusion
- Summary
- Key takeaways
- Next steps
Step 4: Generate Slides
Use content-based generation workflow (Section 1). First search for a theme, then generate:
python scripts/search_themes.py --query "business"
python scripts/generate_slides.py --content "[Structured content from step 3]" --theme-id "theme123"
Tips:
- Keep slides concise (3-5 points per slide)
- Focus on key insights, not full text
- Use document headings as slide titles
- Include important statistics or quotes
- Ask user if they want specific sections highlighted
5. Voice Narration
Add AI-generated voice narration to slides.
When to Use
- User wants to add audio to slides
- User requests "add voice narration" or "generate audio"
- User wants presentations with spoken content
- User needs multi-speaker narration
Prerequisites
IMPORTANT: The slide generation job must be completed before adding narration.
- Generate slides first using any method (Section 1, 2, 3, or 4)
- Get the job ID from the generation result
- Ensure job status is "completed" before requesting narration
Workflow
Step 1: Choose Voice
30 voices available including:
- Puck (default)
- Aoede
- Charon
- Kore
- Fenrir
- Phoebe
- And 24 more...
List all voices:
python scripts/generate_narration.py --list-voices
Step 2: Generate Narration
Use the generate_narration.py script with the job ID:
python scripts/generate_narration.py --job-id "abc-123-def-456"
python scripts/generate_narration.py --job-id "abc-123-def-456" --voice Aoede
python scripts/generate_narration.py --job-id "abc-123-def-456" --no-intro
python scripts/generate_narration.py --job-id "abc-123-def-456" --multi-speaker \
--speaker1-name "Alice" --speaker2-name "Bob" \
--speaker1-voice Aoede --speaker2-voice Puck
Parameters (aligned with 2slides API):
--job-id: Job ID (required, UUID for Nano Banana)
--mode: single or multi (default: single)
--speaker-name: Speaker name (single mode)
--voice: Voice name (default: Puck); use --list-voices for all 30
--content-mode: concise or standard (default: standard)
--no-intro: Omit speaker introduction (single mode)
--speaker1-name, --speaker2-name: Required for multi mode
--speaker1-voice, --speaker2-voice: Optional for multi mode
--multi-speaker: Shortcut for --mode multi
Step 3: Check Status
Narration generation runs asynchronously:
python scripts/get_job_status.py --job-id "abc-123-def-456"
Step 4: Handle Results
Once completed, the job will include narration files. Use download endpoint (Section 6) to get audio files.
Notes:
- Cost: 210 credits per page (10 for text, 200 for audio)
- Processing time varies by slide count
- 30 voice options available
- Supports 19 languages plus auto-detection
- Multi-speaker mode uses different voices for variety
6. Download Export
Download slides as PNG images and voice narrations as WAV files.
When to Use
- User wants to download slides as images
- User needs voice files separately
- User wants transcripts
- User needs slides in image format for other tools
Workflow
Step 1: Verify Job Complete
Ensure slides (and optionally narration) are generated and job is completed.
Step 2: Download Archive
Use the download_slides_pages_voices.py script:
python scripts/download_slides_pages_voices.py --job-id "abc-123-def-456"
python scripts/download_slides_pages_voices.py \
--job-id "abc-123-def-456" \
--output "my-presentation.zip"
Step 3: Extract Contents
The ZIP archive contains:
- Pages: PNG files for each slide
- Voices: WAV audio files (if narration was generated)
- Transcripts: Text transcripts of narration
Notes:
- Cost: Completely FREE (no credits used)
- Download URLs valid for 1 hour only
- Includes all pages and voice files
- High quality PNG export
- WAV format for audio
7. Theme Search
Find appropriate themes for presentations.
When to Use
- Before generating slides with specific styling
- User asks "what themes are available?"
- User wants professional or branded appearance
Workflow
Search themes:
python scripts/search_themes.py --query "business"
python scripts/search_themes.py --query "creative"
python scripts/search_themes.py --query "education"
python scripts/search_themes.py --query "professional"
python scripts/search_themes.py --query "modern" --limit 50
Theme selection:
- Show user available themes with names and descriptions
- Ask user to choose or let them use default
- Use the theme ID in generation request
Using the MCP Server
If the 2slides MCP server is configured in Claude Desktop, use the integrated tools instead of scripts.
Two Configuration Modes:
-
Streamable HTTP Protocol (Recommended)
- Simplest setup, no local installation
- Configure:
"url": "https://2slides.com/api/mcp?apikey=YOUR_API_KEY"
-
NPM Package (stdio)
- Uses local npm package
- Configure:
"command": "npx", "args": ["2slides-mcp"]
Available MCP tools:
slides_generate - Generate slides from content
slides_create_like_this - Generate from reference image
themes_search - Search themes
jobs_get - Check job status
See mcp-integration.md for complete setup instructions and detailed tool documentation.
When to use MCP vs scripts:
- Use MCP in Claude Desktop when configured
- Use scripts in Claude Code CLI or when MCP not available
Advanced Features
Sync vs Async Mode
Sync Mode (default):
- Waits for generation to complete (30-60 seconds)
- Returns results immediately
- Best for quick presentations
Async Mode:
- Returns job ID immediately
- Poll for results with
get_job_status.py
- Best for large presentations or batch processing
- Recommended polling: Check every 20-30 seconds to avoid server strain
Rate Limits
Different endpoints have different rate limits:
- Fast PPT (generate): 10 requests per minute
- Nano Banana (create-like-this, create-pdf-slides): 6 requests per minute
If rate limited, wait before retrying or check plan limits.
Credit Costs
- Fast PPT (generate endpoint): 10 credits per page
- Nano Banana 1K/2K (create-like-this, create-pdf-slides): 100 credits per page
- Nano Banana 4K: 200 credits per page
- Voice Narration: 210 credits per page (10 for text, 200 for audio)
- Download Export: FREE (no credits)
Purchasing Credits
2slides uses a pay-as-you-go credit system with no subscriptions required.
Credit Packages: (Current promotion: up to 20% off)
- 2,000 credits: $5.00
- 4,000 credits: $9.50 (5% off)
- 10,000 credits: $22.50 (10% off)
- 20,000 credits: $42.50 (15% off)
- 40,000 credits: $80.00 (20% off)
New users receive 500 free credits for onboarding (~50 Fast PPT pages).
Credits never expire - use them at your own pace.
Purchase credits at: https://2slides.com/pricing
Download URL Expiration
All download URLs (PDF, ZIP archives) are valid for 1 hour only. Download files promptly after generation.
Language Support
Generate slides in multiple languages (use full language name):
--language "Auto"
--language "English"
--language "Simplified Chinese"
--language "Traditional Chinese"
--language "Spanish"
--language "French"
--language "German"
--language "Japanese"
--language "Korean"
And more: Arabic, Portuguese, Indonesian, Russian, Hindi, Vietnamese, Turkish, Polish, Italian
Error Handling
Common error codes:
-
Missing API key
Error: API key not found
Solution: Set SLIDES_2SLIDES_API_KEY environment variable
-
RATE_LIMIT_EXCEEDED
Error: 429 Too Many Requests
Solution: Wait 20-30 seconds before retrying
Rate limits: Fast PPT (10/min), Nano Banana (6/min)
-
INSUFFICIENT_CREDITS
Error: Not enough credits
Solution: Add credits at https://2slides.com/api
-
INVALID_JOB_ID
Error: Job ID not found or invalid
Solution: Verify job ID format (must be UUID for Nano Banana)
-
Invalid content
Error: 400 Bad Request
Solution: Verify content format and parameters
Script Parameter Reference (2slides API)
All scripts accept parameters that match 2slides API. Allowed values are defined in scripts/api_constants.py and enforced where applicable.
| Script | Key parameters | Allowed values (see script --help or api_constants.py) |
|---|
generate_slides.py | --language | Auto, English, Spanish, Arabic, Portuguese, Indonesian, Japanese, Russian, Hindi, French, German, Greek, Vietnamese, Turkish, Polish, Italian, Korean, Simplified Chinese, Traditional Chinese, Thai |
| --mode | sync, async |
| --aspect-ratio | 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 |
| --resolution | 1K, 2K, 4K |
| --content-detail | concise, standard |
create_pdf_slides.py | Same as above + --design-style / --design-spec (free text) | |
generate_narration.py | --mode | single, multi |
| --voice | 30 voices (Puck, Aoede, Charon, …); use --list-voices |
| --content-mode | concise, standard |
| Multi: --speaker1-name, --speaker2-name, --speaker1-voice, --speaker2-voice | |
search_themes.py | --query (required), --limit (1–100) | |
get_job_status.py | --job-id (required) | |
download_slides_pages_voices.py | --job-id (required), --output (path) | |
Additional Documentation
API Reference
See api-reference.md for:
- All endpoints and parameters
- Request/response formats
- Authentication details
- Rate limits and best practices
- Error codes and handling
Pricing Information
See pricing.md for:
- Credit packages and pricing
- Cost examples and calculations
- Free trial details
- Refund policy
- Enterprise options
Tips for Best Results
Content Structure:
- Use clear headings and subheadings
- Keep bullet points concise
- Limit to 3-5 points per section
- Include relevant examples or data
Theme Selection:
- Theme ID is required for standard generation
- Search with keywords matching presentation purpose
- Common searches: "business", "professional", "creative", "education", "modern"
- Each theme has unique styling and layout
Reference Images:
- Use high-quality images for best results
- Can use URL or base64 encoded image
- Public URL must be accessible
- Consider resolution setting (1K/2K/4K) based on quality needs
- Use page=0 for automatic slide count detection
Document Processing:
- Extract only key information
- Don't try to fit entire document in slides
- Focus on main insights and takeaways
- Ask user which sections to emphasize
Security & Safety Notes
- Credentials: This skill reads the API key from the
SLIDES_2SLIDES_API_KEY environment variable. Never hard-code the key in commands, commit it, or echo it back to the user. The scripts send it as a bearer/apikey value to https://2slides.com over HTTPS only.
- Network + paid mutations: Every generation call makes an outbound network request to the 2slides API and spends the user's credits (10–210 credits/page depending on mode). Treat generation, reference-image, custom-PDF, and narration calls as billable actions — confirm intent before generating large or high-resolution (4K) decks, and surface the expected page count/cost when it is non-trivial.
- No destructive local actions: The scripts only read content/files the user points to and write generated output (e.g. a downloaded ZIP) to the path the user specifies. They do not modify or delete unrelated files.
- Input handling: Reference-image and document inputs are sent to the 2slides service for processing. Do not submit confidential material the user has not authorized for third-party processing.
- Download URLs expire in 1 hour — fetch artifacts promptly and do not treat the URLs as durable storage.
Limitations
- Requires a valid 2slides account, API key, and sufficient credits; this skill does not provision or pay for credits.
- Results are AI-generated drafts intended as a starting point, not a final, fact-checked deliverable — review content before use.
- This skill does not replace environment-specific validation or expert review. Stop and ask for clarification if the API key, required inputs, or intended cost/scope are missing.
- Rate limits apply (Fast PPT 10/min, Nano Banana 6/min); poll async jobs every 20–30s rather than tight-looping.
Related Skills
@youtube-full — fetch source material (transcripts) that can be summarized into a deck with this skill.