Install
openclaw skills install popai-powerpoint-slidesCreate presentations (PPT) using PopAI API. Use when asked to create slides, presentations, decks, or PPT content via PopAI. Supports uploading reference fil...
openclaw skills install popai-powerpoint-slidesCreate presentations programmatically via PopAI's API. Supports optional file uploads as reference material or templates.
export POPAI_API_KEY=...scripts/generate_ppt.py - Generate PPT via PopAI API (upload files → create channel → SSE stream → get pptx)# Generate PPT from topic only
python3 generate_ppt.py --query "人工智能发展趋势报告"
# With a template pptx file
python3 generate_ppt.py --query "特斯拉财报ppt" --file template.pptx
# With multiple reference files (max 5)
python3 generate_ppt.py --query "年度报告" --file template.pptx data.pdf chart.png
Get PPT topic from user
If user provides local files, pass them via --file (max 5, supports pptx/pdf/docx/images etc.)
Create a temp output file, then run script in background with --output:
# Step 3a: Create temp file and launch in background
OUTFILE="/tmp/popai_ppt_$(date +%s).jsonl"
touch "$OUTFILE"
# Step 3b: Run in background (run_in_background: true, timeout: 600000)
cd /Users/Gunnar/popai-python/.claude/skills/popai-presentations && POPAI_API_KEY="$POPAI_API_KEY" python3 scripts/generate_ppt.py --query "TOPIC" [--file FILE1 FILE2 ...] --output "$OUTFILE"
Tell user: "PPT正在生成中,预计3-5分钟..."
Poll for progress — periodically read new lines from the output file using Read tool or cat "$OUTFILE", and show progress to user:
task events → show task status updatessearch events → show "正在搜索..."summary event → show generation summarypptx_ready event → final result (stop polling)stream_end → generation complete (stop polling)
Poll every ~30 seconds until pptx_ready or stream_end appears.Present final results to user:
summary text (from NODE_END event) as the generation summarypptx_url as the download link: "下载PPT: <pptx_url>"web_url as the site link: "在线查看/编辑: <web_url>"Event types (stdout, one JSON per line):
{"type": "task", "id": "1", "content": "搜索特斯拉最新财报数据", "status": "progressing"}
{"type": "search", "action": "Web Searching", "results": [{"title": "...", "url": "...", "snippet": "...", "date": "..."}]}
{"type": "tool_result", "event": "TOOL_CALLS-xxx", "action": "...", "result": "..."}
{"type": "summary", "text": "已完成特斯拉财报PPT的创建..."}
{"type": "stream_end"}
Final result (is_end: true):
{
"type": "pptx_ready",
"is_end": true,
"pptx_url": "https://popai-file-boe.s3-accelerate.amazonaws.com/.../xxx.pptx",
"file_name": "xxx.pptx",
"preview_images": ["https://...0.jpeg"],
"preview_count": 10,
"web_url": "https://www.popai.pro/agentic-pptx/<channelId>"
}
pptx_url: .pptx文件下载链接web_url: PopAI源站链接,可在线查看和编辑summary: NODE_END事件的最终总结文本,展示给用户作为生成摘要TOOL_CALLS-pptx event contains final .pptx download URL; last:true marks stream endgetPresignedPost, supports any file type