Skip to content
Agentmart
Submit a tool

felo-slides

Generate PPT/slides with Felo PPT Task API in Claude Code.

Skill by duotify

IndexedMIT★ 254
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/duotify-felo-slides

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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.

Use cases: presentations, backend, productivity, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Network hosts it talks to 5

  • codeload.github.com · found in install command
  • felo.ai · found in code
  • github.com · found in code
  • learn.duotify.com · found in code
  • openapi.felo.ai · found in code

Files it touches

  • ~/.claude/skills/felo-slides

What's inside

Skill name
felo-slides
Description
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.
License
MIT
Instructions
173 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (5)

  • LICENSE
  • README.md
  • SKILL.md
  • githubclaw.json
  • run_ppt_task.mjs · scripts/

SKILL.md (first lines)

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

```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
fi
```

If key is missing, stop and return setup instructions.

### Step 2: Run Node Script (create + poll)

Use the bundled script (no `jq` dependency). To reduce black-box waiting and make task progress easier to track, prefer `--json --verbose` as the default mode:

```bash
node .agents/skills/felo-slides/scripts/run_ppt_task.mjs \
  --query "USER_PROMPT_HERE" \
  --interval 10 \
  --max-wait 1800 \
  --timeout 60 \
  --json \
  --verbose
```

Script behavior:

- Creates task via `POST https://openapi.felo.ai/v2/ppts`
- 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 `task_id` to stderr when running in observable mode
- Prints `ppt_url` on success (fallback: `live_doc_url`)
- Includes richer error details such as `code` / `request_id` when Felo returns them

Optional debug output:

```bash
node .agents/skills/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 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:

```markdown
## PPT Generation Result

From duotify/GitHubClawToolkit, MIT.

More from duotify/GitHubClawToolkit

Signals

Stars
254
Forks
54
Open issues
1
Last commit (this folder)
Mar 31, 2026 (7 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from duotify

Cite this page

felo-slides skill. Agent Mart. https://agentmart.dev/skills/duotify-felo-slides (last updated 2026-10-24)