{
  "schemaVersion": "1.0",
  "item": {
    "slug": "2slides-skills",
    "name": "Slides/PPT generation and voice narration",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/javainthinking/2slides-skills",
    "canonicalUrl": "https://clawhub.ai/javainthinking/2slides-skills",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/2slides-skills",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=2slides-skills",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "UPDATE_SUMMARY.md",
      "CHANGELOG.md",
      "README.md",
      "SKILL.md",
      "scripts/generate_narration.py",
      "scripts/get_job_status.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/2slides-skills"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/2slides-skills",
    "agentPageUrl": "https://openagent3.xyz/skills/2slides-skills/agent",
    "manifestUrl": "https://openagent3.xyz/skills/2slides-skills/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/2slides-skills/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "2slides Presentation Generation",
        "body": "Generate professional presentations using the 2slides AI API. Supports content-based generation, style matching from reference images, and document summarization."
      },
      {
        "title": "Setup Requirements",
        "body": "Users must have a 2slides API key and credits:\n\nGet API Key: Visit https://2slides.com/api to create an account and API key\n\nNew users receive 500 free credits (~50 Fast PPT pages)\n\n\nPurchase Credits (Optional): Visit https://2slides.com/pricing to buy additional credits\n\nPay-as-you-go, no subscriptions\nCredits never expire\nUp to 20% off on larger packages\n\n\nSet API Key: Store the key in environment variable: SLIDES_2SLIDES_API_KEY\n\nexport SLIDES_2SLIDES_API_KEY=\"your_api_key_here\"\n\nCredit Costs:\n\nFast PPT: 10 credits/page\nNano Banana 1K/2K: 100 credits/page\nNano Banana 4K: 200 credits/page\nVoice Narration: 210 credits/page\nDownload Export: FREE\n\nSee references/pricing.md for detailed pricing information."
      },
      {
        "title": "Workflow Decision Tree",
        "body": "Choose the appropriate approach based on the user's request:\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)"
      },
      {
        "title": "1. Content-Based Generation",
        "body": "Generate slides from user-provided text content."
      },
      {
        "title": "When to Use",
        "body": "User provides content directly in their message\nUser says \"create a presentation about X\"\nUser provides structured outline or bullet points"
      },
      {
        "title": "Workflow",
        "body": "Step 1: Prepare Content\n\nStructure the content clearly for best results:\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\nStep 2: Choose Theme (Required)\n\nSearch for an appropriate theme (themeId is required):\n\npython scripts/search_themes.py --query \"business\"\npython scripts/search_themes.py --query \"professional\"\npython scripts/search_themes.py --query \"creative\"\n\nPick a theme ID from the results.\n\nStep 3: Generate Slides\n\nUse the generate_slides.py script with the theme ID:\n\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\nStep 4: Handle Results\n\nSync mode response:\n\n{\n  \"slideUrl\": \"https://2slides.com/slides/abc123\",\n  \"pdfUrl\": \"https://2slides.com/slides/abc123/download\",\n  \"status\": \"completed\"\n}\n\nProvide both URLs to the user:\n\nslideUrl: Interactive online slides\npdfUrl: Downloadable PDF version\n\nAsync mode response:\n\n{\n  \"jobId\": \"job123\",\n  \"status\": \"pending\"\n}\n\nPoll for results:\n\npython scripts/get_job_status.py --job-id \"job123\""
      },
      {
        "title": "2. Reference Image Generation",
        "body": "Generate slides that match the style of a reference image."
      },
      {
        "title": "When to Use",
        "body": "User provides an image URL and says \"create slides like this\"\nUser wants to match existing brand/design style\nUser has a template image they want to emulate"
      },
      {
        "title": "Workflow",
        "body": "Step 1: Verify Image URL\n\nEnsure the reference image is:\n\nPublicly accessible URL\nValid image format (PNG, JPG, etc.)\nRepresents the desired slide style\n\nStep 2: Generate Slides\n\nUse the generate_slides.py script with --reference-image:\n\npython scripts/generate_slides.py \\\n  --content \"Your presentation content\" \\\n  --reference-image \"https://example.com/template.jpg\" \\\n  --language \"Auto\"\n\nOptional parameters:\n\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\nNote: This uses Nano Banana Pro mode with credit costs:\n\n1K/2K: 100 credits per page\n4K: 200 credits per page\n\nStep 3: Handle Results\n\nThis mode always runs synchronously and returns:\n\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\nProvide both URLs to the user:\n\nslideUrl: View slides in 2slides workspace\npdfUrl: Direct PDF download (expires in 1 hour)\n\nProcessing time: ~30 seconds per page (30-60 seconds typical for 1-2 pages)"
      },
      {
        "title": "3. Custom PDF Generation",
        "body": "Generate custom-designed slides from text without needing a reference image."
      },
      {
        "title": "When to Use",
        "body": "User wants custom design without providing a reference image\nUser requests \"create PDF slides\"\nUser wants to specify design characteristics\nAlternative to theme-based generation with more design flexibility"
      },
      {
        "title": "Workflow",
        "body": "Step 1: Prepare Content\n\nStructure the content clearly:\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\nStep 2: Generate Slides\n\nUse the create_pdf_slides.py script:\n\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\nOptional parameters:\n\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\nStep 3: Handle Results\n\nReturns same structure as create-like-this:\n\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\nNotes:\n\nSame credit costs as create-like-this (100 credits/page for 1K/2K, 200 for 4K)\nProcessing time: ~30 seconds per page\nAutomatically generates PDF\nUses AI to create custom design based on content and specs"
      },
      {
        "title": "4. Document Summarization",
        "body": "Generate slides from document content."
      },
      {
        "title": "When to Use",
        "body": "User uploads a document (PDF, DOCX, TXT, etc.)\nUser says \"create slides from this document\"\nUser wants to summarize long content into presentation format"
      },
      {
        "title": "Workflow",
        "body": "Step 1: Read Document\n\nUse appropriate tool to read the document content:\n\nPDF: Use PDF reading tools\nDOCX: Use DOCX reading tools\nTXT/MD: Use Read tool\n\nStep 2: Extract Key Points\n\nAnalyze the document and extract:\n\nMain topics and themes\nKey points for each section\nImportant data, quotes, or examples\nLogical flow and structure\n\nStep 3: Structure Content\n\nFormat extracted information into presentation structure:\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\nStep 4: Generate Slides\n\nUse content-based generation workflow (Section 1). First search for a theme, then generate:\n\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\nTips:\n\nKeep slides concise (3-5 points per slide)\nFocus on key insights, not full text\nUse document headings as slide titles\nInclude important statistics or quotes\nAsk user if they want specific sections highlighted"
      },
      {
        "title": "5. Voice Narration",
        "body": "Add AI-generated voice narration to slides."
      },
      {
        "title": "When to Use",
        "body": "User wants to add audio to slides\nUser requests \"add voice narration\" or \"generate audio\"\nUser wants presentations with spoken content\nUser needs multi-speaker narration"
      },
      {
        "title": "Prerequisites",
        "body": "IMPORTANT: The slide generation job must be completed before adding narration.\n\nGenerate slides first using any method (Section 1, 2, 3, or 4)\nGet the job ID from the generation result\nEnsure job status is \"completed\" before requesting narration"
      },
      {
        "title": "Workflow",
        "body": "Step 1: Choose Voice\n\n30 voices available including:\n\nPuck (default)\nAoede\nCharon\nKore\nFenrir\nPhoebe\nAnd 24 more...\n\nList all voices:\n\npython scripts/generate_narration.py --list-voices\n\nStep 2: Generate Narration\n\nUse the generate_narration.py script with the job ID:\n\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\nParameters:\n\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\nStep 3: Check Status\n\nNarration generation runs asynchronously:\n\npython scripts/get_job_status.py --job-id \"abc-123-def-456\"\n\nStep 4: Handle Results\n\nOnce completed, the job will include narration files. Use download endpoint (Section 6) to get audio files.\n\nNotes:\n\nCost: 210 credits per page (10 for text, 200 for audio)\nProcessing time varies by slide count\n30 voice options available\nSupports 19 languages plus auto-detection\nMulti-speaker mode uses different voices for variety"
      },
      {
        "title": "6. Download Export",
        "body": "Download slides as PNG images and voice narrations as WAV files."
      },
      {
        "title": "When to Use",
        "body": "User wants to download slides as images\nUser needs voice files separately\nUser wants transcripts\nUser needs slides in image format for other tools"
      },
      {
        "title": "Workflow",
        "body": "Step 1: Verify Job Complete\n\nEnsure slides (and optionally narration) are generated and job is completed.\n\nStep 2: Download Archive\n\nUse the download_slides_pages_voices.py script:\n\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\nStep 3: Extract Contents\n\nThe ZIP archive contains:\n\nPages: PNG files for each slide\nVoices: WAV audio files (if narration was generated)\nTranscripts: Text transcripts of narration\n\nNotes:\n\nCost: Completely FREE (no credits used)\nDownload URLs valid for 1 hour only\nIncludes all pages and voice files\nHigh quality PNG export\nWAV format for audio"
      },
      {
        "title": "7. Theme Search",
        "body": "Find appropriate themes for presentations."
      },
      {
        "title": "When to Use",
        "body": "Before generating slides with specific styling\nUser asks \"what themes are available?\"\nUser wants professional or branded appearance"
      },
      {
        "title": "Workflow",
        "body": "Search themes:\n\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\nTheme selection:\n\nShow user available themes with names and descriptions\nAsk user to choose or let them use default\nUse the theme ID in generation request"
      },
      {
        "title": "Using the MCP Server",
        "body": "If the 2slides MCP server is configured in Claude Desktop, use the integrated tools instead of scripts.\n\nTwo Configuration Modes:\n\nStreamable HTTP Protocol (Recommended)\n\nSimplest setup, no local installation\nConfigure: \"url\": \"https://2slides.com/api/mcp?apikey=YOUR_API_KEY\"\n\n\n\nNPM Package (stdio)\n\nUses local npm package\nConfigure: \"command\": \"npx\", \"args\": [\"2slides-mcp\"]\n\nAvailable MCP tools:\n\nslides_generate - Generate slides from content\nslides_create_like_this - Generate from reference image\nthemes_search - Search themes\njobs_get - Check job status\n\nSee mcp-integration.md for complete setup instructions and detailed tool documentation.\n\nWhen to use MCP vs scripts:\n\nUse MCP in Claude Desktop when configured\nUse scripts in Claude Code CLI or when MCP not available"
      },
      {
        "title": "Sync vs Async Mode",
        "body": "Sync Mode (default):\n\nWaits for generation to complete (30-60 seconds)\nReturns results immediately\nBest for quick presentations\n\nAsync Mode:\n\nReturns job ID immediately\nPoll for results with get_job_status.py\nBest for large presentations or batch processing\nRecommended polling: Check every 20-30 seconds to avoid server strain"
      },
      {
        "title": "Rate Limits",
        "body": "Different endpoints have different rate limits:\n\nFast PPT (generate): 10 requests per minute\nNano Banana (create-like-this, create-pdf-slides): 6 requests per minute\n\nIf rate limited, wait before retrying or check plan limits."
      },
      {
        "title": "Credit Costs",
        "body": "Fast PPT (generate endpoint): 10 credits per page\nNano Banana 1K/2K (create-like-this, create-pdf-slides): 100 credits per page\nNano Banana 4K: 200 credits per page\nVoice Narration: 210 credits per page (10 for text, 200 for audio)\nDownload Export: FREE (no credits)"
      },
      {
        "title": "Purchasing Credits",
        "body": "2slides uses a pay-as-you-go credit system with no subscriptions required.\n\nCredit Packages: (Current promotion: up to 20% off)\n\n2,000 credits: $5.00\n4,000 credits: $9.50 (5% off)\n10,000 credits: $22.50 (10% off)\n20,000 credits: $42.50 (15% off)\n40,000 credits: $80.00 (20% off)\n\nNew users receive 500 free credits for onboarding (~50 Fast PPT pages).\n\nCredits never expire - use them at your own pace.\n\nPurchase credits at: https://2slides.com/pricing"
      },
      {
        "title": "Download URL Expiration",
        "body": "All download URLs (PDF, ZIP archives) are valid for 1 hour only. Download files promptly after generation."
      },
      {
        "title": "Language Support",
        "body": "Generate slides in multiple languages (use full language name):\n\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\nAnd more: Arabic, Portuguese, Indonesian, Russian, Hindi, Vietnamese, Turkish, Polish, Italian"
      },
      {
        "title": "Error Handling",
        "body": "Common error codes:\n\nMissing API key\nError: API key not found\nSolution: Set SLIDES_2SLIDES_API_KEY environment variable\n\n\n\nRATE_LIMIT_EXCEEDED\nError: 429 Too Many Requests\nSolution: Wait 20-30 seconds before retrying\nRate limits: Fast PPT (10/min), Nano Banana (6/min)\n\n\n\nINSUFFICIENT_CREDITS\nError: Not enough credits\nSolution: Add credits at https://2slides.com/api\n\n\n\nINVALID_JOB_ID\nError: Job ID not found or invalid\nSolution: Verify job ID format (must be UUID for Nano Banana)\n\n\n\nInvalid content\nError: 400 Bad Request\nSolution: Verify content format and parameters"
      },
      {
        "title": "API Reference",
        "body": "See api-reference.md for:\n\nAll endpoints and parameters\nRequest/response formats\nAuthentication details\nRate limits and best practices\nError codes and handling"
      },
      {
        "title": "Pricing Information",
        "body": "See pricing.md for:\n\nCredit packages and pricing\nCost examples and calculations\nFree trial details\nRefund policy\nEnterprise options"
      },
      {
        "title": "Tips for Best Results",
        "body": "Content Structure:\n\nUse clear headings and subheadings\nKeep bullet points concise\nLimit to 3-5 points per section\nInclude relevant examples or data\n\nTheme Selection:\n\nTheme ID is required for standard generation\nSearch with keywords matching presentation purpose\nCommon searches: \"business\", \"professional\", \"creative\", \"education\", \"modern\"\nEach theme has unique styling and layout\n\nReference Images:\n\nUse high-quality images for best results\nCan use URL or base64 encoded image\nPublic URL must be accessible\nConsider resolution setting (1K/2K/4K) based on quality needs\nUse page=0 for automatic slide count detection\n\nDocument Processing:\n\nExtract only key information\nDon't try to fit entire document in slides\nFocus on main insights and takeaways\nAsk user which sections to emphasize"
      }
    ],
    "body": "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\nSetup Requirements\n\nUsers must have a 2slides API key and credits:\n\nGet API Key: Visit https://2slides.com/api to create an account and API key\nNew users receive 500 free credits (~50 Fast PPT pages)\nPurchase Credits (Optional): Visit https://2slides.com/pricing to buy additional credits\nPay-as-you-go, no subscriptions\nCredits never expire\nUp to 20% off on larger packages\nSet API Key: Store the key in environment variable: SLIDES_2SLIDES_API_KEY\nexport SLIDES_2SLIDES_API_KEY=\"your_api_key_here\"\n\n\nCredit Costs:\n\nFast PPT: 10 credits/page\nNano Banana 1K/2K: 100 credits/page\nNano Banana 4K: 200 credits/page\nVoice Narration: 210 credits/page\nDownload Export: FREE\n\nSee references/pricing.md for detailed pricing information.\n\nWorkflow Decision Tree\n\nChoose the appropriate approach based on the user's request:\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\n1. Content-Based Generation\n\nGenerate slides from user-provided text content.\n\nWhen to Use\nUser provides content directly in their message\nUser says \"create a presentation about X\"\nUser provides structured outline or bullet points\nWorkflow\n\nStep 1: Prepare Content\n\nStructure the content clearly for best results:\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\nStep 2: Choose Theme (Required)\n\nSearch for an appropriate theme (themeId is required):\n\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\nStep 3: Generate Slides\n\nUse the generate_slides.py script with the theme ID:\n\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\nStep 4: Handle Results\n\nSync mode response:\n\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\nslideUrl: Interactive online slides\npdfUrl: Downloadable PDF version\n\nAsync mode response:\n\n{\n  \"jobId\": \"job123\",\n  \"status\": \"pending\"\n}\n\n\nPoll for results:\n\npython scripts/get_job_status.py --job-id \"job123\"\n\n2. Reference Image Generation\n\nGenerate slides that match the style of a reference image.\n\nWhen to Use\nUser provides an image URL and says \"create slides like this\"\nUser wants to match existing brand/design style\nUser has a template image they want to emulate\nWorkflow\n\nStep 1: Verify Image URL\n\nEnsure the reference image is:\n\nPublicly accessible URL\nValid image format (PNG, JPG, etc.)\nRepresents the desired slide style\n\nStep 2: Generate Slides\n\nUse the generate_slides.py script with --reference-image:\n\npython scripts/generate_slides.py \\\n  --content \"Your presentation content\" \\\n  --reference-image \"https://example.com/template.jpg\" \\\n  --language \"Auto\"\n\n\nOptional parameters:\n\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\nNote: This uses Nano Banana Pro mode with credit costs:\n\n1K/2K: 100 credits per page\n4K: 200 credits per page\n\nStep 3: Handle Results\n\nThis mode always runs synchronously and returns:\n\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\nslideUrl: View slides in 2slides workspace\npdfUrl: Direct PDF download (expires in 1 hour)\n\nProcessing time: ~30 seconds per page (30-60 seconds typical for 1-2 pages)\n\n3. Custom PDF Generation\n\nGenerate custom-designed slides from text without needing a reference image.\n\nWhen to Use\nUser wants custom design without providing a reference image\nUser requests \"create PDF slides\"\nUser wants to specify design characteristics\nAlternative to theme-based generation with more design flexibility\nWorkflow\n\nStep 1: Prepare Content\n\nStructure the content clearly:\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\nStep 2: Generate Slides\n\nUse the create_pdf_slides.py script:\n\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\nOptional parameters:\n\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\nStep 3: Handle Results\n\nReturns same structure as create-like-this:\n\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\nNotes:\n\nSame credit costs as create-like-this (100 credits/page for 1K/2K, 200 for 4K)\nProcessing time: ~30 seconds per page\nAutomatically generates PDF\nUses AI to create custom design based on content and specs\n4. Document Summarization\n\nGenerate slides from document content.\n\nWhen to Use\nUser uploads a document (PDF, DOCX, TXT, etc.)\nUser says \"create slides from this document\"\nUser wants to summarize long content into presentation format\nWorkflow\n\nStep 1: Read Document\n\nUse appropriate tool to read the document content:\n\nPDF: Use PDF reading tools\nDOCX: Use DOCX reading tools\nTXT/MD: Use Read tool\n\nStep 2: Extract Key Points\n\nAnalyze the document and extract:\n\nMain topics and themes\nKey points for each section\nImportant data, quotes, or examples\nLogical flow and structure\n\nStep 3: Structure Content\n\nFormat extracted information into presentation structure:\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\nStep 4: Generate Slides\n\nUse content-based generation workflow (Section 1). First search for a theme, then generate:\n\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\nTips:\n\nKeep slides concise (3-5 points per slide)\nFocus on key insights, not full text\nUse document headings as slide titles\nInclude important statistics or quotes\nAsk user if they want specific sections highlighted\n5. Voice Narration\n\nAdd AI-generated voice narration to slides.\n\nWhen to Use\nUser wants to add audio to slides\nUser requests \"add voice narration\" or \"generate audio\"\nUser wants presentations with spoken content\nUser needs multi-speaker narration\nPrerequisites\n\nIMPORTANT: The slide generation job must be completed before adding narration.\n\nGenerate slides first using any method (Section 1, 2, 3, or 4)\nGet the job ID from the generation result\nEnsure job status is \"completed\" before requesting narration\nWorkflow\n\nStep 1: Choose Voice\n\n30 voices available including:\n\nPuck (default)\nAoede\nCharon\nKore\nFenrir\nPhoebe\nAnd 24 more...\n\nList all voices:\n\npython scripts/generate_narration.py --list-voices\n\n\nStep 2: Generate Narration\n\nUse the generate_narration.py script with the job ID:\n\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\nParameters:\n\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\nStep 3: Check Status\n\nNarration generation runs asynchronously:\n\npython scripts/get_job_status.py --job-id \"abc-123-def-456\"\n\n\nStep 4: Handle Results\n\nOnce completed, the job will include narration files. Use download endpoint (Section 6) to get audio files.\n\nNotes:\n\nCost: 210 credits per page (10 for text, 200 for audio)\nProcessing time varies by slide count\n30 voice options available\nSupports 19 languages plus auto-detection\nMulti-speaker mode uses different voices for variety\n6. Download Export\n\nDownload slides as PNG images and voice narrations as WAV files.\n\nWhen to Use\nUser wants to download slides as images\nUser needs voice files separately\nUser wants transcripts\nUser needs slides in image format for other tools\nWorkflow\n\nStep 1: Verify Job Complete\n\nEnsure slides (and optionally narration) are generated and job is completed.\n\nStep 2: Download Archive\n\nUse the download_slides_pages_voices.py script:\n\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\nStep 3: Extract Contents\n\nThe ZIP archive contains:\n\nPages: PNG files for each slide\nVoices: WAV audio files (if narration was generated)\nTranscripts: Text transcripts of narration\n\nNotes:\n\nCost: Completely FREE (no credits used)\nDownload URLs valid for 1 hour only\nIncludes all pages and voice files\nHigh quality PNG export\nWAV format for audio\n7. Theme Search\n\nFind appropriate themes for presentations.\n\nWhen to Use\nBefore generating slides with specific styling\nUser asks \"what themes are available?\"\nUser wants professional or branded appearance\nWorkflow\n\nSearch themes:\n\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\nTheme selection:\n\nShow user available themes with names and descriptions\nAsk user to choose or let them use default\nUse the theme ID in generation request\nUsing the MCP Server\n\nIf the 2slides MCP server is configured in Claude Desktop, use the integrated tools instead of scripts.\n\nTwo Configuration Modes:\n\nStreamable HTTP Protocol (Recommended)\n\nSimplest setup, no local installation\nConfigure: \"url\": \"https://2slides.com/api/mcp?apikey=YOUR_API_KEY\"\n\nNPM Package (stdio)\n\nUses local npm package\nConfigure: \"command\": \"npx\", \"args\": [\"2slides-mcp\"]\n\nAvailable MCP tools:\n\nslides_generate - Generate slides from content\nslides_create_like_this - Generate from reference image\nthemes_search - Search themes\njobs_get - Check job status\n\nSee mcp-integration.md for complete setup instructions and detailed tool documentation.\n\nWhen to use MCP vs scripts:\n\nUse MCP in Claude Desktop when configured\nUse scripts in Claude Code CLI or when MCP not available\nAdvanced Features\nSync vs Async Mode\n\nSync Mode (default):\n\nWaits for generation to complete (30-60 seconds)\nReturns results immediately\nBest for quick presentations\n\nAsync Mode:\n\nReturns job ID immediately\nPoll for results with get_job_status.py\nBest for large presentations or batch processing\nRecommended polling: Check every 20-30 seconds to avoid server strain\nRate Limits\n\nDifferent endpoints have different rate limits:\n\nFast PPT (generate): 10 requests per minute\nNano Banana (create-like-this, create-pdf-slides): 6 requests per minute\n\nIf rate limited, wait before retrying or check plan limits.\n\nCredit Costs\nFast PPT (generate endpoint): 10 credits per page\nNano Banana 1K/2K (create-like-this, create-pdf-slides): 100 credits per page\nNano Banana 4K: 200 credits per page\nVoice Narration: 210 credits per page (10 for text, 200 for audio)\nDownload Export: FREE (no credits)\nPurchasing Credits\n\n2slides uses a pay-as-you-go credit system with no subscriptions required.\n\nCredit Packages: (Current promotion: up to 20% off)\n\n2,000 credits: $5.00\n4,000 credits: $9.50 (5% off)\n10,000 credits: $22.50 (10% off)\n20,000 credits: $42.50 (15% off)\n40,000 credits: $80.00 (20% off)\n\nNew users receive 500 free credits for onboarding (~50 Fast PPT pages).\n\nCredits never expire - use them at your own pace.\n\nPurchase credits at: https://2slides.com/pricing\n\nDownload URL Expiration\n\nAll download URLs (PDF, ZIP archives) are valid for 1 hour only. Download files promptly after generation.\n\nLanguage Support\n\nGenerate slides in multiple languages (use full language name):\n\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\nError Handling\n\nCommon error codes:\n\nMissing API key\n\nError: API key not found\nSolution: Set SLIDES_2SLIDES_API_KEY environment variable\n\n\nRATE_LIMIT_EXCEEDED\n\nError: 429 Too Many Requests\nSolution: Wait 20-30 seconds before retrying\nRate limits: Fast PPT (10/min), Nano Banana (6/min)\n\n\nINSUFFICIENT_CREDITS\n\nError: Not enough credits\nSolution: Add credits at https://2slides.com/api\n\n\nINVALID_JOB_ID\n\nError: Job ID not found or invalid\nSolution: Verify job ID format (must be UUID for Nano Banana)\n\n\nInvalid content\n\nError: 400 Bad Request\nSolution: Verify content format and parameters\n\nAdditional Documentation\nAPI Reference\n\nSee api-reference.md for:\n\nAll endpoints and parameters\nRequest/response formats\nAuthentication details\nRate limits and best practices\nError codes and handling\nPricing Information\n\nSee pricing.md for:\n\nCredit packages and pricing\nCost examples and calculations\nFree trial details\nRefund policy\nEnterprise options\nTips for Best Results\n\nContent Structure:\n\nUse clear headings and subheadings\nKeep bullet points concise\nLimit to 3-5 points per section\nInclude relevant examples or data\n\nTheme Selection:\n\nTheme ID is required for standard generation\nSearch with keywords matching presentation purpose\nCommon searches: \"business\", \"professional\", \"creative\", \"education\", \"modern\"\nEach theme has unique styling and layout\n\nReference Images:\n\nUse high-quality images for best results\nCan use URL or base64 encoded image\nPublic URL must be accessible\nConsider resolution setting (1K/2K/4K) based on quality needs\nUse page=0 for automatic slide count detection\n\nDocument Processing:\n\nExtract only key information\nDon't try to fit entire document in slides\nFocus on main insights and takeaways\nAsk user which sections to emphasize"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/javainthinking/2slides-skills",
    "publisherUrl": "https://clawhub.ai/javainthinking/2slides-skills",
    "owner": "javainthinking",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/2slides-skills",
    "downloadUrl": "https://openagent3.xyz/downloads/2slides-skills",
    "agentUrl": "https://openagent3.xyz/skills/2slides-skills/agent",
    "manifestUrl": "https://openagent3.xyz/skills/2slides-skills/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/2slides-skills/agent.md"
  }
}