Felo Slides
/install felo-slides
\r \r
Felo Slides Skill\r
\r
When to Use\r
\r Trigger this skill for requests about creating presentation files:\r \r
- Create/generate slides from a topic or outline\r
- Turn notes into a PPT deck\r
- Build a presentation with a page count requirement\r
- Export presentation content into a shareable slide link\r \r Trigger keywords:\r \r
- Chinese prompts about making slides or presentations\r
- English: slides, PPT, presentation deck, generate presentation\r
- Explicit commands:
/felo-slides, "use felo slides"\r \r Do NOT use this skill for:\r \r - Real-time information lookup (use
felo-search)\r - Questions about local codebase files\r
- Pure text tasks that do not require slide generation\r \r
Setup\r
\r
1. Get API key\r
\r
- Visit felo.ai\r
- Open Settings -> API Keys\r
- Create and copy your API key\r \r
2. Configure environment variable\r
\r Linux/macOS:\r \r
export FELO_API_KEY="your-api-key-here"\r
```\r
\r
Windows PowerShell:\r
\r
```powershell\r
$env:FELO_API_KEY="your-api-key-here"\r
```\r
\r
## How to Execute\r
\r
Use Bash tool commands and follow this workflow exactly.\r
\r
### Step 1: Precheck API key\r
\r
```bash\r
if [ -z "$FELO_API_KEY" ]; then\r
echo "ERROR: FELO_API_KEY not set"\r
exit 1\r
fi\r
```\r
\r
If key is missing, stop and return setup instructions.\r
\r
### Step 2: Run Node Script (create + poll)\r
\r
Use the bundled script (no `jq` dependency):\r
\r
```bash\r
node felo-slides/scripts/run_ppt_task.mjs \\r
--query "USER_PROMPT_HERE" \\r
--interval 10 \\r
--max-wait 1800 \\r
--timeout 60\r
```\r
\r
To apply a specific theme, first list available themes with `felo ppt-themes`, then pass the theme ID:\r
\r
```bash\r
node felo-slides/scripts/run_ppt_task.mjs \\r
--query "USER_PROMPT_HERE" \\r
--theme "THEME_ID_HERE" \\r
--interval 10 \\r
--max-wait 1800 \\r
--timeout 60\r
```\r
\r
Script behavior:\r
\r
- Creates task via `POST https://openapi.felo.ai/v2/ppts`\r
- Supports optional `--theme \x3Cid>` to apply a PPT theme (sends `ppt_config.ai_theme_id`)\r
- Supports optional `--task-id \x3Cid>` to resume polling an existing task (skips creation)\r
- Polls via `GET https://openapi.felo.ai/v2/tasks/{task_id}/historical`\r
- Treats `COMPLETED`/`SUCCESS` as success terminal (case-insensitive)\r
- Treats `FAILED`/`ERROR` as failure terminal\r
- Stops polling immediately on terminal status\r
- Prints `ppt_url` on success (fallback: `live_doc_url`)\r
\r
Optional debug output:\r
\r
```bash\r
node felo-slides/scripts/run_ppt_task.mjs \\r
--query "USER_PROMPT_HERE" \\r
--interval 10 \\r
--max-wait 1800 \\r
--json \\r
--verbose\r
```\r
\r
This outputs structured JSON including:\r
\r
- `task_id`\r
- `task_status`\r
- `ppt_url`\r
- `live_doc_url`\r
- `livedoc_short_id`\r
- `ppt_business_id`\r
- `error_message`\r
\r
### Step 4: Return structured result\r
\r
On success, return:\r
\r
- `ppt_url` immediately (script default output, fallback `live_doc_url`)\r
- if `--json` is used, also include `task_id`, terminal status, and optional metadata\r
\r
## Output Format\r
\r
Use this response structure:\r
\r
```markdown\r
## PPT Generation Result\r
\r
- Task ID: \x3Ctask_id>\r
- Status: \x3Cstatus>\r
- PPT URL: \x3Cppt_url>\r
- Live Doc URL: \x3Clive_doc_url or N/A>\r
\r
## Notes\r
\r
- livedoc_short_id: \x3Cvalue or N/A>\r
- ppt_business_id: \x3Cvalue or N/A>\r
```\r
\r
Error format:\r
\r
```markdown\r
## PPT Generation Failed\r
\r
- Error Type: \x3Cerror code or category>\r
- Message: \x3Creadable message>\r
- Suggested Action: \x3Cnext step>\r
```\r
\r
## Error Handling\r
\r
Known API error codes:\r
\r
- `INVALID_API_KEY` (401): key invalid or revoked\r
- `PPT_TASK_CREATE_FAILED` (502): create task downstream failed\r
- `PPT_TASK_QUERY_FAILED` (502): query task downstream failed\r
\r
Timeout handling:\r
\r
- If timeout reached, return last known status and instruct user to retry later\r
- Include `task_id` so user can query again\r
- **IMPORTANT**: To resume a timed-out task, use `--task-id` instead of `--query` to avoid creating a duplicate PPT:\r
\r
```bash\r
node felo-slides/scripts/run_ppt_task.mjs \\r
--task-id "TASK_ID_HERE" \\r
--interval 10 \\r
--max-wait 1800\r
```\r
\r
## Important Notes\r
\r
- Always execute this skill when user intent is slide generation.\r
- Always return `task_id` so follow-up queries can continue from the same task.\r
- Do not claim completion without a terminal status.\r
- Keep API calls minimal: create once, then poll.\r
\r
## References\r
\r
- [Felo PPT Task API](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html)\r
- [Felo Open Platform](https://openapi.felo.ai/docs/)\r
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install felo-slides - After installation, invoke the skill by name or use
/felo-slides - Provide required inputs per the skill's parameter spec and get structured output
What is Felo Slides?
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 c... It is an AI Agent Skill for Claude Code / OpenClaw, with 1264 downloads so far.
How do I install Felo Slides?
Run "/install felo-slides" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Felo Slides free?
Yes, Felo Slides is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Felo Slides support?
Felo Slides is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Felo Slides?
It is built and maintained by wangzhiming (@wangzhiming1999); the current version is v1.0.1.