Back to Skills
    🦞

    slides-generation-skills

    AI-powered presentation generation

    By @javainthinking
    View on GitHub
    SKILL.md
    ---
    name: 2slides
    description: AI-powered presentation generation using 2slides API. Create slides from text content, match reference image styles, or summarize documents into presentations. Use when users request to "create a presentation", "make slides", "generate a deck", "create slides from this content/document/image", or any presentation creation task. Supports theme selection, multiple languages, and both synchronous and asynchronous generation modes.
    ---
    
    # 2slides Presentation Generation
    
    Generate professional presentations using the 2slides AI API. Supports content-based generation, style matching from reference images, and document summarization.
    
    ## Setup Requirements
    
    Users must have a 2slides API key:
    
    1. Visit https://2slides.com/api to create an API key
    2. Store the key in environment variable: `SLIDES_2SLIDES_API_KEY`
    
    ```bash
    export SLIDES_2SLIDES_API_KEY="your_api_key_here"
    ```
    
    ## 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 slides from this document"
    │  └─> Use Document Summarization (Section 3)
    │
    └─ "Search for themes" or "What themes are available?"
       └─> Use Theme Search (Section 4)
    ```
    
    ---
    
    ## 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):
    
    ```bash
    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:
    
    ```bash
    # Basic generation (theme ID required)
    python scripts/generate_slides.py --content "Your content here" --theme-id "theme123"
    
    # In different language
    python scripts/generate_slides.py --content "Your content" --theme-id "theme123" --language "Spanish"
    
    # Async mode for longer presentations
    python scripts/generate_slides.py --content "Your content" --theme-id "theme123" --mode async
    ```
    
    **Step 4: Handle Results**
    
    **Sync mode response:**
    ```json
    {
      "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:**
    ```json
    {
      "jobId": "job123",
      "status": "pending"
    }
    ```
    
    Poll for results:
    ```bash
    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`:
    
    ```bash
    python scripts/generate_slides.py \
      --content "Your presentation content" \
      --reference-image "https://example.com/template.jpg" \
      --language "Auto"
    ```
    
    **Optional parameters:**
    ```bash
    --aspect-ratio "16:9"           # width:height format (e.g., "16:9", "4:3")
    --resolution "2K"               # "1K", "2K" (default), or "4K"
    --page 5                        # Number of slides (0 for auto-detection, max 100)
    --content-detail "concise"      # "concise" (brief) or "standard" (detailed)
    ```
    
    **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:
    ```json
    {
      "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. 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:
    
    ```bash
    # Search for appropriate theme
    python scripts/search_themes.py --query "business"
    
    # Generate with theme ID
    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
    
    ---
    
    ## 4. 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:**
    
    ```bash
    # Search for specific style (query is required)
    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"
    
    # Get more results
    python scripts/search_themes.py --query "modern" --limit 50
    ```
    
    **Theme selection:**
    
    1. Show user available themes with names and descriptions
    2. Ask user to choose or let them use default
    3. 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:**
    
    1. **Streamable HTTP Protocol (Recommended)**
       - Simplest setup, no local installation
       - Configure: `"url": "https://2slides.com/api/mcp?apikey=YOUR_API_KEY"`
    
    2. **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](references/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
    
    ### Language Support
    
    Generate slides in multiple languages (use full language name):
    
    ```bash
    --language "Auto"                # Automatic detection (default)
    --language "English"             # English
    --language "Simplified Chinese"  # 简体中文
    --language "Traditional Chinese" # 繁體中文
    --language "Spanish"             # Español
    --language "French"              # Français
    --language "German"              # Deutsch
    --language "Japanese"            # 日本語
    --language "Korean"              # 한국어
    ```
    
    And more: Arabic, Portuguese, Indonesian, Russian, Hindi, Vietnamese, Turkish, Polish, Italian
    
    ### Error Handling
    
    **Common issues:**
    
    1. **Missing API key**
       ```
       Error: API key not found
       Solution: Set SLIDES_2SLIDES_API_KEY environment variable
       ```
    
    2. **Rate limiting**
       ```
       Error: 429 Too Many Requests
       Solution: Wait before retrying or check plan limits
       ```
    
    3. **Invalid content**
       ```
       Error: 400 Bad Request
       Solution: Verify content format and parameters
       ```
    
    ---
    
    ## Complete API Reference
    
    For detailed API documentation, see [api-reference.md](references/api-reference.md)
    
    Includes:
    - All endpoints and parameters
    - Request/response formats
    - Authentication details
    - Rate limits and best practices
    - Error codes and handling
    
    ---
    
    ## 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
    
    ... (truncated)