slidespeak

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.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "slidespeak" with this command: npx skills add slidespeak/skills/slidespeak-skills-slidespeak

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 <task_id>

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 <document_uuid> --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 <request_id>

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 <id> \
  --type INSERT \
  --position 2 \
  --prompt "Content about market analysis"

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

# Remove slide at position 4
node scripts/slidespeak.mjs edit-slide \
  --presentation-id <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 <task_id>

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.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

OpenClaw Skill Growth

Make OpenClaw Skills observable, diagnosable, and safely improvable over time. Use this when the user wants to maintain many SKILL.md files, inspect repeated...

Registry SourceRecently Updated
General

Find Skills for ClawHub

Search for and discover OpenClaw skills from ClawHub (the official skill registry). Activate when user asks about finding skills, installing skills, or wants...

Registry SourceRecently Updated
2871Profile unavailable
General

Skill Listing Polisher

Improve a skill's public listing before publish. Use when tightening title, description, tags, changelog, and scan-friendly packaging so the listing looks cl...

Registry SourceRecently Updated
1130Profile unavailable
General

Skill Priority Setup

Scans installed skills, suggests L0-L3 priority tiers, and auto-configures skill injection policy. Use when: setting up skill priorities, optimizing token bu...

Registry SourceRecently Updated
2510Profile unavailable