tools-narration
Narrate slides, lessons and videos in the member's own voice (their ElevenLabs clone or a voice they chose) on their own ElevenLabs account, as one continuous take cut at aligned slide boundaries. Use for "narrate this deck", "voiceover", "read this in my voice", "clone my voice", or uneven per-slide audio.
- License 许可
- MIT
- 最近更新
- 2026-11-06
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- tools-narration
- description
- Narrate slides, lessons and videos in the member's own voice (their ElevenLabs clone or a voice they chose) on their own ElevenLabs account, as one continuous take cut at aligned slide boundaries. Use for "narrate this deck", "voiceover", "read this in my voice", "clone my voice", or uneven per-slide audio.
03 SKILL.md 正文
Narration in your own voice
The member uses their own ElevenLabs account and their own voice. This skill is how we narrate: the whole script in ONE take, then cut per slide at the boundaries ElevenLabs' own timings give, levelled once. Separate takes per slide drift in tone and volume even with identical settings, and listeners hear it.
The command
Claude Code: "${CLAUDE_PLUGIN_ROOT}/bin/tools-narration". Codex and Cursor: tools-narration (in ~/.local/bin).
| Command | Cost | What it does |
|---|---|---|
doctor |
free | ffmpeg, the key (never shown) and the voice id. |
account |
free | Plan and characters used. Check before a long take. |
voices [--search name] |
free | Voices on their account, with ids. |
clone "<name>" <recordings...> --consent |
plan | Instant clone of THEIR OWN voice from their recordings. |
plan slides.json --out script.txt |
free | Joins the notes into the one script. They read it before paying. |
narrate slides.json --out <folder> --yes |
paid, one request | One take with timings, then one clip per slide and a manifest. |
split --slides --take --alignment --out |
free | Cuts an existing take again, without paying twice. |
say "text" -o line.mp3 |
paid | One short line. |
sample <folder> |
free | Three fictional Acme Studio slides, a tone take and its timings, to practise the cut. |
slides.json is a list in slide order: [{"title": "...", "notes": ["what is said", "..."]}].
Setup (once)
doctor. Install ffmpeg if missing (brew install ffmpegon a Mac).- Key: Claude Code
/plugin, tools-narration, Configure. Codex and Cursorexport ELEVENLABS_API_KEY=.... Never in a chat or a project file. - Voice: their own clone (
clonewith two or three clean minutes of their own speech, no music, then--consent), or a voice from their library. Save the id as "Your ElevenLabs voice id" (orELEVENLABS_VOICE_ID). Clone only the member's own voice, or one whose owner gave written consent.
The method
- Script first, in their words. If the member has a voice skill (
tools-voice), the script goes through it. Spell numbers and names the way they say them. - Plan.
plan slides.json --out script_v1.txt. Show the character count and ask them to read the script once. - One take.
narrate slides.json --out narration_v1 --yesonly after they say go. It is one paid request. Never retry a failed paid call blindly: check the folder andaccountfirst, so they never pay twice. - Check. The manifest lists every clip with its start, end and length. They listen to the first, a middle and the last clip. A voice that sounds right is their judgement, not a number.
- Fix without paying again. A cut in the wrong place: fix the slide notes to match what was said, then
split. A wrong word: change that slide's notes and narrate a new version. - Use it. One MP3 per slide. Never put the API key in a page or a deck.
Scripts over about 9,500 characters are refused as one take: split the deck into chapters and narrate each as one take.
Rules
- The member's voice and account only. Never use or copy anyone else's voice id.
- Paid commands wait for the member's explicit go (
--yes). - Keep the take, the timings and the manifest with the clips, versioned
_v1,_v2. Never overwrite. - Optional: ElevenLabs' own MCP server (
uvx elevenlabs-mcp, with the member's key) gives agents its full toolset. This pack does not need it.
04 同仓库更多 Skills
your-voice
Help them build THEIR voice skill from their recordings and line edits. Use when they type /your-voice. Never install daniel-voice.
your-ops
Help them componentize THEIR invoice or ops template from a real document they sent. Use when they type /your-ops. Never ship NavAIgate letterhead or KG register facts.
your-brain
Help them start THEIR memory and keep it in step across machines. Use when they type /your-brain. Never install brain-sync or turso-search.
writing-style
Scrub AI slop from prose they are about to ship. Use when they type /writing-style, or when they ask to de-slop a draft. Voice itself is /your-voice — this skill is the editor.
web-scrape
Search the web semantically and pull clean content from pages, including JavaScript-heavy ones. Use whenever you need live web data during a task: finding docs, API references, code examples, articles, papers, or current info (Exa semantic search), or extracting the readable content of a specific URL — especially a JS-rendered, dynamic, or paywalled-by-script page a plain fetch returns empty (Firecrawl). Trigger even when the tools aren't named: "scrape this page", "search the web for", "pull the content from this URL", "find docs/articles about", "extract data from this site", "what does this page say", "research X online", "get me the latest on". Also bundles source clients — keyless Reddit (practitioner sentiment), Academic (OpenAlex papers + Unpaywall free PDFs, citations), Substack (newsletters, long-form), and paid Supadata (YouTube search + multi-platform transcripts) — plus a multi-source deep-research method: reach here for "what do people on Reddit say", "find research papers / citations on", "read this Substack / newsletter", "YouTube transcript", "video transcript", or "do a rigorous deep research pass on X".
transcripts
Pull YouTube, TikTok, Instagram or file transcripts via Supadata. Use when they type /transcripts or paste a video URL and want the words.