MoneyPrinterTurbo Video Generator
harry0703/MoneyPrinterTurbo
Installs and runs MoneyPrinterTurbo to turn a topic or script into a finished short video with voice-over, subtitles, stock footage and music.
Generate expressive, multilingual narration with fish.audio (S1 / S2-generation models) and reuse cloned voices via referenceid.
$ npx skills add calesthio/OpenMontage --skill fish-audio-tts -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install calesthio/OpenMontage fish-audio-tts --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/calesthio/OpenMontage.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/fish-audio-tts .claude/skills/fish-audio-tts && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "fish-audio-tts" agent skill from https://github.com/calesthio/OpenMontage/tree/main/.agents/skills/fish-audio-tts into .claude/skills/fish-audio-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fish-audio-tts", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/calesthio/OpenMontage/tree/main/.agents/skills/fish-audio-ttsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add calesthio/OpenMontage --skill fish-audio-tts -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install calesthio/OpenMontage fish-audio-tts --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/calesthio/OpenMontage.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/fish-audio-tts .agents/skills/fish-audio-tts && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fish-audio-tts" agent skill from https://github.com/calesthio/OpenMontage/tree/main/.agents/skills/fish-audio-tts into .agents/skills/fish-audio-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fish-audio-tts", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add calesthio/OpenMontage --skill fish-audio-tts -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install calesthio/OpenMontage fish-audio-tts --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/calesthio/OpenMontage.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/fish-audio-tts .cursor/skills/fish-audio-tts && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "fish-audio-tts" agent skill from https://github.com/calesthio/OpenMontage/tree/main/.agents/skills/fish-audio-tts into .cursor/skills/fish-audio-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fish-audio-tts", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/calesthio/OpenMontage.git --path .agents/skills/fish-audio-tts--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add calesthio/OpenMontage --skill fish-audio-tts -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install calesthio/OpenMontage fish-audio-tts --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/calesthio/OpenMontage.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/fish-audio-tts .gemini/skills/fish-audio-tts && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "fish-audio-tts" agent skill from https://github.com/calesthio/OpenMontage/tree/main/.agents/skills/fish-audio-tts into .gemini/skills/fish-audio-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fish-audio-tts", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install calesthio/OpenMontage fish-audio-ttsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add calesthio/OpenMontage --skill fish-audio-tts -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/calesthio/OpenMontage.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/fish-audio-tts .github/skills/fish-audio-tts && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "fish-audio-tts" agent skill from https://github.com/calesthio/OpenMontage/tree/main/.agents/skills/fish-audio-tts into .github/skills/fish-audio-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fish-audio-tts", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add calesthio/OpenMontage --skill fish-audio-tts -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install calesthio/OpenMontage fish-audio-tts --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/calesthio/OpenMontage.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/fish-audio-tts .opencode/skills/fish-audio-tts && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "fish-audio-tts" agent skill from https://github.com/calesthio/OpenMontage/tree/main/.agents/skills/fish-audio-tts into .opencode/skills/fish-audio-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fish-audio-tts", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
fish-audio-ttsGenerate expressive, multilingual narration with fish.audio (S1 / S2-generation models) and reuse cloned voices via referenceid.
Fish Audio Tts is an agent skill from calesthio/OpenMontage. Generate expressive, multilingual narration with fish.audio (S1 / S2-generation models) and reuse cloned voices via referenceid. Use when the user prefers fish.audio/Fish Audio TTS, wants a specific playground voice model, or needs high-emotion voice-clone narration.
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Media & Creative, covering Text to speech and voice. The repository describes itself as: World's first open-source, agentic video production system. 12 production pipelines, 100+ tools, 700+ agent skill and production-knowledge files. Turn your AI coding assistant… The licence is AGPL-3.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 9327439. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.fish.audioAlso links to:
fish.audiodocs.fish.audioFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
FISH_AUDIO_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Fish Audio Tts loads about 1.4k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 574 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
Requires `FISH_AUDIO_API_KEY` in `.env` (create one at https://fish.audio/go-api/api-keys/).Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from calesthio/OpenMontage at commit 9327439, republished under its AGPL-3.0 licence (© calesthio). 574 words, ~1,361 tokens.
.claude/skills/fish-audio-tts/SKILL.md (or your agent's skills folder).Requires FISH_AUDIO_API_KEY in .env (create one at https://fish.audio/go-api/api-keys/).
Create voice models in the fish.audio playground and pass their id as reference_id to reuse a cloned voice.
Single synchronous call returning raw audio bytes:
POST https://api.fish.audio/v1/tts
Authorization: Bearer ${FISH_AUDIO_API_KEY}
Content-Type: application/json
model: <backend model> # HTTP header selects the backend, e.g. s1The backend model is chosen with the model HTTP header, not a body field. In OpenMontage this maps to the tool's model input.
model is required — there is no default. Pass one of:
s2.1-pro — latest generation. Best quality: inline emotion tags, 80+ languages, multi-speaker. Hero narration.s2.1-pro-free — promotional free access to s2.1-pro. Drafts, samples, and validation runs at $0 during the promo window only. Per the fish.audio announcement: free through August 31, 2026, subject to Fair Use, no SLA/latency guarantee, requests may be retained, and commercial use is restricted. Never route production or client narration through it.s2-pro — first S2 generation. Stable high quality with emotion-tag support.s1 — previous flagship. Kept for compatibility with existing integrations.Billing is per UTF-8 byte of input text (not per character). CJK text and emoji cost 3-4x an ASCII character of the same visible length. Current list pricing: s1 / s2-pro / s2.1-pro = $15 per 1M bytes, s2.1-pro-free = $0 during the promo window only (the tool's estimate_cost() switches to the paid s2.1-pro rate after August 31, 2026). Verify current pricing at https://docs.fish.audio/developer-guide/models-pricing/pricing-and-rate-limits before large batches.
s2-pro / s2.1-pro / s2.1-pro-free interpret inline emotion tags embedded in the text:
[laugh], [whispers] change the delivery mid-sentence."That's hilarious [laugh] but let me explain seriously."s1 does not interpret emotion tags — they may be read out as plain text, so strip them when targeting s1.reference_id. The selector's generic voice_id is accepted as an alias when reference_id is absent.reference_id, fish.audio uses its default voice for the chosen model.Inline on-the-fly cloning (uploading reference audio + text per request) is not supported by this tool — create a voice model in the playground first.
Generate with the TTS selector:
from tools.audio.tts_selector import TTSSelector
result = TTSSelector().execute({
"preferred_provider": "fish_audio",
"text": "Here's why compound interest quietly beats every get-rich-quick scheme.",
"model": "s1",
"reference_id": "<playground voice model id>",
"output_path": "projects/my-video/assets/audio/narration.mp3",
})Or call the provider directly:
from tools.audio.fish_audio_tts import FishAudioTTS
result = FishAudioTTS().execute({
"text": "Short sample line for approval.",
"model": "s1",
"reference_id": "<playground voice model id>",
"output_path": "projects/my-video/assets/audio/fish_sample.mp3",
})The provider writes the audio to output_path and returns data.output plus the resolved model and reference_id.
latency: normal (default, best quality), balanced (a little faster), or low (fastest, slight quality cost).normalize: default true; keep it on so numbers, dates, and currency read naturally.prosody: optional { "speed": 1.0, "volume": 0 } to nudge pace/loudness.mp3_bitrate: 128 is a good default; raise to 192 for music-bed-heavy mixes.temperature: default 0.7. Raise toward 0.9 for more expressive reads (recommended when leaning on emotion tags); lower for a steadier, more predictable delivery.top_p / repetition_penalty: usually leave at the defaults (0.7 / 1.2).model + reference_id before a full paid narration.s2.1-pro-free (promo-window $0; non-commercial drafts only) and upgrade the final to s2.1-pro.401 Unauthorized: wrong or missing FISH_AUDIO_API_KEY.402 / payment errors: account credit exhausted.404 / bad voice: the reference_id is wrong or not owned by this account.text is non-empty and normalize is not stripping the whole input.Never print or write the API key to logs, metadata, patches, or project artifacts. .env.example should contain only empty variable names.
© calesthio, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/fish-audio-tts of calesthio/OpenMontage.
Open the folder on GitHubat commit 9327439
Fish Audio Tts next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Fish Audio Tts this skillcalesthio/OpenMontage | 66k | — | ~1.4k | Automated safety check: Notes | AGPL-3.0 | |
| MoneyPrinterTurbo Video Generatorharry0703/MoneyPrinterTurbo | 130k | — | ~2.1k | Automated safety check: Warn | MIT | |
| HyperFrames Media Useheygen-com/hyperframes | 60k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Openspec OnboardSAP/e-mobility-charging-stations-simulator | 227 | 25 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Blog AudioAgriciDaniel/claude-blog | 2.3k | 1 repos | ~2.2k | Automated safety check: Notes | MIT | |
| Musictadaspetra/loop | 296 | 2 repos | ~827 | Automated safety check: Pass | MIT |
harry0703/MoneyPrinterTurbo
Installs and runs MoneyPrinterTurbo to turn a topic or script into a finished short video with voice-over, subtitles, stock footage and music.
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
SAP/e-mobility-charging-stations-simulator
Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.
AgriciDaniel/claude-blog
Generate audio narration of blog posts using Google Gemini TTS.
tadaspetra/loop
Generate music using ElevenLabs Music API. An agent skill from tadaspetra/loop.
hoquanghai/Auto-Create-Video
Tạo video tin tức ngắn 9:16 (~60s) từ URL bài báo hoặc file .txt tiếng Việt.
calesthio/OpenMontage
Understand video content locally using ffmpeg frame extraction and Whisper transcription.
calesthio/OpenMontage
Create AI avatar videos with precise control over avatars, voices, scripts, scenes, and backgrounds using HeyGen's v2 API.
calesthio/OpenMontage
Creating interactive data visualisations using d3.js. An agent skill from calesthio/OpenMontage.
calesthio/OpenMontage
Create videos from a text prompt using HeyGen's Video Agent.
calesthio/OpenMontage
Build deterministic, editable, free-viewpoint Three.js worlds from text or structured briefs.
calesthio/OpenMontage
Edit videos locally using ffmpeg. An agent skill from calesthio/OpenMontage.
Categories
Generate expressive, multilingual narration with fish.audio (S1 / S2-generation models) and reuse cloned voices via referenceid. Fish Audio Tts is an agent skill from calesthio/OpenMontage.audio (S1 / S2-generation models) and reuse cloned voices via referenceid.
Fish Audio Tts fits situations like: the user prefers fish.audio/Fish Audio TTS; wants a specific playground voice model; needs high-emotion voice-clone narration.
Run `npx skills add calesthio/OpenMontage --skill fish-audio-tts -a claude-code`. Or copy the skill folder (.agents/skills/fish-audio-tts in calesthio/OpenMontage) into .claude/skills/fish-audio-tts in your project. Claude Code loads it when a task matches its description.
Run `npx skills add calesthio/OpenMontage --skill fish-audio-tts -a codex`. Or copy the skill folder (.agents/skills/fish-audio-tts in calesthio/OpenMontage) into .agents/skills/fish-audio-tts in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add calesthio/OpenMontage --skill fish-audio-tts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fish-audio-tts, .gemini/skills/fish-audio-tts, .github/skills/fish-audio-tts and .opencode/skills/fish-audio-tts in your project.
Going by SKILL.md and its folder, Fish Audio Tts needs credentials named FISH_AUDIO_API_KEY. Our summary lists: Python 3; A credential in FISH_AUDIO_API_KEY.
SKILL.md names 3 domains. In commands or code: api.fish.audio; the agent is likely to contact it when it follows the instructions. As links in the text: fish.audio and docs.fish.audio. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Fish Audio Tts is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Fish Audio Tts: MoneyPrinterTurbo Video Generator (harry0703/MoneyPrinterTurbo, 130k stars), HyperFrames Media Use (heygen-com/hyperframes, 60k stars), Openspec Onboard (SAP/e-mobility-charging-stations-simulator, 227 stars) and Blog Audio (AgriciDaniel/claude-blog, 2.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
calesthio (a GitHub user) maintains it in calesthio/OpenMontage, which has 65,930 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on October 3, 2026.
Source: calesthio/OpenMontage on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.