felo-slides
Original:🇺🇸 English
Translated
1 scripts
Generate PPT/slides with Felo PPT Task API in Claude Code. Use when users ask to create/make/generate/export presentations or slide decks, or when explicit commands like /felo-slides are used. Handles API key check, task creation, polling, and final ppt_url output.
23installs
Sourcefelo-inc/felo-skills
Added on
NPX Install
npx skill4agent add felo-inc/felo-skills felo-slidesTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →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 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: , "use felo slides"
/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
- Visit felo.ai
- Open Settings -> API Keys
- Create and copy your API key
2. Configure environment variable
Linux/macOS:
bash
export FELO_API_KEY="your-api-key-here"Windows PowerShell:
powershell
$env:FELO_API_KEY="your-api-key-here"How to Execute
Use Bash tool commands and follow this workflow exactly.
Step 1: Precheck API key
bash
if [ -z "$FELO_API_KEY" ]; then
echo "ERROR: FELO_API_KEY not set"
exit 1
fiIf key is missing, stop and return setup instructions.
Step 2: Run Node Script (create + poll)
Use the bundled script (no dependency):
jqbash
node felo-slides/scripts/run_ppt_task.mjs \
--query "USER_PROMPT_HERE" \
--interval 10 \
--max-wait 1800 \
--timeout 60Script behavior:
- Creates task via
POST https://openapi.felo.ai/v2/ppts - Polls via
GET https://openapi.felo.ai/v2/tasks/{task_id}/historical - Treats /
COMPLETEDas success terminal (case-insensitive)SUCCESS - Treats /
FAILEDas failure terminalERROR - Stops polling immediately on terminal status
- Prints on success (fallback:
ppt_url)live_doc_url
Optional debug output:
bash
node felo-slides/scripts/run_ppt_task.mjs \
--query "USER_PROMPT_HERE" \
--interval 10 \
--max-wait 1800 \
--json \
--verboseThis outputs structured JSON including:
task_idtask_statusppt_urllive_doc_urllivedoc_short_idppt_business_id
Step 4: Return structured result
On success, return:
- immediately (script default output, fallback
ppt_url)live_doc_url - if is used, also include
--json, terminal status, and optional metadatatask_id
Output Format
Use this response structure:
markdown
## PPT Generation Result
- Task ID: <task_id>
- Status: <status>
- PPT URL: <ppt_url>
- Live Doc URL: <live_doc_url or N/A>
## Notes
- livedoc_short_id: <value or N/A>
- ppt_business_id: <value or N/A>Error format:
markdown
## PPT Generation Failed
- Error Type: <error code or category>
- Message: <readable message>
- Suggested Action: <next step>Error Handling
Known API error codes:
- (401): key invalid or revoked
INVALID_API_KEY - (502): create task downstream failed
PPT_TASK_CREATE_FAILED - (502): query task downstream failed
PPT_TASK_QUERY_FAILED
Timeout handling:
- If timeout reached, return last known status and instruct user to retry later
- Include so user can query again
task_id
Important Notes
- Always execute this skill when user intent is slide generation.
- Always return so follow-up queries can continue from the same task.
task_id - Do not claim completion without a terminal status.
- Keep API calls minimal: create once, then poll.