Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
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.
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.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
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. Summarize what changed and any follow-up checks I should run.
This skill enables you to create and edit PowerPoint presentations using the SlideSpeak API.
Presentation generation takes 30-60 seconds.
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
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.
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..." } }
The SLIDESPEAK_API_KEY environment variable must be set. Get your API key from https://app.slidespeak.co/settings/developer
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).
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
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
# Default templates node scripts/slidespeak.mjs templates # Branded templates (if configured) node scripts/slidespeak.mjs templates --branded
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 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)
For debugging or manual polling: node scripts/slidespeak.mjs status <task_id>
node scripts/slidespeak.mjs me
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" }
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"
The script outputs JSON with either: Success: {"success": true, "data": {...}} Error: {"success": false, "error": "message"}
node scripts/slidespeak.mjs generate --text "Introduction to Machine Learning" --length 8 --tone educational
# 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
node scripts/slidespeak.mjs edit-slide \ --presentation-id "abc123" \ --type INSERT \ --position 5 \ --prompt "Add a slide about quarterly revenue growth with charts"
For detailed API documentation including all parameters, layout types, and constraints, read references/API.md.
Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.
Largest current source with strong distribution and engagement signals.