Communitygithub.com

VoxFlowStudio/skills

Use when the user wants to read text aloud (TTS), search VoxFlow voices, sample AI stories, or set up VoxFlow install/auth/quota — the entry-point voice toolkit. For podcasts use voxflow:podcast; for short videos / AI clips use voxflow:video; for article-to-card reels (Slice) use voxflow:slice; for shareable card images or narrated card videos use voxflow:card; for transcription / dubbing / subtitle translation use voxflow:transcribe.

skills 是什么?

skills is a Claude Code agent skill that use when the user wants to read text aloud (TTS), search VoxFlow voices, sample AI stories, or set up VoxFlow install/auth/quota — the entry-point voice toolkit. For podcasts use voxflow:podcast; for short videos / AI clips use voxflow:video; for article-to-card reels (Slice) use voxflow:slice; for shareable card images or narrated card videos use voxflow:card; for transcription / dubbing / subtitle translation use voxflow:transcribe.

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/VoxFlowStudio/skills/tree/HEAD/skills/hub

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

VoxFlow Skill — Hub

If voxflow upgrade itself errors with Unknown command (CLI predates 1.12.0), fall back to npm i -g voxflow@latest && voxflow skills install --all — that's the only path for the very first bootstrap.

This rule is non-negotiable: an outdated CLI silently disables features the user expects (e.g. cloned-voice listing). Upgrade first, work second.

VoxFlow turns text into speech in 200+ voices across 40+ languages, plus full audio/video pipelines. This skill is the entry point: install, auth, voice search, and the simple say / narrate / story workflows.

For specialized tasks, switch to:

  • Podcasts (multi-speaker dialogue) → voxflow:podcast
  • Short videos / AI clips / knowledge cards (picstory, present, slides, explain) → voxflow:video
  • Article → vertical card video (Slice) — 13 themes (paper-slide / editorial-mag / bold-poster / notion-card / brutalist / glass-dark / editorial-stencil / broadsheet / blueprint / daisy-pastel / showa-catalog / photo-feature / atmospheric), web app + Remotion → voxflow:slice
  • Shareable card images & narrated card videos (HTML/CSS + Playwright export, optional voxflow card render for narrated MP4) → voxflow:card
  • Transcription, subtitle translation, dubbing, summarize, publish (asr, asr-jobs, translate, dub, video-translate, summarize, publish) → voxflow:transcribe

Install & login

Install once, never ask the user again:

npm install -g voxflow
voxflow login          # opens browser — Google or email OTP

Token cached at ~/.config/voxflow/token.json. For CI, set VOXFLOW_TOKEN.

Authentication

voxflow login        # browser-based, one-time
voxflow status       # who am I + remaining quota
voxflow logout

Voice search — always do this before synthesizing

Never guess voice IDs. Search first.

voxflow voices --lang zh --gender female
voxflow voices --lang en
voxflow voices --search "narrator"
voxflow voices --all

No login required for the public catalog. Output includes the voice ID, language, gender, and a short description.

Listing the user's own cloned voices

When the user says things like "用我的克隆声音 / use my cloned voice / 用我之前克隆的", the public voxflow voices catalog does not include cloned voices — you must query the authenticated endpoint:

voxflow voices --mine

Prints cloned voice IDs, names, duration, and creation time (requires login). Always run this before concluding the user has no cloned voice — the web UI "我的声音" tab and --mine are the only sources of truth.

Popular voice IDs (sane defaults)

IDStyleLanguage
v-female-R2s4N9qJ温柔姐姐 (gentle female)zh
v-male-s5NqE0rZ自然男声 (natural male)zh
v-male-Bk7vD3xP威严霸总 (authoritative male)zh
v-female-m1KpW7zE傲娇学姐 (sassy female)zh
v-female-T8m4WxP7Chenwen (native English female)en

Voice cloning (clone)

Clone a voice from a local audio file (30s+, wav/mp3). Returns a permanent voice ID usable in all commands.

voxflow clone --input recording.wav --name "My Voice"
# → Voice cloned successfully!
# → Voice ID: My_Voice_xxxxx_01

No file? Opens the web UI for browser-based recording:

voxflow clone
# → Opens https://www.voxflow.studio/app#voice-clone
FlagDefaultNotes
--input <file>(none)Audio file to clone from. Without this, opens web UI
--name <name>filenameHuman-readable voice name (1-50 chars)

Tips:

  • Quiet room, normal speaking pace, no background music → best results
  • 60 seconds is optimal; 30s minimum
  • Don't "perform" — natural speech clones better than broadcast voice

After cloning, use the voice ID anywhere: --voice <id>

Text-to-speech (say / synthesize)

The atomic command. One snippet → one audio file.

voxflow say "你好世界" -o hello.mp3
voxflow say "Hello world" --voice v-female-T8m4WxP7 -o greeting.mp3
voxflow say "慢速朗读" --speed 0.8 -o slow.mp3
voxflow say "高质量音频" --format wav -o output.wav
FlagDefaultRange / Values
--voice <id>v-female-R2s4N9qJany voice ID from voxflow voices
--format <fmt>pcmpcm (WAV), wav, mp3
--speed <n>1.00.5 – 2.0
--volume <n>1.00.1 – 2.0
--pitch <n>0-12 – 12
--output <path>auto-namedany writable path

After synthesis, auto-play: open output.mp3 (macOS).

Long text (narrate)

Split a document or long string into sentences, synthesize each, concat into one file.

voxflow narrate --input article.txt -o narration.wav
voxflow narrate --input readme.md --voice v-male-Bk7vD3xP -o readme_audio.wav
voxflow narrate --text "第一段。第二段。第三段。" -o paragraphs.mp3
echo "Hello world" | voxflow narrate -o hello.wav

Best for: long documents, articles, README files, email newsletters.

Markdown is stripped automatically (headings, links, code fences, etc.) — no need to clean it first.

AI story (story)

LLM writes a short story on the topic, then narrates it.

voxflow story "一只会飞的小猫" -o story.mp3
voxflow story "space adventure" --lang en -o adventure.wav

Best for: bedtime stories, content samples, demos.

Quota

Free tier: 10,000 quota / month (resets monthly). Bonus pool from invitations never expires.

OperationCost
1 TTS call (say)~50
narrate~50 per segment
story (short)~350-1000
podcast (medium)~2,800 (2K script + ~16 × 50 TTS)
picstory 5-scene~2,850

Always check before expensive operations:

voxflow status

Common scenarios

"把这段话念出来"

voxflow say "用户输入的文字" -o /tmp/out.mp3 && open /tmp/out.mp3

"用温柔女声读这个文件"

voxflow voices --lang zh --gender female
voxflow narrate --input file.txt --voice v-female-R2s4N9qJ -o /tmp/narration.mp3

"讲个睡前故事"

voxflow story "小狐狸的星星种子" --lang zh -o /tmp/bedtime.mp3 && open /tmp/bedtime.mp3

"多语言朗读"

voxflow voices --lang en --gender female   # pick English voice
voxflow voices --lang ja --gender female   # pick Japanese voice
voxflow say "English text" --voice <en_id> -o /tmp/en.mp3
voxflow say "日本語テキスト" --voice <ja_id> -o /tmp/ja.mp3

Creative workflows (combine TTS with the agent's writing)

The agent writes content first, then synthesizes each part with say or narrate.

Audio storybook (有声绘本)

  1. Write a 6-page children's story.
  2. For each page: generate inline SVG illustration (400×300).
  3. voxflow say "page text" --voice v-female-R2s4N9qJ --speed 0.85 -o /tmp/page_N.mp3
  4. Read mp3 files, base64-encode, embed inline in HTML.
  5. Output a single self-contained HTML file with audio play buttons per page.
  6. open /tmp/storybook.html

Article → audio briefing

# Agent fetches the URL, summarizes, then:
voxflow say "summary text" --voice v-male-s5NqE0rZ -o /tmp/briefing.mp3

Document narration

voxflow narrate --input README.md --voice v-female-R2s4N9qJ --speed 0.9 -o /tmp/readme.mp3

Git daily report audio

  1. git log --oneline --since="1 day ago"
  2. Agent summarizes.
  3. voxflow say "today's summary..." -o /tmp/daily.mp3

Mock interview

  1. Agent generates 3 interview questions on the topic.
  2. For each: voxflow say "question N..." --voice v-male-Bk7vD3xP -o /tmp/q_N.mp3
  3. Play sequentially.

Prerequisites

  • Node.js ^20.19.0 || >=22.12.0
  • voxflow CLI ≥ 1.12.0 (for voxflow voices --mine — lists the user's cloned voices)
  • ffmpeg — only for video-related commands (see voxflow:video, voxflow:transcribe)
  • Login required for any API call — voxflow login

How the auto-upgrade signal works

The CLI itself emits <voxflow-hint type="cli-outdated" ...> on stderr whenever a newer version is on npm. The top-of-skill <CRITICAL-AUTO-UPGRADE> rule already covers what to do — this section is just the reference for what the tag looks like:

<voxflow-hint v="1" type="cli-outdated" current="1.10.21" latest="1.13.0" action="voxflow upgrade -y" />

Emitted at most once per 24h (cached in ~/.config/voxflow/update-check.json). Opt out for users who don't want the check: VOXFLOW_NO_UPDATE_CHECK=1 (or NO_UPDATE_NOTIFIER=1, the industry-standard env).

You can also poll explicitly with voxflow upgrade --check (no side effects) if the user is on a known-old version and you want to verify before kicking off expensive work.

Feedback & support (AI can do this automatically)

When a voxflow command fails or the user asks to report a problem, you (the AI agent) should file the issue directly — don't ask the user to do it manually.

AI workflow

# Submit directly — no browser, no TTY required.
# Uses `gh` CLI if available (direct GitHub issue creation).
# Falls back to printing the pre-filled URL if gh is not installed.
voxflow feedback --bug \
  --title "asr crashes on 2-hour wav files" \
  --body "Error: timeout after 30s\n\nCommand: voxflow asr long.wav\nExpected: transcript\nActual: Fatal error: request timeout"
# stdout → the created GitHub issue URL  (or a pre-filled URL if gh is not installed)

System info (CLI version, OS, Node) is appended to the body automatically.

Flags

FlagDescription
--bug / --feature / --generalIssue type
--title <text>Title — triggers non-interactive mode
--body <text>Description body
--print-urlForce URL output instead of submitting (even if gh is available)

User-initiated (interactive)

voxflow feedback          # interactive prompts → submit via gh or browser
voxflow feedback --bug    # skip type prompt, rest is interactive

When to file automatically

  • Any CLI command exits with a fatal/unexpected error → offer to file a bug
  • User says "这个不好用" / "report this" / "提个 issue" → call with --title and submit directly

Installing third-party voices or templates (add)

voxflow add <recipe-name>                  # install a voice preset or pipeline template
voxflow add --list                         # browse available recipes
voxflow add chico/my-recipe --force        # install from a custom author namespace

Use this when the user asks to install a specific named recipe (e.g. dub-anime-jp-zh). The registry is currently limited — if --list returns 404, the recipe may need to be referenced by full URL or the registry is not yet public.

Rules

  1. Search voices before use — never invent voice IDs. Always run voxflow voices first.
  2. Check quota before podcasts (~5K), picstory (~3K), or batched jobs: voxflow status.
  3. Auto-play after synthesis: open output.mp3 (macOS) / xdg-open (Linux).
  4. Never print tokens or secrets to logs.
  5. If a command fails, run voxflow <cmd> --help to confirm flags before retry.

When to switch skills

  • User says "podcast" / "对话" / "多人对谈" → load voxflow:podcast.
  • User says "short video" / "知识卡片" / "小红书" / "TikTok" / "AI clip" / "render" → load voxflow:video.
  • User says "Slice" / "切片视频" / "文章转视频" / "PaperSlide" / "paperslide" / "paper-slide" (legacy) / "纸面手绘风" / "文章转知识短视频" / "知乎长文转视频" / "公众号转视频" → load voxflow:slice.
  • User says "transcribe" / "字幕" / "dub" / "translate this video" / "SRT" → load voxflow:transcribe.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

VoxFlowStudio/skills

Use when the user wants to turn text content into a set of polished, shareable visual CARD IMAGES or narrated card VIDEOS — knowledge cards, quote cards, 小红书图文, carousel cards, poster cards — rendered as HTML/CSS and exported via Playwright at ratios like 1:1 / 3:4 / 9:16; optionally produces a narrated MP4 video from those cards via `voxflow card render` (per-card TTS + FFmpeg static-image clips with optional subtitle bar / intro+outro cards / BGM mix). Triggers: card / 卡片 / 知识卡 / 文字卡片 / 金句卡 / 图文卡片 / 卡片生成 / make cards / card video / 卡片视频. For article → Slice-themed card VIDEO use voxflow:slice; for short videos / AI clips use voxflow:video; for podcasts use voxflow:podcast.

VoxFlowStudio/skills

Use when the user wants to turn a long article / note / report into a vertical 1080×1920 card video — VoxFlow Slice. 13 themes — paper-slide (纸面), editorial-mag (编辑刊), bold-poster (大字海报), notion-card (Notion 卡), brutalist (粗野), glass-dark (玻璃夜), editorial-stencil (编辑·海报), broadsheet (财经刊), blueprint (蓝晒图), daisy-pastel (雏菊), showa-catalog (昭和目录), photo-feature (摄影刊), atmospheric (深夜刊). Triggers — Slice / slice video / 切片视频 / 文章转视频 / 知识卡片视频 / 抖音知识号 / 小红书图文转视频 / 知乎长文转视频 / 公众号转视频 / PaperSlide / paperslide / paper-slide (legacy name).

VoxFlowStudio/skills

Use when the user wants AI-generated short-form video — knowledge cards (picstory / 小红书 / TikTok / Reels), narrated explainers, presentations, AI clips, or slides — covering picstory, present, slides, explain, and image generation. For article-to-card reels (Slice — 13 themes including paper-slide), use voxflow:slice. For shareable HTML/CSS card images or narrated card MP4 videos (`voxflow card render`) use voxflow:card.

相关技能