slidespeak
Original:🇺🇸 English
Translated
1 scripts
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.
7installs
Sourceslidespeak/skills
Added on
NPX Install
npx skill4agent add slidespeak/skills slidespeakTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →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:
bash
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
--no-waitIf you cannot wait for the command to complete, use :
--no-waitbash
node scripts/slidespeak.mjs generate --text "Topic" --no-waitReturns immediately with:
json
{
"success": true,
"data": {
"task_id": "abc123...",
"message": "Task started. Check status with: node scripts/slidespeak.mjs status abc123..."
}
}Then poll the status until complete:
bash
node scripts/slidespeak.mjs status <task_id>When is , use the to download.
task_statusSUCCESSrequest_idTimeout behavior
If the script times out while waiting, it returns the task_id so you can continue polling:
json
{
"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 environment variable must be set. Get your API key from https://app.slidespeak.co/settings/developer
SLIDESPEAK_API_KEYQuick Reference
All commands use the helper script at . The script handles API authentication and waits for async tasks to complete automatically (no manual polling needed).
scripts/slidespeak.mjsGenerate a Presentation from Text
bash
node scripts/slidespeak.mjs generate --text "Your topic or content" --length 6Options:
- (required): Topic or content for the presentation
--text - : Number of slides (default: 10)
--length - : Template name or ID (default: "default")
--template - : Output language (default: "ORIGINAL")
--language - : casual, professional, funny, educational, sales_pitch
--tone - : concise, standard, text-heavy
--verbosity - : Disable stock image fetching
--no-images - : Exclude cover slide
--no-cover - : Exclude table of contents
--no-toc
Generate from an Uploaded Document
First upload the document, then generate:
bash
# 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 10Supported formats: , , , , , , ,
.pdf.docx.doc.pptx.ppt.xlsx.txt.mdList Available Templates
bash
# Default templates
node scripts/slidespeak.mjs templates
# Branded templates (if configured)
node scripts/slidespeak.mjs templates --brandedDownload a Presentation
After generation completes, use the to download:
request_idbash
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:
bash
# 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 4Edit types:
- : Add a new slide at the position
INSERT - : Replace existing slide content
REGENERATE - : Delete the slide (no prompt needed)
REMOVE
Check Task Status
For debugging or manual polling:
bash
node scripts/slidespeak.mjs status <task_id>Get Account Info
bash
node scripts/slidespeak.mjs meSlide-by-Slide Generation
For precise control over each slide, use the slide-by-slide endpoint. See for the full schema.
references/API.mdbash
node scripts/slidespeak.mjs generate-slides --config slides.jsonWhere contains:
slides.jsonjson
{
"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:
bash
# 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
bash
node scripts/slidespeak.mjs generate --text "Introduction to Machine Learning" --length 8 --tone educationalCreate a presentation from a PDF report
bash
# 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 12Edit a presentation to add a new slide
bash
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