🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

SlideSpeak

by @mve

Generate, edit, and manage PowerPoint presentations via the SlideSpeak API. Use this skill when users want to create presentations from text or documents, edit existing presentations, or work with presentation templates.

Versionv1.0.0
Downloads4,529
Stars⭐ 3
TERMINAL
clawhub install slidespeak

πŸ“– About This Skill


name: slidespeak description: Generate, edit, and manage PowerPoint presentations via the SlideSpeak API. Use this skill when users want to create presentations from text or documents, edit existing presentations, or work with presentation templates. allowed-tools: Bash Read Write metadata: { "openclaw": { "emoji": "🦜", "homepage": "https://slidespeak.co", "requires": { "env": [ "SLIDESPEAK_API_KEY" ] }, "primaryEnv": "SLIDESPEAK_API_KEY", }, }

SlideSpeak Presentation Skill

This skill enables you to create and edit PowerPoint presentations using the SlideSpeak API.

IMPORTANT: Timing Behavior

Presentation generation takes 30-60 seconds.

Option 1: Wait for completion (default)

Run the command and wait. The script polls internally until complete:
node scripts/slidespeak.mjs generate --text "Topic"
  • Blocks until the task finishes (typically 30-60 seconds)
  • Returns the complete result with download URL
  • Option 2: Return immediately with --no-wait

    If you cannot wait for the command to complete, use --no-wait:
    node scripts/slidespeak.mjs generate --text "Topic" --no-wait
    
    Returns immediately with:
    {
      "success": true,
      "data": {
        "task_id": "abc123...",
        "message": "Task started. Check status with: node scripts/slidespeak.mjs status abc123..."
      }
    }
    

    Then poll the status until complete:

    node scripts/slidespeak.mjs status 
    
    When task_status is SUCCESS, use the request_id to download.

    Timeout behavior

    If the script times out while waiting, it returns the task_id so you can continue polling:
    {
      "success": true,
      "data": {
        "complete": false,
        "task_id": "abc123...",
        "task_status": "STARTED",
        "message": "Task still processing. Check status with: node scripts/slidespeak.mjs status abc123..."
      }
    }
    

    Setup

    The SLIDESPEAK_API_KEY environment variable must be set. Get your API key from https://app.slidespeak.co/settings/developer

    Quick Reference

    All commands use the helper script at scripts/slidespeak.mjs. The script handles API authentication and waits for async tasks to complete automatically (no manual polling needed).

    Generate a Presentation from Text

    node scripts/slidespeak.mjs generate --text "Your topic or content" --length 6
    

    Options:

  • --text (required): Topic or content for the presentation
  • --length: Number of slides (default: 10)
  • --template: Template name or ID (default: "default")
  • --language: Output language (default: "ORIGINAL")
  • --tone: casual, professional, funny, educational, sales_pitch
  • --verbosity: concise, standard, text-heavy
  • --no-images: Disable stock image fetching
  • --no-cover: Exclude cover slide
  • --no-toc: Exclude table of contents
  • Generate from an Uploaded Document

    First upload the document, then generate:

    # Upload a document (PDF, DOCX, PPTX, etc.)
    node scripts/slidespeak.mjs upload /path/to/document.pdf

    Use the returned document_uuid to generate

    node scripts/slidespeak.mjs generate --document --length 10

    Supported formats: .pdf, .docx, .doc, .pptx, .ppt, .xlsx, .txt, .md

    List Available Templates

    # Default templates
    node scripts/slidespeak.mjs templates

    Branded templates (if configured)

    node scripts/slidespeak.mjs templates --branded

    Download a Presentation

    After generation completes, use the request_id to download:

    node scripts/slidespeak.mjs download 
    

    Returns a JSON object with a short-lived download URL.

    Edit an Existing Presentation

    Edit slides in an existing presentation:

    # Insert a new slide at position 2
    node scripts/slidespeak.mjs edit-slide \
      --presentation-id  \
      --type INSERT \
      --position 2 \
      --prompt "Content about market analysis"

    Regenerate slide at position 3

    node scripts/slidespeak.mjs edit-slide \ --presentation-id \ --type REGENERATE \ --position 3 \ --prompt "Updated content for this slide"

    Remove slide at position 4

    node scripts/slidespeak.mjs edit-slide \ --presentation-id \ --type REMOVE \ --position 4

    Edit types:

  • INSERT: Add a new slide at the position
  • REGENERATE: Replace existing slide content
  • REMOVE: Delete the slide (no prompt needed)
  • Check Task Status

    For debugging or manual polling:

    node scripts/slidespeak.mjs status 
    

    Get Account Info

    node scripts/slidespeak.mjs me
    

    Slide-by-Slide Generation

    For precise control over each slide, use the slide-by-slide endpoint. See references/API.md for the full schema.

    node scripts/slidespeak.mjs generate-slides --config slides.json
    

    Where slides.json contains:

    {
      "slides": [
        {"title": "Introduction", "layout": "title", "content": "Welcome message"},
        {"title": "Key Points", "layout": "bullets", "item_amount": 4, "content": "Main discussion points"}
      ],
      "template": "default"
    }
    

    Webhooks

    Subscribe to receive notifications when tasks complete:

    # Subscribe
    node scripts/slidespeak.mjs webhook-subscribe --url "https://your-webhook.com/endpoint"

    Unsubscribe

    node scripts/slidespeak.mjs webhook-unsubscribe --url "https://your-webhook.com/endpoint"

    Error Handling

    The script outputs JSON with either:

  • Success: {"success": true, "data": {...}}
  • Error: {"success": false, "error": "message"}
  • Common Workflows

    Create a presentation about a topic

    node scripts/slidespeak.mjs generate --text "Introduction to Machine Learning" --length 8 --tone educational
    

    Create a presentation from a PDF report

    # Upload the PDF
    RESULT=$(node scripts/slidespeak.mjs upload report.pdf)
    DOC_ID=$(echo $RESULT | jq -r '.data.document_uuid')

    Generate presentation

    node scripts/slidespeak.mjs generate --document "$DOC_ID" --length 12

    Edit a presentation to add a new slide

    node scripts/slidespeak.mjs edit-slide \
      --presentation-id "abc123" \
      --type INSERT \
      --position 5 \
      --prompt "Add a slide about quarterly revenue growth with charts"
    

    Additional Resources

    For detailed API documentation including all parameters, layout types, and constraints, read references/API.md.

    βš™οΈ Configuration

    The SLIDESPEAK_API_KEY environment variable must be set. Get your API key from https://app.slidespeak.co/settings/developer