SlideSpeak

v1.0.0

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.

3· 3.3k·22 current·22 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description, required environment variable (SLIDESPEAK_API_KEY), and the included script/API reference all match a PowerPoint generation/editing client for api.slidespeak.co. Required items are proportional to the stated purpose.
Instruction Scope
SKILL.md instructs the agent to run the bundled Node script, set SLIDESPEAK_API_KEY, upload files for document-based generation, poll task status, and optionally register webhooks — all of which are appropriate for the described functionality. The script only reads files the user supplies and uses the single declared env var.
Install Mechanism
No install spec is present (instruction-only with bundled script). No downloads from untrusted URLs or archive extraction are specified. The script is included in the skill package and uses native Node APIs.
Credentials
Only SLIDESPEAK_API_KEY is required and declared as the primary credential. The skill does not request other unrelated secrets or config paths.
Persistence & Privilege
always:false and normal model invocation. The skill does not request permanent system-wide changes, nor does it modify other skills or agent-wide config.
Assessment
This package appears to be a straightforward client for api.slidespeak.co. Before installing: (1) ensure you trust slidespeak.co and are willing to provide your SLIDESPEAK_API_KEY (the key is sent to api.slidespeak.co for every request); (2) the script requires Node (native fetch — Node 18+); (3) when using upload you will be instructing the script to read files from paths you provide (so don’t point it at sensitive files you don’t intend to upload); (4) webhook-subscribe lets SlideSpeak send POSTs to any URL you register — don’t register endpoints that would leak sensitive internal data. If you need higher assurance, verify the API domain and the script contents yourself and obtain the API key from your SlideSpeak account rather than reusing other credentials.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🦜 Clawdis
EnvSLIDESPEAK_API_KEY
Primary envSLIDESPEAK_API_KEY
latestvk97a7a3jq53dfs4vmnfmxzm69n80awnt
3.3kdownloads
3stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

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.

Comments

Loading comments...