Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate a PowerPoint (PPTX) presentation using the SurgePix API, returning a download URL. Use when the user says "generate ppt", "生成PPT", "做一个演示文稿", "make slides", "create a presentation", or wants slides from a topic or outline. Language: always pass --language matching user (English→en, 中文→zh, 日本語→ja).
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-16 | ✓→✗ | ▼ Worse | 99% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 1291% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 189% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 140% | 0% |
| case-06 | ✗→✗ | = Same ✗ | 18% | 0% |
Generate a presentation (PPTX) from a topic prompt and/or outline documents, and get a download URL.
Match the user's conversation language for slide content — unless the user explicitly requests another language.
| User writes in | Pass --language | Write --prompt in | |----------------|-------------------|---------------------| | English | en | English | | 中文 | zh | Chinese | | 日本語 | ja | Japanese |
--language — do not rely on API auto-detect alone when the user's language is clear.SURGEPIX_API_KEY configured (see Step 0)| Action | Description | |---------------------------|----------------------------------------------------------------------| | Generate PPT | Create a complete .pptx from text prompt, style, and other requirements | | Upload reference document | Upload a visual reference image or outline file to apply to PPT design | | Check task status | Poll a generation task by taskId to check progress | | Download result | Retrieve the .pptx download URL directly from the task result |
> The script always submits the task asynchronously (the API returns a taskId immediately). The --nowait flag controls what the script does next: > - --nowait false (default) — the script polls internally until the task is succeeded/failed and returns the final download URL in one call. > - --nowait true — the script returns the taskId immediately without waiting; resolve it later with the surgepix-query-task skill.
Requirement: Set the SURGEPIX_API_KEY environment variable. Get your API Key at your platform's API management page.
bashexport SURGEPIX_API_KEY=your-api-key-here
This skill uses the script at <skills-dir>/surgepix-generate-presentation/scripts/generate_presentation.mjs.
First run — prompt only, --style as a quick preset:
bashnode "<skills-dir>/surgepix-generate-presentation/scripts/generate_presentation.mjs" \ --prompt "Q3 2026 marketing results review with data highlights, problem analysis, and next quarter suggestions" \ --n 10 \ --style corporate \ --language zh # Output (JSON): # {"ok":true,"taskId":"task_abc123","sessionId":123,"progress":"succeeded","download":"https://..."} # ← Save sessionId for retries
With an outline file — detailed prompt, no --style needed:
bashnode "<skills-dir>/surgepix-generate-presentation/scripts/generate_presentation.mjs" \ --prompt "Generate annual strategy PPT based on this outline, dark business style, highlight data charts" \ --outline ./outline.txt \ --n 15
Not satisfied — iterate with adjusted prompt and same session ID:
bashnode "<skills-dir>/surgepix-generate-presentation/scripts/generate_presentation.mjs" \ --prompt "Q3 2026 marketing results review with data highlights, problem analysis, and suggestions — change to light and minimal style, blue/white palette" \ --n 10 \ --language zh \ --session-id 123 ← Pass the sessionId from previous output (number type) # Both results appear in the same session on the platform frontend.
Multiple outline files:
bashnode "<skills-dir>/surgepix-generate-presentation/scripts/generate_presentation.mjs" \ --prompt "年度战略规划摘要" \ --outline ./part1.docx --outline ./part2.pdf --outline ./appendix.md \ --n 20
Before running, verify config:
bashnode "<skills-dir>/surgepix-setup/scripts/check_env.mjs"
.env, then retry--n is required, and at least one of --prompt or --outline must also be provided.
Supported formats: doc, docx, pdf, txt, md, html, pptx — max 50MB.
5–30): use --n (integer)16:9): 16:9 (widescreen) / 4:3 (standard)modern / corporate / creative / minimal / tech. Use as a quick shorthand for visual direction; omit if --prompt already describes the style. See Preset Styles section below for detailed descriptions.zh / en / ja. Always pass --language; do not omit when user language is clear.sessionId (number type) printed by the last run. If this is a fresh request, omit it — the platform auto-creates a new session.bashnode "<skills-dir>/surgepix-generate-presentation/scripts/generate_presentation.mjs" \ --n <5-30> [--prompt "<text>"] [--outline "<path-or-url>" ...] \ [--aspect-ratio <16:9>] [--style <name>] \ [--language <zh|en|ja>] [--session-id <id>] [--nowait <true|false>]
| Flag | Description | |------|-------------| | --n <5-30> | Number of slides, integer in 5–30 (required) | | --prompt <text> | Text describing the presentation topic, purpose, and key points | | --outline <path-or-url> | Outline document (local path auto-uploaded; repeatable for multiple files) | | --aspect-ratio <ratio> | Aspect ratio, default 16:9 (e.g. 16:9, 4:3) | | --style <name> | Layout preset: modern / corporate / creative / minimal / tech | | --language <code> | Output language: zh / en / ja | | --session-id <id> | Session ID; pass the sessionId (number type) from a previous run to iterate | | --nowait <true\|false> | Wait mode, default false (see below) |
The request is always submitted asynchronously. --nowait false (default) makes the script poll internally until the task completes and returns the final download; --nowait true makes the script return the taskId immediately, to be resolved later via the surgepix-query-task skill.
Sync success (--nowait false, stdout):
json{"ok":true,"taskId":"task_xxx","sessionId":123,"progress":"succeeded","download":"https://...presentation.pptx"}
Async submitted (--nowait true, stdout) — resolve later with the surgepix-query-task skill:
json{"ok":true,"async":true,"taskId":"task_xxx","sessionId":123,"progress":"processing","download":null,"hint":"..."}
Failure (stderr):
json{"ok":false,"error":"..."}
sessionId (note: it is a number type, e.g. 123) so the user can pass it in a retry if needed.error field. Common causes:--n not provided, or neither --prompt nor --outline provided--n out of range (must be 5–30) or invalid --language code--session-id <sessionId> (number type) in the next run — both versions appear in the same session history on the frontend.| Parameter | Required | Default | Description | |--------------------------|----------|--------------|------------------------------------------------------------------------------| | --prompt <text> | No | — | Text describing the topic, purpose, and key points of the presentation | | --outline <path-or-url> | No | — | Outline document (local path auto-uploaded; repeatable for multiple files) | | --n <5-30> | Yes | — | Number of slides, integer in range 5–30 | | --aspect-ratio <ratio> | No | 16:9 | Slide aspect ratio: 16:9 (widescreen, 1920×1080 px) / 4:3 (standard, 1024×768 px) | | --style <name> | No | — | Layout preset: modern / corporate / creative / minimal / tech. See Preset Styles section for details. Use as a quick shorthand; omit when --prompt already covers the visual direction | | --language <code> | No | auto-detect | Output language: zh / en / ja | | --session-id <id> | No | auto-created | Omit on first run (platform creates a new session and returns it in stdout); provide on subsequent runs to group iterations in the same session. Note: sessionId is a number type, not string | | --nowait <true\|false> | No | false | false = synchronous: script polls internally and returns the final download. true = asynchronous: returns taskId immediately; resolve later via the surgepix-query-task skill |
| Style | Parameter | Description | |-------|-----------|-------------| | Modern | modern | Modern, clean, sleek design with bold typography and vibrant gradients | | Corporate | corporate | Corporate, professional design with a restrained color palette, structured grid layout and clear typography | | Creative | creative | Creative, playful design with expressive shapes, bold color accents and dynamic asymmetric composition | | Minimal | minimal | Minimal design with ample white space, simple typography and a limited color palette | | Tech | tech | Tech, futuristic design with dark backgrounds, neon accents, geometric lines and a sleek high-tech feel |
check_env.mjs before first use in a session--prompt or --outline--n is required and must be an integer between 5 and 30 — never run the command without it--nowait only controls whether the script polls locally (false, default) or returns the taskId immediately (true) — do not treat it as the API noWait field--nowait true), guide the user/Agent to resolve the taskId via the surgepix-query-task skill--session-id 123 in the next run — both versions appear in the same session on the frontend.--session-id is omitted, the platform auto-creates a new session for the run..pptx download URL is valid for 24 hours; download before it expires.doc, docx, pdf, txt, md, html, pptx — max 50MB.download value from the output--language matching the user's conversation language; English prompt → --language en, 中文 → --language zh.Other measured skills in the registry, with their headline benchmark lift.