MCPInstall

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. Handles file upload, API key checks, task creation, polling, and final ppturl output.

Installs
1K
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/felo-inc/felo-skills --skill felo-slides
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads felo-slides automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

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
  2. Open Settings -> API Keys
  3. Create and copy your API key

2. Configure environment variable

Linux/macOS:

export FELO_API_KEY="your-api-key-here"

Windows 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

if [ -z "$FELO_API_KEY" ]; then
  echo "ERROR: FELO_API_KEY not set"
  exit 1
fi

If key is missing, stop and return setup instructions.

Step 2: Run Node Script (create + poll)

Use the bundled script (no jq dependency):

node felo-slides/scripts/run_ppt_task.mjs \
  --query "USER_PROMPT_HERE" \
  --interval 10 \
  --max-wait 1800 \
  --timeout 60

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:

node felo-slides/scripts/run_ppt_task.mjs \
  --query "Create exactly 2 slides and place the uploaded original image directly in the PPT" \
  --file "/absolute/path/to/source.jpg" \
  --interval 10 \
  --max-wait 1800 \
  --timeout 60

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:

node felo-slides/scripts/run_ppt_task.mjs \
  --query "USER_PROMPT_HERE" \
  --theme "THEME_ID_HERE" \
  --interval 10 \
  --max-wait 1800 \
  --timeout 60

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:

node felo-slides/scripts/run_ppt_task.mjs \
  --query "USER_PROMPT_HERE" \
  --interval 10 \
  --max-wait 1800 \
  --json \
  --verbose

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:

## 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:

## PPT Generation Failed

- Error Type: <error code or category>
- Message: <readable message>
- Suggested Action: <next step>

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:
node felo-slides/scripts/run_ppt_task.mjs \
  --task-id "TASK_ID_HERE" \
  --interval 10 \
  --max-wait 1800

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

FAQ

What does the felo-slides skill do?

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. Handles file upload, API key checks, task creation, polling, and final ppturl output.

How do I install felo-slides?

Run npx skills add https://github.com/felo-inc/felo-skills --skill felo-slides in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/felo-slides/ (personal) or .claude/skills/felo-slides/ (project).

Which AI agents can use felo-slides?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is felo-slides safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains felo-slides?

It is published by felo-inc in felo-inc/felo-skills. It has 1,012 recorded installs.

More from felo-inc/felo-skills

View all →

felo-search

felo-inc/felo-skills

Open the skill to read its SKILL.md instructions.

278 installs

felo-web-fetch

felo-inc/felo-skills

Extract webpage content with Felo Web Extract API. Use for turning URLs into html/markdown/text, selecting specific page areas with CSS selectors, and controlling extraction options like crawl mode, cookies, user-agent, and timeout.

Frontend & Design109 installs

felo-x-search

felo-inc/felo-skills

Search X (Twitter) data using Felo X Search API. Use when users ask about X/Twitter users, tweets, trending topics on X, tweet replies, or when explicit commands like /felo-x-search are used. Supports user lookup, user search, user tweets, tweet search, and tweet replies.

Marketing & SEO99 installs

felo-superagent

felo-inc/felo-skills

Felo SuperAgent API: AI conversation with real-time SSE streaming on a persistent LiveDoc canvas. Use when users want SuperAgent chat, continuous conversation, logo/branding design, or e-commerce product images. Do NOT use for tweet/X post writing — use felo-twitter-writer instead. Explicit commands: /felo-superAgent.

Docs & Writing98 installs

felo-content-to-slides

felo-inc/felo-skills

Fetch content from a webpage or YouTube video, then generate a PPT from that content using Felo APIs. Use when the user wants to turn a URL (article/page or YouTube) into a presentation, or explicit /felo-content-to-slides.

Docs & Writing89 installs

felo-livedoc

felo-inc/felo-skills

Open the skill to read its SKILL.md instructions.

84 installs

Popular docs & writing skills

View category →

grill-with-docs

mattpocock/skills

A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

Docs & Writing1.2M installs

lark-markdown

open.feishu.cn

飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。

Docs & Writing778.7K installs

writing-beats

mattpocock/skills

Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.

Docs & Writing490.7K installs

writing-shape

mattpocock/skills

Writing, exploit: shape raw material into an article, paragraph by paragraph.

Docs & Writing490.2K installs

writing-fragments

mattpocock/skills

Writing, explore: mine raw fragments, no structure yet.

Docs & Writing489.6K installs

writing-for-agents

mattpocock/skills

Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.

Docs & Writing479.3K installs