{"skill":{"slug":"2slides-skills","displayName":"Slides/PPT generation and voice narration","summary":"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.","description":"---\nname: 2slides\ndescription: 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.\n---\n\n# 2slides Presentation Generation\n\nGenerate professional presentations using the 2slides AI API. Supports content-based generation, style matching from reference images, and document summarization.\n\n## Setup Requirements\n\nUsers must have a 2slides API key and credits:\n\n1. **Get API Key:** Visit https://2slides.com/api to create an account and API key\n   - New users receive **500 free credits** (~50 Fast PPT pages)\n2. **Purchase Credits (Optional):** Visit https://2slides.com/pricing to buy additional credits\n   - Pay-as-you-go, no subscriptions\n   - Credits never expire\n   - Up to 20% off on larger packages\n3. **Set API Key:** Store the key in environment variable: `SLIDES_2SLIDES_API_KEY`\n\n```bash\nexport SLIDES_2SLIDES_API_KEY=\"your_api_key_here\"\n```\n\n**Credit Costs:**\n- Fast PPT: 10 credits/page\n- Nano Banana 1K/2K: 100 credits/page\n- Nano Banana 4K: 200 credits/page\n- Voice Narration: 210 credits/page\n- Download Export: FREE\n\nSee [references/pricing.md](references/pricing.md) for detailed pricing information.\n\n## Workflow Decision Tree\n\nChoose the appropriate approach based on the user's request:\n\n```\nUser Request\n│\n├─ \"Create slides from this content/text\"\n│  └─> Use Content-Based Generation (Section 1)\n│\n├─ \"Create slides like this image\"\n│  └─> Use Reference Image Generation (Section 2)\n│\n├─ \"Create custom designed slides\" or \"Create PDF slides\"\n│  └─> Use Custom PDF Generation (Section 3)\n│\n├─ \"Create slides from this document\"\n│  └─> Use Document Summarization (Section 4)\n│\n├─ \"Add voice narration\" or \"Generate audio for slides\"\n│  └─> Use Voice Narration (Section 5)\n│\n├─ \"Download slides as images\" or \"Export slides and voices\"\n│  └─> Use Download Export (Section 6)\n│\n└─ \"Search for themes\" or \"What themes are available?\"\n   └─> Use Theme Search (Section 7)\n```\n\n---\n\n## 1. Content-Based Generation\n\nGenerate slides from user-provided text content.\n\n### When to Use\n- User provides content directly in their message\n- User says \"create a presentation about X\"\n- User provides structured outline or bullet points\n\n### Workflow\n\n**Step 1: Prepare Content**\n\nStructure the content clearly for best results:\n\n```\nTitle: [Main Topic]\n\nSection 1: [Subtopic]\n- Key point 1\n- Key point 2\n- Key point 3\n\nSection 2: [Subtopic]\n- Key point 1\n- Key point 2\n```\n\n**Step 2: Choose Theme (Required)**\n\nSearch for an appropriate theme (themeId is required):\n\n```bash\npython scripts/search_themes.py --query \"business\"\npython scripts/search_themes.py --query \"professional\"\npython scripts/search_themes.py --query \"creative\"\n```\n\nPick a theme ID from the results.\n\n**Step 3: Generate Slides**\n\nUse the `generate_slides.py` script with the theme ID:\n\n```bash\n# Basic generation (theme ID required)\npython scripts/generate_slides.py --content \"Your content here\" --theme-id \"theme123\"\n\n# In different language\npython scripts/generate_slides.py --content \"Your content\" --theme-id \"theme123\" --language \"Spanish\"\n\n# Async mode for longer presentations\npython scripts/generate_slides.py --content \"Your content\" --theme-id \"theme123\" --mode async\n```\n\n**Step 4: Handle Results**\n\n**Sync mode response:**\n```json\n{\n  \"slideUrl\": \"https://2slides.com/slides/abc123\",\n  \"pdfUrl\": \"https://2slides.com/slides/abc123/download\",\n  \"status\": \"completed\"\n}\n```\n\nProvide both URLs to the user:\n- `slideUrl`: Interactive online slides\n- `pdfUrl`: Downloadable PDF version\n\n**Async mode response:**\n```json\n{\n  \"jobId\": \"job123\",\n  \"status\": \"pending\"\n}\n```\n\nPoll for results:\n```bash\npython scripts/get_job_status.py --job-id \"job123\"\n```\n\n---\n\n## 2. Reference Image Generation\n\nGenerate slides that match the style of a reference image.\n\n### When to Use\n- User provides an image URL and says \"create slides like this\"\n- User wants to match existing brand/design style\n- User has a template image they want to emulate\n\n### Workflow\n\n**Step 1: Verify Image URL**\n\nEnsure the reference image is:\n- Publicly accessible URL\n- Valid image format (PNG, JPG, etc.)\n- Represents the desired slide style\n\n**Step 2: Generate Slides**\n\nUse the `generate_slides.py` script with `--reference-image`:\n\n```bash\npython scripts/generate_slides.py \\\n  --content \"Your presentation content\" \\\n  --reference-image \"https://example.com/template.jpg\" \\\n  --language \"Auto\"\n```\n\n**Optional parameters:**\n```bash\n--aspect-ratio \"16:9\"           # width:height format (e.g., \"16:9\", \"4:3\")\n--resolution \"2K\"               # \"1K\", \"2K\" (default), or \"4K\"\n--page 5                        # Number of slides (0 for auto-detection, max 100)\n--content-detail \"concise\"      # \"concise\" (brief) or \"standard\" (detailed)\n```\n\n**Note:** This uses Nano Banana Pro mode with credit costs:\n- 1K/2K: 100 credits per page\n- 4K: 200 credits per page\n\n**Step 3: Handle Results**\n\nThis mode always runs synchronously and returns:\n```json\n{\n  \"slideUrl\": \"https://2slides.com/workspace?jobId=...\",\n  \"pdfUrl\": \"https://...pdf...\",\n  \"status\": \"completed\",\n  \"message\": \"Successfully generated N slides\",\n  \"slidePageCount\": N\n}\n```\n\nProvide both URLs to the user:\n- `slideUrl`: View slides in 2slides workspace\n- `pdfUrl`: Direct PDF download (expires in 1 hour)\n\n**Processing time:** ~30 seconds per page (30-60 seconds typical for 1-2 pages)\n\n---\n\n## 3. Custom PDF Generation\n\nGenerate custom-designed slides from text without needing a reference image.\n\n### When to Use\n- User wants custom design without providing a reference image\n- User requests \"create PDF slides\"\n- User wants to specify design characteristics\n- Alternative to theme-based generation with more design flexibility\n\n### Workflow\n\n**Step 1: Prepare Content**\n\nStructure the content clearly:\n\n```\nTitle: [Main Topic]\n\nSection 1: [Subtopic]\n- Key point 1\n- Key point 2\n\nSection 2: [Subtopic]\n- Key point 1\n- Key point 2\n```\n\n**Step 2: Generate Slides**\n\nUse the `create_pdf_slides.py` script:\n\n```bash\n# Basic generation\npython scripts/create_pdf_slides.py --content \"Your content here\"\n\n# With design specifications\npython scripts/create_pdf_slides.py \\\n  --content \"Sales Report Q4 2025\" \\\n  --design-spec \"modern minimalist, blue color scheme\"\n\n# High resolution with auto page detection\npython scripts/create_pdf_slides.py \\\n  --content \"Marketing Plan\" \\\n  --resolution \"4K\" \\\n  --page 0 \\\n  --content-detail \"standard\"\n```\n\n**Optional parameters:**\n```bash\n--design-spec \"text\"            # Design specifications (e.g., \"corporate professional\")\n--aspect-ratio \"16:9\"           # width:height format\n--resolution \"2K\"               # \"1K\", \"2K\" (default), or \"4K\"\n--page 5                        # Number of slides (0 for auto-detection, max 100)\n--content-detail \"concise\"      # \"concise\" (brief) or \"standard\" (detailed)\n--language \"Auto\"               # Language for content\n```\n\n**Step 3: Handle Results**\n\nReturns same structure as create-like-this:\n```json\n{\n  \"slideUrl\": \"https://2slides.com/workspace?jobId=...\",\n  \"pdfUrl\": \"https://...pdf...\",\n  \"status\": \"completed\",\n  \"message\": \"Successfully generated N slides\",\n  \"slidePageCount\": N\n}\n```\n\n**Notes:**\n- Same credit costs as create-like-this (100 credits/page for 1K/2K, 200 for 4K)\n- Processing time: ~30 seconds per page\n- Automatically generates PDF\n- Uses AI to create custom design based on content and specs\n\n---\n\n## 4. Document Summarization\n\nGenerate slides from document content.\n\n### When to Use\n- User uploads a document (PDF, DOCX, TXT, etc.)\n- User says \"create slides from this document\"\n- User wants to summarize long content into presentation format\n\n### Workflow\n\n**Step 1: Read Document**\n\nUse appropriate tool to read the document content:\n- PDF: Use PDF reading tools\n- DOCX: Use DOCX reading tools\n- TXT/MD: Use Read tool\n\n**Step 2: Extract Key Points**\n\nAnalyze the document and extract:\n- Main topics and themes\n- Key points for each section\n- Important data, quotes, or examples\n- Logical flow and structure\n\n**Step 3: Structure Content**\n\nFormat extracted information into presentation structure:\n\n```\nTitle: [Document Main Topic]\n\nIntroduction\n- Context\n- Purpose\n- Overview\n\n[Section 1 from document]\n- Key point 1\n- Key point 2\n- Supporting detail\n\n[Section 2 from document]\n- Key point 1\n- Key point 2\n- Supporting detail\n\nConclusion\n- Summary\n- Key takeaways\n- Next steps\n```\n\n**Step 4: Generate Slides**\n\nUse content-based generation workflow (Section 1). First search for a theme, then generate:\n\n```bash\n# Search for appropriate theme\npython scripts/search_themes.py --query \"business\"\n\n# Generate with theme ID\npython scripts/generate_slides.py --content \"[Structured content from step 3]\" --theme-id \"theme123\"\n```\n\n**Tips:**\n- Keep slides concise (3-5 points per slide)\n- Focus on key insights, not full text\n- Use document headings as slide titles\n- Include important statistics or quotes\n- Ask user if they want specific sections highlighted\n\n---\n\n## 5. Voice Narration\n\nAdd AI-generated voice narration to slides.\n\n### When to Use\n- User wants to add audio to slides\n- User requests \"add voice narration\" or \"generate audio\"\n- User wants presentations with spoken content\n- User needs multi-speaker narration\n\n### Prerequisites\n\n**IMPORTANT:** The slide generation job must be completed before adding narration.\n\n1. Generate slides first using any method (Section 1, 2, 3, or 4)\n2. Get the job ID from the generation result\n3. Ensure job status is \"completed\" before requesting narration\n\n### Workflow\n\n**Step 1: Choose Voice**\n\n30 voices available including:\n- Puck (default)\n- Aoede\n- Charon\n- Kore\n- Fenrir\n- Phoebe\n- And 24 more...\n\nList all voices:\n```bash\npython scripts/generate_narration.py --list-voices\n```\n\n**Step 2: Generate Narration**\n\nUse the `generate_narration.py` script with the job ID:\n\n```bash\n# Basic narration with default voice\npython scripts/generate_narration.py --job-id \"abc-123-def-456\"\n\n# With specific voice\npython scripts/generate_narration.py --job-id \"abc-123-def-456\" --voice \"Aoede\"\n\n# Multi-speaker mode\npython scripts/generate_narration.py --job-id \"abc-123-def-456\" --multi-speaker\n\n# In specific language\npython scripts/generate_narration.py \\\n  --job-id \"abc-123-def-456\" \\\n  --language \"Spanish\" \\\n  --voice \"Charon\"\n```\n\n**Parameters:**\n- `--job-id`: Job ID from slide generation (required, must be UUID format for Nano Banana)\n- `--voice`: Voice name (default: \"Puck\")\n- `--multi-speaker`: Enable multi-speaker mode (default: off)\n- `--language`: Language for narration (default: \"Auto\")\n\n**Step 3: Check Status**\n\nNarration generation runs asynchronously:\n\n```bash\npython scripts/get_job_status.py --job-id \"abc-123-def-456\"\n```\n\n**Step 4: Handle Results**\n\nOnce completed, the job will include narration files. Use download endpoint (Section 6) to get audio files.\n\n**Notes:**\n- **Cost:** 210 credits per page (10 for text, 200 for audio)\n- Processing time varies by slide count\n- 30 voice options available\n- Supports 19 languages plus auto-detection\n- Multi-speaker mode uses different voices for variety\n\n---\n\n## 6. Download Export\n\nDownload slides as PNG images and voice narrations as WAV files.\n\n### When to Use\n- User wants to download slides as images\n- User needs voice files separately\n- User wants transcripts\n- User needs slides in image format for other tools\n\n### Workflow\n\n**Step 1: Verify Job Complete**\n\nEnsure slides (and optionally narration) are generated and job is completed.\n\n**Step 2: Download Archive**\n\nUse the `download_slides_pages_voices.py` script:\n\n```bash\n# Download with default filename (<job_id>.zip)\npython scripts/download_slides_pages_voices.py --job-id \"abc-123-def-456\"\n\n# Download to specific path\npython scripts/download_slides_pages_voices.py \\\n  --job-id \"abc-123-def-456\" \\\n  --output \"my-presentation.zip\"\n```\n\n**Step 3: Extract Contents**\n\nThe ZIP archive contains:\n- **Pages:** PNG files for each slide\n- **Voices:** WAV audio files (if narration was generated)\n- **Transcripts:** Text transcripts of narration\n\n**Notes:**\n- **Cost:** Completely FREE (no credits used)\n- Download URLs valid for **1 hour only**\n- Includes all pages and voice files\n- High quality PNG export\n- WAV format for audio\n\n---\n\n## 7. Theme Search\n\nFind appropriate themes for presentations.\n\n### When to Use\n- Before generating slides with specific styling\n- User asks \"what themes are available?\"\n- User wants professional or branded appearance\n\n### Workflow\n\n**Search themes:**\n\n```bash\n# Search for specific style (query is required)\npython scripts/search_themes.py --query \"business\"\npython scripts/search_themes.py --query \"creative\"\npython scripts/search_themes.py --query \"education\"\npython scripts/search_themes.py --query \"professional\"\n\n# Get more results\npython scripts/search_themes.py --query \"modern\" --limit 50\n```\n\n**Theme selection:**\n\n1. Show user available themes with names and descriptions\n2. Ask user to choose or let them use default\n3. Use the theme ID in generation request\n\n---\n\n## Using the MCP Server\n\nIf the 2slides MCP server is configured in Claude Desktop, use the integrated tools instead of scripts.\n\n**Two Configuration Modes:**\n\n1. **Streamable HTTP Protocol (Recommended)**\n   - Simplest setup, no local installation\n   - Configure: `\"url\": \"https://2slides.com/api/mcp?apikey=YOUR_API_KEY\"`\n\n2. **NPM Package (stdio)**\n   - Uses local npm package\n   - Configure: `\"command\": \"npx\", \"args\": [\"2slides-mcp\"]`\n\n**Available MCP tools:**\n- `slides_generate` - Generate slides from content\n- `slides_create_like_this` - Generate from reference image\n- `themes_search` - Search themes\n- `jobs_get` - Check job status\n\nSee [mcp-integration.md](references/mcp-integration.md) for complete setup instructions and detailed tool documentation.\n\n**When to use MCP vs scripts:**\n- **Use MCP** in Claude Desktop when configured\n- **Use scripts** in Claude Code CLI or when MCP not available\n\n---\n\n## Advanced Features\n\n### Sync vs Async Mode\n\n**Sync Mode (default):**\n- Waits for generation to complete (30-60 seconds)\n- Returns results immediately\n- Best for quick presentations\n\n**Async Mode:**\n- Returns job ID immediately\n- Poll for results with `get_job_status.py`\n- Best for large presentations or batch processing\n- **Recommended polling:** Check every 20-30 seconds to avoid server strain\n\n### Rate Limits\n\nDifferent endpoints have different rate limits:\n\n- **Fast PPT (generate):** 10 requests per minute\n- **Nano Banana (create-like-this, create-pdf-slides):** 6 requests per minute\n\nIf rate limited, wait before retrying or check plan limits.\n\n### Credit Costs\n\n- **Fast PPT (generate endpoint):** 10 credits per page\n- **Nano Banana 1K/2K (create-like-this, create-pdf-slides):** 100 credits per page\n- **Nano Banana 4K:** 200 credits per page\n- **Voice Narration:** 210 credits per page (10 for text, 200 for audio)\n- **Download Export:** FREE (no credits)\n\n### Purchasing Credits\n\n2slides uses a pay-as-you-go credit system with no subscriptions required.\n\n**Credit Packages:** (Current promotion: up to 20% off)\n- 2,000 credits: $5.00\n- 4,000 credits: $9.50 (5% off)\n- 10,000 credits: $22.50 (10% off)\n- 20,000 credits: $42.50 (15% off)\n- 40,000 credits: $80.00 (20% off)\n\n**New users receive 500 free credits** for onboarding (~50 Fast PPT pages).\n\n**Credits never expire** - use them at your own pace.\n\n**Purchase credits at:** https://2slides.com/pricing\n\n### Download URL Expiration\n\nAll download URLs (PDF, ZIP archives) are valid for **1 hour only**. Download files promptly after generation.\n\n### Language Support\n\nGenerate slides in multiple languages (use full language name):\n\n```bash\n--language \"Auto\"                # Automatic detection (default)\n--language \"English\"             # English\n--language \"Simplified Chinese\"  # 简体中文\n--language \"Traditional Chinese\" # 繁體中文\n--language \"Spanish\"             # Español\n--language \"French\"              # Français\n--language \"German\"              # Deutsch\n--language \"Japanese\"            # 日本語\n--language \"Korean\"              # 한국어\n```\n\nAnd more: Arabic, Portuguese, Indonesian, Russian, Hindi, Vietnamese, Turkish, Polish, Italian\n\n### Error Handling\n\n**Common error codes:**\n\n1. **Missing API key**\n   ```\n   Error: API key not found\n   Solution: Set SLIDES_2SLIDES_API_KEY environment variable\n   ```\n\n2. **RATE_LIMIT_EXCEEDED**\n   ```\n   Error: 429 Too Many Requests\n   Solution: Wait 20-30 seconds before retrying\n   Rate limits: Fast PPT (10/min), Nano Banana (6/min)\n   ```\n\n3. **INSUFFICIENT_CREDITS**\n   ```\n   Error: Not enough credits\n   Solution: Add credits at https://2slides.com/api\n   ```\n\n4. **INVALID_JOB_ID**\n   ```\n   Error: Job ID not found or invalid\n   Solution: Verify job ID format (must be UUID for Nano Banana)\n   ```\n\n5. **Invalid content**\n   ```\n   Error: 400 Bad Request\n   Solution: Verify content format and parameters\n   ```\n\n---\n\n## Additional Documentation\n\n### API Reference\nSee [api-reference.md](references/api-reference.md) for:\n- All endpoints and parameters\n- Request/response formats\n- Authentication details\n- Rate limits and best practices\n- Error codes and handling\n\n### Pricing Information\nSee [pricing.md](references/pricing.md) for:\n- Credit packages and pricing\n- Cost examples and calculations\n- Free trial details\n- Refund policy\n- Enterprise options\n\n---\n\n## Tips for Best Results\n\n**Content Structure:**\n- Use clear headings and subheadings\n- Keep bullet points concise\n- Limit to 3-5 points per section\n- Include relevant examples or data\n\n**Theme Selection:**\n- Theme ID is required for standard generation\n- Search with keywords matching presentation purpose\n- Common searches: \"business\", \"professional\", \"creative\", \"education\", \"modern\"\n- Each theme has unique styling and layout\n\n**Reference Images:**\n- Use high-quality images for best results\n- Can use URL or base64 encoded image\n- Public URL must be accessible\n- Consider resolution setting (1K/2K/4K) based on quality needs\n- Use page=0 for automatic slide count detection\n\n**Document Processing:**\n- Extract only key information\n- Don't try to fit entire document in slides\n- Focus on main insights and takeaways\n- Ask user which sections to emphasize\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":2338,"installsAllTime":6,"installsCurrent":6,"stars":0,"versions":1},"createdAt":1770795050958,"updatedAt":1778989793762},"latestVersion":{"version":"1.0.0","createdAt":1770795050958,"changelog":"Initial release of 2slides: AI-powered presentation generation.\n\n- Generate professional slides from text, images, or entire documents using the 2slides API.\n- Supports content-based slide creation, style matching from reference images, custom PDF slide generation, and document summarization.\n- Includes theme selection, multiple languages, and both synchronous and asynchronous (long-running) modes.\n- Detailed workflow steps, setup instructions, and credit/pricing breakdown provided.\n- Additional features: slide export, voice narration, and theme search.","license":null},"metadata":null,"owner":{"handle":"javainthinking","userId":"s179pwr839zxxcs8hgrqv73jv583ma9f","displayName":"javainthinking","image":"https://avatars.githubusercontent.com/u/2844583?v=4"},"moderation":null}