felo-slides
Generate PPT/slides from prompts, local images, PDFs, and other files with the Felo PPT Task API. Use when users ask to create, make, generate, or export presentations or slide decks; turn an attached/local file into slides; include an original image in a PPT; or explicitly invoke /felo-slides. Hand
By felo-inc · 981 installs
npx skills add felo-inc/felo-skills --skill felo-slides
Source repository · Upstream listing
Felo Slides Skill
When to Use
Trigger this skill for requests about creating presentation files:
Create/generate slides from a topic or outline
Turn notes into a PPT deck
Build slides from a local image, PDF, or document
Put an uploaded original image into the generated PPT
Build a presentation with a page count requirement
Export presentation content into a shareable slide link
Trigger keywords:
Chinese prompts about making slides or presentations
English: slides, PPT, presentation deck, generate presentation
Explicit commands: /felo slides , "use felo slides"
Do NOT use this skill for:
Real time information lookup (use felo search )
Questions about local codebase files
Pure text tasks that do not require slide generation
Setup
1. Get API key
1. Visit [felo.ai](https://felo.ai)
2. Open Settings API Keys
3. Create and copy your API key
2. Configure environment variable
Linux/macOS:
Windows PowerShell:
How to Execute
Use Bash tool commands and follow this workflow exactly.
Step 1: Precheck API key
If key is missing, stop and return setup instructions.
Step 2: Run Node Script (create + poll)
Use the bundled script (no jq dependency):
When the user provides a local image or file, pass its absolute path with
file . Include the desired use of the original asset in the prompt. For
example:
Do not replace file with a textual description when the user explicitly
wants the original file or image used in the PPT.
To apply a specific theme, first list available themes with felo ppt themes , then pass the theme ID:
Script behavior:
Creates task via POST https://openapi.felo.ai/v2/ppts
Supports optional file <path to upload one local file with multipart/form data
Supports optional theme <id to apply a PPT theme (sends ppt config.ai theme id )
Supports optional livedoc id <id to reuse an existing LiveDoc instead of auto creating a new one
Supports optional task id <id to resume polling an existing task (skips creation)
Polls via GET https://openapi.felo.ai/v2/tasks/{task id}/historical
Treats COMPLETED / SUCCESS as success terminal (case insensitive)
Treats FAILED / ERROR as failure terminal
Stops polling immediately on terminal status
Prints ppt url on success (fallback: live doc url )
Optional debug output:
This outputs structured JSON including:
task id
task status
ppt url
live doc url
livedoc short id
ppt business id
error message
Step 3: Confirm terminal status
The script polls the historical endpoint automatically. Wait for it to exit
before responding:
Success: terminal status is COMPLETED or SUCCESS , and the script prints
ppt url (fallback: live doc url )
Failure: terminal status is FAILED or ERROR ; return the error format below
Timeout: include the task id and tell the user to resume with task id
instead of creating a duplicate PPT task
Step 4: Return structured result
On success, return:
ppt url immediately (script default output, fallback live doc url )
if json is used, also include task id , terminal status, and optional metadata
Output Format
Use this response structure:
Error format:
Error Handling
Known API error codes:
INVALID API KEY (401): key invalid or revoked
PPT TASK CREATE FAILED (502): create task downstream failed
PPT TASK QUERY FAILED (502): query task downstream failed
Timeout handling:
If timeout reached, return last known status and instruct user to retry later
Include task id so user can query again
IMPORTANT : To resume a timed out task, use task id instead of query to avoid creating a duplicate PPT:
Important Notes
Always execute this skill when user intent is slide generation.
Always return task id so follow up queries can continue from the same task.
Do not claim completion without a terminal status.
Keep API calls minimal: create once, then poll.
References
[Felo PPT Task API](https://openapi.felo.ai/docs/api reference/ppt tasks)
[Felo Open Platform](https://openapi.felo.ai/docs/)