# Send ListenHub to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "listenhub-ai",
    "name": "ListenHub",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/kkaticld/listenhub-ai",
    "canonicalUrl": "https://clawhub.ai/kkaticld/listenhub-ai",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/listenhub-ai",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=listenhub-ai",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "scripts/check-status.sh",
      "scripts/create-explainer.sh",
      "scripts/create-podcast-audio.sh",
      "scripts/create-podcast-text.sh",
      "scripts/create-podcast.sh"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/listenhub-ai"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/listenhub-ai",
    "downloadUrl": "https://openagent3.xyz/downloads/listenhub-ai",
    "agentUrl": "https://openagent3.xyz/skills/listenhub-ai/agent",
    "manifestUrl": "https://openagent3.xyz/skills/listenhub-ai/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/listenhub-ai/agent.md"
  }
}
```
## Documentation

### ListenHub

Generate podcasts, explainer videos, TTS audio, and AI images through shell scripts that wrap the ListenHub API.

### Setup

Set LISTENHUB_API_KEY before first use. Two options:

Option A — OpenClaw env config (recommended):
Add to ~/.openclaw/openclaw.json under env:

{ "env": { "LISTENHUB_API_KEY": "lh_sk_..." } }

Option B — Shell export:

export LISTENHUB_API_KEY="lh_sk_..."

Get your key: https://listenhub.ai/settings/api-keys

For image generation, also set LISTENHUB_OUTPUT_DIR (defaults to ~/Downloads).

### Script Location

All scripts live at scripts/ relative to this SKILL.md. Resolve the path:

SCRIPTS="$(cd "$(dirname "<path-to-this-SKILL.md>")" && pwd)/scripts"

Dependencies: curl, jq (install if missing).

### Modes

ModeScriptUse CasePodcastcreate-podcast.sh1-2 speaker discussionExplainercreate-explainer.sh + generate-video.shNarration + AI visualsTTScreate-tts.shPure voice readingSpeechcreate-speech.shMulti-speaker scripted audioImagegenerate-image.shAI image generation

Helper scripts: get-speakers.sh (list voices), check-status.sh (poll progress).

### Hard Constraints

Execute ONLY through provided scripts. Direct API calls are forbidden.
Never hardcode speakerIds — call get-speakers.sh to discover them.
The API is proprietary; endpoints and parameters are internal to scripts.

### Mode Detection

Auto-detect from user input:

Podcast: "podcast", "chat about", "discuss", "debate" → create-podcast.sh
Explainer: "explain", "introduce", "video", "tutorial" → create-explainer.sh
TTS: "read aloud", "convert to speech", "tts" → create-tts.sh
Image: "generate image", "draw", "create picture" → generate-image.sh

If ambiguous, ask user.

### Get Speakers

$SCRIPTS/get-speakers.sh --language zh   # or en

Returns JSON with data.items[].speakerId. If user doesn't specify a voice, pick the first match for the language.

### Podcast (One-Stage, default)

$SCRIPTS/create-podcast.sh --query "topic" --language zh|en --mode quick|deep|debate --speakers <id1[,id2]> [--source-url URL] [--source-text TEXT]

quick is default mode. debate requires 2 speakers.
Multiple --source-url / --source-text allowed.

### Podcast (Two-Stage: text → review → audio)

Use only when user wants to review/edit the script before audio generation.

Stage 1: $SCRIPTS/create-podcast-text.sh (same args as one-stage)
Review: Poll with check-status.sh --wait, save draft, STOP and wait for user approval.
Stage 2: $SCRIPTS/create-podcast-audio.sh --episode <id> [--scripts modified.json]

### Explainer Video

$SCRIPTS/create-explainer.sh --content "text" --language zh|en --mode info|story --speakers <id>
$SCRIPTS/generate-video.sh --episode <id>

### TTS (FlowSpeech)

$SCRIPTS/create-tts.sh --type text|url --content "text or URL" --language zh|en --mode smart|direct --speakers <id>

Default mode: direct (no content modification). smart fixes grammar/punctuation.
Text limit: 10,000 characters; use URL for longer content.

### Multi-Speaker Speech

$SCRIPTS/create-speech.sh --scripts scripts.json

JSON format: {"scripts": [{"content": "...", "speakerId": "..."}]}

### Image Generation

$SCRIPTS/generate-image.sh --prompt "description" [--size 1K|2K|4K] [--ratio 16:9|1:1|9:16|...] [--reference-images "url1,url2"]

Default: 2K, 16:9. Max 14 reference images.
Output saved to $LISTENHUB_OUTPUT_DIR (default ~/Downloads).

### Check Status

$SCRIPTS/check-status.sh --episode <id> --type podcast|flow-speech|explainer [--wait] [--timeout 300]

Exit codes: 0=done, 1=failed, 2=timeout (retry safe).

Use --wait for automated polling. Run generation in background for long tasks.

### Interaction Pattern

Detect mode from user input
If no speaker specified, call get-speakers.sh, pick first match
Run the appropriate script (background for long tasks)
Report submission, give estimated time (podcast 2-3min, explainer 3-5min, TTS 1-2min)
On "done yet?" → run check-status.sh --wait
Show result link. Offer download only when asked.

### Language

Match response language to user input language. Chinese input → Chinese responses. English → English.

### Links

Podcast library: https://listenhub.ai/app/podcast
Explainer library: https://listenhub.ai/app/explainer
TTS library: https://listenhub.ai/app/text-to-speech
API keys: https://listenhub.ai/settings/api-keys
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: kkaticld
- Version: 0.6.0
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-04-23T16:43:11.935Z
- Expires at: 2026-04-30T16:43:11.935Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/listenhub-ai)
- [Send to Agent page](https://openagent3.xyz/skills/listenhub-ai/agent)
- [JSON manifest](https://openagent3.xyz/skills/listenhub-ai/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/listenhub-ai/agent.md)
- [Download page](https://openagent3.xyz/downloads/listenhub-ai)