Manim Video Production
browser-use/video-use
Produces math and technical explainer videos with Manim Community Edition: concept animations, equation derivations, algorithm walkthroughs and data stories.
Builds a narration-synced MP4 from a voiceover audio file and its SRT subtitles using HyperFrames, with scenes timed to the subtitle cues; instructions are in Chinese.
SKILL.md written in Chinese; this summary is our English description.
$ npx skills add sugarforever/01coder-agent-skills --skill producing-video -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sugarforever/01coder-agent-skills producing-video --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/sugarforever/01coder-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/producing-video .claude/skills/producing-video && 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 "producing-video" agent skill from https://github.com/sugarforever/01coder-agent-skills/tree/main/skills/producing-video into .claude/skills/producing-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "producing-video", 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/sugarforever/01coder-agent-skills/tree/main/skills/producing-videoType 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 sugarforever/01coder-agent-skills --skill producing-video -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sugarforever/01coder-agent-skills producing-video --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sugarforever/01coder-agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/producing-video .agents/skills/producing-video && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "producing-video" agent skill from https://github.com/sugarforever/01coder-agent-skills/tree/main/skills/producing-video into .agents/skills/producing-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "producing-video", 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 sugarforever/01coder-agent-skills --skill producing-video -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sugarforever/01coder-agent-skills producing-video --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sugarforever/01coder-agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/producing-video .cursor/skills/producing-video && 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 "producing-video" agent skill from https://github.com/sugarforever/01coder-agent-skills/tree/main/skills/producing-video into .cursor/skills/producing-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "producing-video", 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/sugarforever/01coder-agent-skills.git --path skills/producing-video--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 sugarforever/01coder-agent-skills --skill producing-video -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sugarforever/01coder-agent-skills producing-video --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sugarforever/01coder-agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/producing-video .gemini/skills/producing-video && 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 "producing-video" agent skill from https://github.com/sugarforever/01coder-agent-skills/tree/main/skills/producing-video into .gemini/skills/producing-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "producing-video", 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 sugarforever/01coder-agent-skills producing-videoInstalls 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 sugarforever/01coder-agent-skills --skill producing-video -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sugarforever/01coder-agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/producing-video .github/skills/producing-video && 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 "producing-video" agent skill from https://github.com/sugarforever/01coder-agent-skills/tree/main/skills/producing-video into .github/skills/producing-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "producing-video", 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 sugarforever/01coder-agent-skills --skill producing-video -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sugarforever/01coder-agent-skills producing-video --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sugarforever/01coder-agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/producing-video .opencode/skills/producing-video && 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 "producing-video" agent skill from https://github.com/sugarforever/01coder-agent-skills/tree/main/skills/producing-video into .opencode/skills/producing-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "producing-video", 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.
producing-videoBuilds a narration-synced MP4 from a voiceover audio file and its SRT subtitles using HyperFrames, with scenes timed to the subtitle cues; instructions are in Chinese.
You supply a recorded voiceover and an SRT subtitle file, and the agent turns them into a video whose visuals follow the voice. Audio and SRT are the only source of truth: on-screen content comes from the subtitle text, scene timing comes from the cue timestamps, and the audio goes into the HyperFrames composition as an audio clip so it is mixed in during render, with no separate step of adding sound afterward. The instructions are written in Chinese.
The workflow starts with a pre-flight check using npx hyperframes doctor, which needs Node 22 or newer, FFmpeg and Chrome. The agent then picks a visual style, either a series brand, a HyperFrames frame template or one of eight built-in styles, creates a blank project, and reads the SRT, using the bundled srt-cues.mjs script to list each cue's start time. Cues are grouped into scenes of about 30 seconds, so a 6 to 7 minute piece comes to roughly 12 to 16 scenes.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e51fb6e. 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.
Ships 1 file in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
npxcurlffmpegFrom 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:
hyperframes.devcdn.jsdelivr.netFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Audio and SRT to Narrated Video loads about 1.9k tokens when it runs. Until then it costs about 159 tokens; SKILL.md has 466 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 found no risky patterns in SKILL.md.
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); the scripts in this folder are not scanned.
The full file from sugarforever/01coder-agent-skills at commit e51fb6e, republished under its MIT licence (© sugarforever). 466 words, ~1,855 tokens.
.claude/skills/producing-video/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.把"用户已经录好的口播音频 + SRT 字幕"做成一条画面跟着声音走的 MP4。用 HyperFrames(HTML 即视频)出片。
铁律:音频和 SRT 是唯一事实源。 画面的内容来自 SRT,画面的时间轴来自 SRT 的 cue 时间戳,音频作为一个 <audio> clip 直接挂进合成里、渲染时自动合流 —— 没有"先出视频再合音频"这一步。
| 谁 | 做什么 |
|---|---|
| 用户 | 写稿 → 录音/合成音频 → 生成 SRT → 把 audio.mp3 + audio.srt 交给你 |
| 本 skill(你) | 选 frame/品牌 → 按 SRT 搭 HyperFrames 合成 → 校对 → 渲染成片 |
用户不指望你生成配音(那是上游)。如果用户还没有音频、问的是"怎么配音",那不是本 skill —— TTS / 声音克隆是另一条线(见下方"超出范围")。
npx hyperframes doctor # 需要 Node ≥ 22 · FFmpeg · Chrome需要 hyperframes / hyperframes-cli 两个 skill 在场(编写合成 + 跑 CLI)。缺了就让用户 npx hyperframes skills 安装后重来。
确认用户给了两个文件:音频(mp3/wav/m4a)+ SRT。只给音频没给 SRT → 本 skill 需要 SRT 拿时间轴;可让用户补 SRT(很多录音工具/剪辑软件能导出),不要默认去跑 Whisper 转写(用户没给 SRT 往往是有意的,先问)。
画面的风格 = 一个 frame.md / visual-style / 既有系列品牌。三种来源,按情况选:
creative-mode / biennale-yellow / cobalt-grid。取 token:curl -sSL https://www.hyperframes.dev/design/<slug>.md (站点是 JS 渲染,多半取不到正文);open-design 仓库里找 design-templates/*<slug>*/template.json,里面有精确的 palette / typography(hex + 字体名)。hyperframes skill 的 visual-styles.md 里,直接抄 YAML token。字体一律本地 woff2(见 Gotcha "字体")。中文必须配 Noto Sans SC(400/500/700/900 视用量);英文 display 按 frame 选(Archivo Black / Manrope / Oswald…);标签数字常用 JetBrains Mono。从 fontsource CDN 下到项目的 fonts/:
curl -sSL -o fonts/<name>.woff2 "https://cdn.jsdelivr.net/fontsource/fonts/<family>@latest/<subset>-<weight>-normal.woff2"
# 中文:subset 用 chinese-simplified;拉丁:latincd <repo>/studio/videos # 仓库约定:成片放这里
npx hyperframes init <YYYYMMDD-slug> --example blank --non-interactive
cd <YYYYMMDD-slug> && mkdir -p fonts audio
cp <user-audio> audio/narration-full.mp3
cp <user-srt> audio/narration.srt读完整 SRT(scripts/srt-cues.mjs 可打印每条 cue 的开始秒数 + 文本,方便规划)。然后:
把场景开始时间放进一个 JS 数组
const B = [...],所有 tween 用B[i-1] + 局部偏移定位。日后微调时间轴只改数组,不用逐条改 tween。
#root,不是 clip),整片不动 —— 营造"节目"感。<audio id="vo" src="audio/narration-full.mp3" data-start="0" data-duration="<总时长>" data-track-index="20" data-volume="1"></audio>class="clip";给它独立的 data-track-index。.scene.clip,各自独立 data-track-index(重叠的 wipe 需要不同 track),z-index 递增(后面的盖前面的)。function wipe(sel, at){ tl.fromTo(sel,{clipPath:"inset(0 100% 0 0)"},{clipPath:"inset(0 0% 0 0)",duration:0.5,ease:"power3.inOut"}, at); }gsap.from(),定位在对应 cue 时间。短(0.3–0.7s),错峰,变化 ease。npx hyperframes lint # 0 error 才继续(var(--x) 字体告警是误报,可忽略)
npx hyperframes validate # WCAG AA 对比度;改掉过暗的次级灰
npx hyperframes inspect --samples 30 # 版面溢出,带时间戳;场景多就多采样装饰元素故意出血到画外 → 标 data-layout-ignore。真实溢出 → 改容器/字号/padding。
ffmpeg 抽几帧验证同步:在"你知道这一刻在讲什么"的时间点抽帧,确认画面对得上。ffmpeg -y -ss <秒> -i renders/x.mp4 -frames:v 1 /tmp/f.png # 然后看图npx hyperframes render --resolution landscape-4k --quality high --output renders/<slug>-4k.mp4--resolution landscape-4k 是把同一合成按 2× DPR 真·超采样到 3840×2160(不是放大);4K master 即使观众看 1080p 也更耐平台二压。4K + 长片渲染较久(几分钟到十几分钟),可后台跑。ffprobe 确认有 video(h264) + audio(aac) 两条轨且时长对得上;抽帧确认每场落在它的 cue 上。成片留在 studio/videos/<slug>/renders/。不要自动提交(除非用户明确要)。
这些是踩过的坑,违反任何一条都会出废片:
.pad 容器套整体 opacity 的 "pushIn" 包装。容器级 opacity 动画在 seek 渲染里可能留在 0,把整场变黑。用每个元素各自的 gsap.from()。overwrite:"auto"。它会把配对的另一条 tween 杀掉(比如"扫入"在、"扫出"没了)。lint 的 overlapping_gsap_tweens 是无害告警,宁可留着。<link> 会被 lint 标记、且 sandbox 渲染里不可靠。中文配 Noto Sans SC;中文字在彩色 accent 色块里要给足竖直 padding/line-height(CJK 字形比 em 框高,padding 太紧 inspect 会报 text_box_overflow,给到 ~0.2em 竖直 padding + line-height ~1.12)。Date.now() / Math.random()(破坏可复现渲染);要随机用种子化 PRNG。data-layout-ignore。--resolution landscape-4k --quality high。场景[i].start = cue[第一条].start (秒)
场景[i].duration = 场景[i+1].start − 场景[i].start + 0.5 (末场到音频末尾)
场景内某元素入场 = 它对应 cue 的 start
音频 clip = data-start=0, data-duration=总时长
root data-duration = 音频末句之后留 ~3s 收尾JS 里:
const B = [0, 38.63, 53.96, /* ...每场 start... */]; // 从 SRT 量
const at = (i, off) => B[i-1] + off; // i 是 1-based 场号
function wipe(sel, i){ tl.fromTo(sel, {clipPath:"inset(0 100% 0 0)"}, {clipPath:"inset(0 0% 0 0)", duration:0.5, ease:"power3.inOut"}, B[i-1]); }zh、espeak 要 cmn,且质量差);本机临时方案 macOS say -v Tingting。lint 0 error · validate 全过 · inspect 0 issueffprobe:video + audio 两轨、时长 = 音频时长studio/videos/<slug>/renders/,未自动提交© sugarforever, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in skills/producing-video of sugarforever/01coder-agent-skills.
Open the folder on GitHubat commit e51fb6e
Audio and SRT to Narrated Video 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 |
|---|---|---|---|---|---|---|
| Audio and SRT to Narrated Video this skillsugarforever/01coder-agent-skills | 137 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Manim Video Productionbrowser-use/video-use | 28k | 6 repos | ~3k | Automated safety check: Pass | MIT | |
| Embedded Video Captionsheygen-com/hyperframes | 59k | 3 repos | ~8.6k | Automated safety check: Pass | Apache-2.0 | |
| HyperFrames Video Entry Pointheygen-com/hyperframes | 59k | 3 repos | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Painted Animationtuzhechen2005/opus-video-skills | 137 | 1 repos | ~1.9k | Automated safety check: Pass | Custom licence | |
| HyperFrames Video Compositionsspinabot/brigade | 11k | — | ~1.6k | Automated safety check: Pass | MIT |
browser-use/video-use
Produces math and technical explainer videos with Manim Community Edition: concept animations, equation derivations, algorithm walkthroughs and data stories.
heygen-com/hyperframes
Adds captions to a single-subject talking-head video without editing the footage, from plain subtitles to cinematic text placed behind the speaker.
heygen-com/hyperframes
Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.
tuzhechen2005/opus-video-skills
Make hand-painted watercolour-and-ink cartoon videos (MP4) with code — p5.js + p5.brush rendered frame by frame in headless Chrome, encoded with ffmpeg — starring Clawd or any character.
spinabot/brigade
Writes HTML compositions with a GSAP timeline that the render_video tool turns into deterministic MP4 videos from data, text or layouts.
Pluviobyte/video-production-skills
Create reusable black-background white-text opening animations for new videos.
sugarforever/01coder-agent-skills
Designs typography-driven video covers and thumbnails in HTML/CSS and screenshots them with Chrome DevTools at 16:9, 16:10, 9:16 and 3:4.
sugarforever/01coder-agent-skills
Reviews one finished Claude Code session from its exported markdown and decides whether a skill is worth creating, updating or reusing for similar work.
sugarforever/01coder-agent-skills
Fixes speech-recognition mistakes in .srt subtitle files, in Chinese or English, using terms you supply and leaving every timestamp untouched.
sugarforever/01coder-agent-skills
Lists Claude Code session transcripts and exports them to organized Markdown with a digest, a clean conversation and linked tool-call details.
sugarforever/01coder-agent-skills
Lists, filters and exports local Codex session transcripts to organized Markdown with a digest, timeline and tool-call details, in full or pick-one mode.
sugarforever/01coder-agent-skills
Converts Mermaid diagrams and markdown tables into PNG images through a hosted rendering API, for platforms without rich formatting.
Works with
Categories
Builds a narration-synced MP4 from a voiceover audio file and its SRT subtitles using HyperFrames, with scenes timed to the subtitle cues; instructions are in Chinese. You supply a recorded voiceover and an SRT subtitle file, and the agent turns them into a video whose visuals follow the voice. Audio and SRT are the only source of truth: on-screen content comes from the subtitle text, scene timing comes from the cue timestamps, and the audio goes into the HyperFrames composition as an audio clip so it is mixed in during render, with no separate step of adding sound afterward.
Audio and SRT to Narrated Video fits situations like: turning a recorded narration plus an SRT file into a finished video; making a daily or series explainer whose visuals follow the voiceover; reusing a series brand's colors and fonts for a new narrated video.
Run `npx skills add sugarforever/01coder-agent-skills --skill producing-video -a claude-code`. Or copy the skill folder (skills/producing-video in sugarforever/01coder-agent-skills) into .claude/skills/producing-video in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sugarforever/01coder-agent-skills --skill producing-video -a codex`. Or copy the skill folder (skills/producing-video in sugarforever/01coder-agent-skills) into .agents/skills/producing-video 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 sugarforever/01coder-agent-skills --skill producing-video -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/producing-video, .gemini/skills/producing-video, .github/skills/producing-video and .opencode/skills/producing-video in your project.
Going by SKILL.md and its folder, Audio and SRT to Narrated Video needs JavaScript for the scripts in its folder and the command-line tools its instructions call (npx, curl and ffmpeg). Our summary lists: Node.js 22 or newer; FFmpeg; Chrome; The hyperframes and hyperframes-cli skills; A voiceover audio file and an SRT subtitle file.
SKILL.md names 2 domains. In commands or code: hyperframes.dev and cdn.jsdelivr.net; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Audio and SRT to Narrated Video is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.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 Audio and SRT to Narrated Video: Manim Video Production (browser-use/video-use, 28k stars), Embedded Video Captions (heygen-com/hyperframes, 59k stars), HyperFrames Video Entry Point (heygen-com/hyperframes, 59k stars) and Painted Animation (tuzhechen2005/opus-video-skills, 137 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sugarforever (a GitHub user) maintains it in sugarforever/01coder-agent-skills, which has 137 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on June 19, 2026.
Source: sugarforever/01coder-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.