video-cut

video-cut is a skill for Claude Code from zenstory-ai/video-recap-skills. It costs 104 tokens per session (3,513 once invoked), scanned A, a copy of video-cut, MIT.

A video-editing skill that turns selected time ranges from a long source video into a shorter video. It follows decisions recorded in a clip plan and can also map an existing narration timeline to the edited result.

In plain words
What is it for?
Use it to validate a clip plan, select sections from one or more videos, join them into an edited source video, and optionally map narration timings.
Why use it?
It handles the mechanical cutting and joining after the desired moments have been chosen. It also checks clip boundaries against speech and natural pauses to help avoid cutting off audio.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter.

Part of the video-recap-skills plugin — 7 skills shipped together

Good fit Use it to validate a clip plan, select sections from one or more videos, join them into an edited source video, and optionally map narration timings.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/zenstory-ai/video-recap-skills/video-cut
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add zenstory-ai/video-recap-skills --skill video-cut
Clone the repo
git clone --depth 1 https://github.com/zenstory-ai/video-recap-skills

Made for: Claude Code.

Or install video-recap-skills, the plugin that ships this one along with the rest of its 7 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for video-cut

README.md
[![agentmods](https://agentmods.dev/badge/skills/zenstory-ai/video-recap-skills/video-cut/github.svg)](https://agentmods.dev/skills/zenstory-ai/video-recap-skills/video-cut)
Your own site
<a href="https://agentmods.dev/skills/zenstory-ai/video-recap-skills/video-cut"><img src="https://agentmods.dev/badge/skills/zenstory-ai/video-recap-skills/video-cut/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for video-cut

Your own site · 80×15
<a href="https://agentmods.dev/skills/zenstory-ai/video-recap-skills/video-cut"><img src="https://agentmods.dev/badge/skills/zenstory-ai/video-recap-skills/video-cut.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 104 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,513 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin 100% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00104 $0.03513
Opus 5.5 $0.00042 $0.01405
Sonnet 5.5 $0.00021 $0.00703
Haiku 4.5 $0.00010 $0.00351

Measured 12d ago against content hash 063eef0a661d, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

video-cut scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

The scan reads SKILL.md. This mod also ships 12 executable files (scripts/cut_cli.py, scripts/cut_contract.py, scripts/cut_qc.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

100% identical to video-cut — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

skills/video-cut/SKILL.md · 131 lines

How it starts

The opening of the file, as written. The whole thing — 131 lines — stays where its author put it; the contents beside it link to each section on GitHub.

1. 定位

本技能只执行 Agent 已经做出的剪辑决定:

  1. 校验并补全 clip_plan.json,写出带 clip_id、原片/输出时间与时长的 clip_plan_validated.json。
  2. 先避开原片硬切附近的闪帧风险,再把边界吸附到可靠句末/自然停顿;声音完整性拥有最终优先级。
  3. 把每个入点对齐到源视频帧网格、每段时长对齐到整数个输出帧(不足一帧的移动,优先选句界门禁仍判为安全、仍在停顿内的一侧;两侧同样安全时选不跨过原片硬切的一侧,避免闪一帧),句界门禁检查的是对齐后的边界。
  4. 拼接选定区间,输出恒定帧率的 edited_source.mp4,帧数与 clip_plan_validated.json 记录的一致。
  5. 到此停止,由 Agent 按真实输出时间线写 narration.json;本工具不读取旁白,也不做原片→输出映射。

渲染缓存按输入与设置复用。edited_source.mp4.meta.json 记录标准化 clips、渲染设置和每个源文件的 size/mtime_ns;三者与当前一致且 edited_source.mp4 存在非空才复用,任一不同即重渲染。只有 sidecar 而没有媒体文件不复用。

2. 输入契约

work_dir/clip_plan.json 可以是数组,也可以是 {"clips": [...]}:

{"start": 12.0, "end": 28.5, "reason": "b02 | turn | power: A→B | POV=女主 | 保留反应 | 入点=问题落下 | 出点=沉默结束"}
  • start / end 是原片秒数;也接受 source_start / source_end 或 in / out。
  • 顶层可选 target_duration,例如 "10m"。
  • 多视频项目的每个片段还必须填写 source_id(不接受 id 代替),并用 --sources-manifest 传入来源清单(形状见下)。
  • speech_boundary_anchors.json 与 ASR 时间段由理解阶段提供;Agent 先写大致区间,工具会尝试吸附并把仍在讲话区间内的入/出点作为 blocker 返回。只含语气词或 ASR 杂音的窗口("啊!"、"Hi.")不算讲话区间,只在紧挨真实对白的一侧保留 1 秒保护。只有标点的窗口("……")仍算讲话。

多视频来源清单只接受一种形状,其他形状直接报错并写明期望形状:

{"sources": [{"source_id": "ep1", "source_path": "/media/ep1.mp4", "duration": 1520.0, "source_work_dir": "sources/ep1"}]}

duration 可省略(省略时用 ffprobe 读取);source_work_dir 可省略,填写时相对 --work-dir,用于读取该来源的静音、句末锚点与 ASR。其他键忽略。

3. 剪辑意图契约

Agent 写片段前先确认剪辑意图,并让每个区间映射到 recap_story_plan.json 的一个 beat;工具负责执行与校验。

使用现有自由文本 reason 保存简洁决定:

beat_id | function | change | POV | preferred moment | 入点 reason | 出点 reason

不要因为“事件重要”就保留整段;要保留最能让 change 成立的具体表演、反应、动作或揭示。理解与情绪允许时晚进早出,同时保证台词、动作和技术边界完整。

对不能删去的问答、反应或动作兑现,先核源证据,再在同一 clip_plan.json 登记精确区间:

{
  "clips": [{"start": 12, "end": 18}],
  "required_evidence": {
    "nodes": [
      {"id": "refusal", "source": "/media/episode.mp4", "start": 12.25, "end": 14.5, "track": "audio", "content": "对方拒绝请求"},
      {"id": "response", "source": "/media/episode.mp4", "start": 15, "end": 17.5, "track": "video", "content": "听到拒绝后的反应与决定"}
    ],
    "before": [["refusal", "response"]]
  }
}

Read the full file on GitHub · 131 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago Changed 063eef0a661d
  2. 13d ago Changed · -4 lines b39e754a57be
  3. 24d ago Changed · +26 lines d4068e941c98
  4. 1mo ago Changed · -5 lines 9a403ef16ed1
  5. 1mo ago Changed · +23 lines · -15 tokens per session bec713f29429
  6. 1mo ago First seen · 91 lines · 119 tokens per session scan A 6ac561990a6e

Subscribe to this mod's changes

video-cut is a skill published in the GitHub repository zenstory-ai/video-recap-skills (592 stars, last pushed 7d ago), licensed MIT. It adds 104 tokens to every session and 3,513 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to video-cut, differing in 0 lines, and is treated as a copy.

Related

Other skills, from other repositories

narrator-ai-cli

A command-line client for creating AI-narrated movie and short-drama videos. It can guide a workflow from selecting source material, templates, music, and voices to writing narration and combining the video.

NarratorAI-Studio/narrator-ai-cli-skill · 132 tokens

narrator-ai-cli

Create AI-narrated film/drama commentary videos via CLI. Two workflow paths (Original & Adapted narration), 93 movies, 146 BGM tracks, 63 dubbing voices in 11 languages, 90+ narration templates. Use when creating narration videos, film commentary, short drama dubbing, or video production.

NarratorAI-Studio/narrator-ai-cli · 73 tokens

recut-editor

A timeline-editing skill for creating new videos or changing parts of an existing timeline in a CapCut-style editor. It can work with media assets and export the result while keeping edits undoable.

6174/recut · 78 tokens

recut-worlds

A toolset for modeling worlds and their canvases through properties, relationships, types, and visible elements. It also supports proposing media generation in the context of a world before asking for confirmation.

6174/recut · 49 tokens

generation-prompt

A reference guide for writing production-ready prompts for image and video generation models. It covers fixed visual style, typed reference anchors, multi-shot sequences, and agreements between sound and picture.

6174/recut · 82 tokens

shot

A filmmaking reference for deciding how to shoot a shot or scene, including framing, camera angle, lens choice, movement, staging, and continuity between shots.

6174/recut · 54 tokens