
Slides
Generate AI-illustrated slide decks from a topic, URL, or pasted text using the ListenHub CLI for pitches, summaries, and visual storytelling.
Overview
Slides is an agent skill most often used in Grow (also Validate, Build) that creates AI-visual slide decks from topics, URLs, or text through the ListenHub CLI.
Install
npx skills add https://github.com/marswaveai/skills --skill slidesWhat is this skill?
- Triggers on slides, PPT, 幻灯片, presentation, and create slides phrasing
- Generates slide decks from topics, URLs, or text with AI visuals via ListenHub
- Default output is slides without audio; optional narration with speaker fetched from CLI
- Hard gates: shared config-pattern, cli-patterns, cli-authentication before runs
- Explicit routing: not for explainer video, podcast, speech-only, or standalone image-gen
Adoption & trust: 1 installs on skills.sh; 65 GitHub stars; 0/3 security scanners passed (skills.sh audits).
What problem does it solve?
You have a topic or link but no polished slide deck, and manual PPT work slows down pitches and update posts.
Who is it for?
Founders turning a landing URL, spec bullet list, or talk outline into a shareable deck inside an agent workflow with ListenHub installed.
Skip if: Narrated explainer video without slides, podcast episodes, speech-only audio, or one-off image generation—use the sibling skills listed in When NOT to Use.
When should I use this skill?
User wants slides, 幻灯片, PPT, slide deck, presentation, or create slides from a topic, URL, or text.
What do I get? / Deliverables
ListenHub produces a slide deck file with AI visuals in your chosen output location, with optional narration using CLI-resolved speakers.
- Generated slide deck artifacts saved to user-specified project paths
- Optional narrated slide output when speaker selection is enabled
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Slide output is primarily content artifacts for sharing and persuasion—canonical shelf is Grow where builders publish and repurpose narratives. Decks are structured visual content for presentations, updates, and summaries—not backend code or infra operations.
Where it fits
Turn a landing-page URL into a short pitch deck before user interviews.
Summarize a feature spec into slides for async stakeholder review.
Repurpose a launch blog post into a deck for community demos.
How it compares
CLI-backed slide generator—not a generic markdown-to-reveal.js skill or a browser-only Canva substitute.
Common Questions / FAQ
Who is slides for?
Solo builders using OpenClaw-style agents with the listenhub binary who want automated slide decks from topics, URLs, or text.
When should I use slides?
Use it in Grow when packaging content for audiences; in Validate when building pitch or scope decks; in Build when documenting features for stakeholders—and whenever the user says slides, PPT, 幻灯片, or presentation.
Is slides safe to install?
It requires shell access to ListenHub and network calls; review the Security Audits panel on this Prism page and confirm where artifacts are written before running in sensitive repos.
SKILL.md
READMESKILL.md - Slides
## When to Use - User wants to create a slide deck or presentation - User asks for "slides", "幻灯片", "PPT", or "presentation" - User wants visual content organized into slides from a topic or URL ## When NOT to Use - User wants a narrated video without slides (use `/explainer`) - User wants audio-only content (use `/speech` or `/podcast`) - User wants a podcast-style discussion (use `/podcast`) - User wants to generate a standalone image (use `/image-gen`) ## Purpose Generate slide decks with AI-generated visuals from topics, URLs, or text. By default, slides are generated without audio narration. Narration can be optionally enabled. Ideal for presentations, summaries, and visual storytelling. ## Hard Constraints - Always read config following `shared/config-pattern.md` before any interaction - Follow `shared/cli-patterns.md` for execution modes, error handling, and interaction patterns - Always follow `shared/cli-authentication.md` for auth checks - Follow `shared/speaker-selection.md` when narration is enabled - Never hardcode speaker IDs — always fetch from the speakers CLI when the user wants to change voice - Never save files to `~/Downloads/` or `.listenhub/` — save artifacts to the current working directory with friendly topic-based names (see `shared/config-pattern.md` § Artifact Naming) - Mode is always `slides` — never `info` or `story` (those are for `/explainer`) - Only 1 speaker supported (when narration is enabled) - Default behavior: skip audio (no narration). Only add narration when the user explicitly requests it via `--no-skip-audio` <HARD-GATE> Use the AskUserQuestion tool for every multiple-choice step — do NOT print options as plain text. Ask one question at a time. Wait for the user's answer before proceeding to the next step. After all parameters are collected, summarize the choices and ask the user to confirm. Do NOT call any CLI command until the user has explicitly confirmed. </HARD-GATE> ## Step -1: CLI Auth Check Follow `shared/cli-authentication.md`. If the CLI is not installed or the user is not logged in, auto-install and auto-login — never ask the user to run commands manually. ## Step 0: Config Setup Follow `shared/config-pattern.md` Step 0 (Zero-Question Boot). **If file doesn't exist** — silently create with defaults and proceed: ```bash mkdir -p ".listenhub/slides" echo '{"outputMode":"inline","language":null,"defaultSpeakers":{}}' > ".listenhub/slides/config.json" CONFIG_PATH=".listenhub/slides/config.json" CONFIG=$(cat "$CONFIG_PATH") ``` **Do NOT ask any setup questions.** Proceed directly to the Interaction Flow. **If file exists** — read config silently and proceed: ```bash CONFIG_PATH=".listenhub/slides/config.json" [ ! -f "$CONFIG_PATH" ] && CONFIG_PATH="$HOME/.listenhub/slides/config.json" CONFIG=$(cat "$CONFIG_PATH") ``` ### Setup Flow (user-initiated reconfigure only) Only run when the user explicitly asks to reconfigure. Display current settings: ``` 当前配置 (slides): 输出方式:{inline / download / both} 语言偏好:{zh / en / 未设置} 默认主播:{speakerName / 使用内置默认} ``` Then ask: 1. **outputMode**: Follow `shared/output-mode.md` § Setup Flow Question. 2. **Language** (optional): "默认语言?" - "中文 (zh)" - "English (en)" - "每次手动选择" → keep `null` After collecting answers, save immediately: ```bash NEW_CONFIG=$(echo "$CONFIG" | jq --arg m "$OUTPUT_MODE" '. + {"outputMode": $m}') echo "$NEW_CONFIG" > "$CONFIG_PATH" CONFIG=$(cat "$CONFIG_PATH") ``` ## Interaction Flow ### Step 1: Topic / Content Free text input. Ask the user: > What would you like to create slides about? Accept: topic description, text content, URL(s), or any combination. ### Step 2: Language If `config.language` is set, pre