Beat Sync Montage
0xsline/OpenChatCut
Plan and build a finished beat-synced montage where cut placement serves the content, not just the metronome.
音乐卡点视频 / 踩点视频:检测背景音乐的节拍,让图片或片段在节拍点上切换,配推进/白闪特效,做出燃系'卡点'短视频。当用户说 卡点视频、踩点视频、音乐卡点、节奏卡点、按音乐切换、鼓点视频、踩节奏、beat 卡点、图片卡点、卡点混剪 时使用。基于 shared/scripts/beatsync.py(librosa 节拍检测)。与 slideshow-video 区别:slideshow…
$ npx skills add ZJU-REAL/Easel --skill beat-sync-video -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ZJU-REAL/Easel beat-sync-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/ZJU-REAL/Easel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/openclaw/beat-sync-video .claude/skills/beat-sync-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 "beat-sync-video" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/beat-sync-video into .claude/skills/beat-sync-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beat-sync-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/ZJU-REAL/Easel/tree/main/skills/openclaw/beat-sync-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 ZJU-REAL/Easel --skill beat-sync-video -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ZJU-REAL/Easel beat-sync-video --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZJU-REAL/Easel.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/openclaw/beat-sync-video .agents/skills/beat-sync-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 "beat-sync-video" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/beat-sync-video into .agents/skills/beat-sync-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beat-sync-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 ZJU-REAL/Easel --skill beat-sync-video -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ZJU-REAL/Easel beat-sync-video --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZJU-REAL/Easel.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/openclaw/beat-sync-video .cursor/skills/beat-sync-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 "beat-sync-video" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/beat-sync-video into .cursor/skills/beat-sync-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beat-sync-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/ZJU-REAL/Easel.git --path skills/openclaw/beat-sync-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 ZJU-REAL/Easel --skill beat-sync-video -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ZJU-REAL/Easel beat-sync-video --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZJU-REAL/Easel.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/openclaw/beat-sync-video .gemini/skills/beat-sync-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 "beat-sync-video" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/beat-sync-video into .gemini/skills/beat-sync-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beat-sync-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 ZJU-REAL/Easel beat-sync-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 ZJU-REAL/Easel --skill beat-sync-video -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ZJU-REAL/Easel.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/openclaw/beat-sync-video .github/skills/beat-sync-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 "beat-sync-video" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/beat-sync-video into .github/skills/beat-sync-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beat-sync-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 ZJU-REAL/Easel --skill beat-sync-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 ZJU-REAL/Easel beat-sync-video --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZJU-REAL/Easel.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/openclaw/beat-sync-video .opencode/skills/beat-sync-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 "beat-sync-video" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/beat-sync-video into .opencode/skills/beat-sync-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beat-sync-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.
beat-sync-video音乐卡点视频 / 踩点视频:检测背景音乐的节拍,让图片或片段在节拍点上切换,配推进/白闪特效,做出燃系'卡点'短视频。当用户说 卡点视频、踩点视频、音乐卡点、节奏卡点、按音乐切换、鼓点视频、踩节奏、beat 卡点、图片卡点、卡点混剪 时使用。基于 shared/scripts/beatsync.py(librosa 节拍检测)。与 slideshow-video 区别:slideshow…
Beat Sync Video is an agent skill from ZJU-REAL/Easel. 音乐卡点视频 / 踩点视频:检测背景音乐的节拍,让图片或片段在节拍点上切换,配推进/白闪特效,做出燃系'卡点'短视频。当用户说 卡点视频、踩点视频、音乐卡点、节奏卡点、按音乐切换、鼓点视频、踩节奏、beat 卡点、图片卡点、卡点混剪 时使用。基于 shared/scripts/beatsync.py(librosa 节拍检测)。与 slideshow-video 区别:slideshow 每图固定时长、柔和转场,本 SKILL 切换点由音乐节拍决定、硬切踩点带特效。
Its SKILL.md is about 490 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: An open-source AI agent for social media — discover trends, create content, publish everywhere, and learn what works across Xiaohongshu, Douyin, Zhihu, Bilibili, and more.🎨一个开源的… The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 278f420. 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.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Beat Sync Video loads about 492 tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 108 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); files beside SKILL.md are not scanned.
The full file from ZJU-REAL/Easel at commit 278f420, republished under its Apache-2.0 licence (© ZJU-REAL). 108 words, ~492 tokens.
.claude/skills/beat-sync-video/SKILL.md (or your agent's skills folder).用 librosa 检测背景音乐节拍,让画面在节拍上硬切换,配节拍特效,做"踩点"燃系短视频。 全部走
skills/shared/scripts/beatsync.py,不要手数节拍、手拼滤镜——脚本已做 节拍检测、区间切分、素材循环、音画对齐。
每图固定时长的柔和相册见 slideshow-video;主题→AI 配图配音成片见 auto-short-video。
| 字段 | 必填 | 说明 |
|---|---|---|
| 背景音乐 | 是 | 决定卡点的音乐文件(节奏越强效果越好;没给就问) |
| 素材 | 是 | 一组图片和/或短片段(按顺序,循环使用),或一个目录 |
| 画幅 | 是 | 用户或上游任务未明确横版/竖版(或具体分辨率)时,制作前必须追问并等确认;不得按平台、Profile 或默认值静默推断,已明确则不重复问 |
| 切换频率 | 否 | 每几拍切一次(默认每 2 拍) |
| 特效 | 否 | zoom 推进(默认)/ flash 白闪 / none |
outputs/主题名/)*.mp4)脚本路径(相对项目根):skills/shared/scripts/beatsync.py(build -h / beats -h)。
python skills/shared/scripts/beatsync.py beats --music <音乐>
# 打印 tempo(BPM) 与节拍时间点,用于判断 --every 该设多少python skills/shared/scripts/beatsync.py build \
-i 1.jpg 2.jpg 3.jpg 4.jpg --music <音乐> \
-o outputs/主题名/show.mp4 \
--size 1080x1920 --every 2 --effect zoom--every 1 每拍都切(快闪,素材要多);--every 4 每小节切一次(舒缓)。--effect flash 段首白闪更"燃";--effect none 干净硬切。--max-duration 15 限制成片长度(如做 15s 抖音)。--images-dir <目录> 批量喂素材(按文件名排序)。platforms.md 只用于给出画幅建议,仍须用户确认;卡点风格(快闪/舒缓)与特效贴合账号调性
(潮流/运动账号偏快闪 flash,生活/治愈账号偏 zoom 舒缓)。--every 1~2 让每段都换新画面。--max-duration 卡平台时长。outputs/主题名/。节拍检测用 librosa beat_track(onset 强度 + 动态规划求拍点),画面在拍点硬切是卡点混剪的
标准做法。把节拍→区间→逐段渲染→音画对齐封装成确定性脚本,避免手数拍子对不齐。
© ZJU-REAL, Apache-2.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 skills/openclaw/beat-sync-video of ZJU-REAL/Easel.
Open the folder on GitHubat commit 278f420
Beat Sync 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 |
|---|---|---|---|---|---|---|
| Beat Sync Video this skillZJU-REAL/Easel | 3.4k | — | ~492 | Automated safety check: Pass | Apache-2.0 | |
| Beat Sync Montage0xsline/OpenChatCut | 2.2k | — | ~1.2k | Automated safety check: Pass | AGPL-3.0 | |
| Beat Sync Reelgooseworks-ai/goose-skills | 1.2k | 1 repos | ~2.5k | Automated safety check: Notes | MIT | |
| React Syncvercel/next.js | 143k | — | ~486 | Automated safety check: Pass | MIT | |
| Claude-Mem Cloud Syncthedotmack/claude-mem | 99k | — | ~1k | Automated safety check: Notes | Apache-2.0 | |
| Agent Sync Coordinatorruvnet/ruflo | 74k | 2 repos | ~4k | Automated safety check: Pass | MIT |
0xsline/OpenChatCut
Plan and build a finished beat-synced montage where cut placement serves the content, not just the metronome.
gooseworks-ai/goose-skills
Generates Instagram Reels where product image cuts are synced to audio beats.
vercel/next.js
Build local React changes in the bundle variants consumed by Next.js, sync them into a local Next.js checkout, and test the resulting integration.
thedotmack/claude-mem
Checks claude-mem cloud sync status and guides you through connecting a cmem.ai Pro account without the sync token ever passing through the chat.
ruvnet/ruflo
Agent skill for sync-coordinator - invoke with $agent-sync-coordinator
ClickHouse/ClickHouse
Fix the "CH Inc sync" job in a pull request. An agent skill from ClickHouse/ClickHouse.
ZJU-REAL/Easel
微信公众号文章排版引擎:把 Markdown / Word(.docx) / PDF / 纯文本转成可直接粘贴进公众号编辑器的 HTML,自动章节编号、关键词标记、引言卡、目录、代码块、图片/GIF、作者签名;主题从 references/theme-index.md…
ZJU-REAL/Easel
微信公众号文章自动创作与发布工具。给定参考文章、文字或文档,自动搜索整理全网相关信息、生成图文并茂的公众号文章,并发布到微信公众号草稿箱。特别强调反 AI 检测写作。
ZJU-REAL/Easel
社媒卡片视觉设计系统:提供配色、中文字体层级、满画幅布局、品类骨架和死空白/密度质检,避免模板化 PPT 与廉价 AI 感。
ZJU-REAL/Easel
生成电商商品视觉方案:主图概念、场景图、详情页视觉方向和 AI 生图 Prompt. An agent skill from ZJU-REAL/Easel.
ZJU-REAL/Easel
将数据或文字内容转化为可视化信息图,支持静态(AntV)和动画 GIF 两种模式。当用户需要制作信息图、数据可视化、流程图、对比图、动画图表、GIF 图表、思维导图、SWOT 分析图时调用。本地渲染信息图/GIF 动画;要单张静态图片 URL 用 chart-visualization,要 CSV/JSON→整页报告用 data-report
ZJU-REAL/Easel
长篇小说/网文连载创作:从世界观、人设和三级大纲写到逐章正文,并用文件化状态维护伏笔、前情和跨章一致性. An agent skill from ZJU-REAL/Easel.
音乐卡点视频 / 踩点视频:检测背景音乐的节拍,让图片或片段在节拍点上切换,配推进/白闪特效,做出燃系'卡点'短视频。当用户说 卡点视频、踩点视频、音乐卡点、节奏卡点、按音乐切换、鼓点视频、踩节奏、beat 卡点、图片卡点、卡点混剪 时使用。基于 shared/scripts/beatsync.py(librosa 节拍检测)。与 slideshow-video 区别:slideshow…. Beat Sync Video is an agent skill from ZJU-REAL/Easel.
Run `npx skills add ZJU-REAL/Easel --skill beat-sync-video -a claude-code`. Or copy the skill folder (skills/openclaw/beat-sync-video in ZJU-REAL/Easel) into .claude/skills/beat-sync-video in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ZJU-REAL/Easel --skill beat-sync-video -a codex`. Or copy the skill folder (skills/openclaw/beat-sync-video in ZJU-REAL/Easel) into .agents/skills/beat-sync-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 ZJU-REAL/Easel --skill beat-sync-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/beat-sync-video, .gemini/skills/beat-sync-video, .github/skills/beat-sync-video and .opencode/skills/beat-sync-video in your project.
Going by SKILL.md and its folder, Beat Sync Video needs the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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. Review the folder before installing.
Beat Sync Video is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 492 tokens (SKILL.md is roughly 2k 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 Beat Sync Video: Beat Sync Montage (0xsline/OpenChatCut, 2.2k stars), Beat Sync Reel (gooseworks-ai/goose-skills, 1.2k stars), React Sync (vercel/next.js, 143k stars) and Claude-Mem Cloud Sync (thedotmack/claude-mem, 99k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ZJU-REAL (a GitHub organization) maintains it in ZJU-REAL/Easel, which has 3,376 GitHub stars. The repository holds 114 skills in this directory. The repository was last updated on October 9, 2026.
Source: ZJU-REAL/Easel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.