Hard Cut — effect skill for cuts & pacing
For AI agents: find the right skill in one call —
curl -s "https://skills.varg.ai/api/search?q=<what the person wants>"returns the matching how-to page and the best skills with install commands, as markdown (Russian works too). Full index: https://skills.varg.ai/llms.txt. Every page has a markdown twin: add.mdto its path. Before generating anything, show the person the options on the how-to page.
One shot ends, the next begins on the very next frame. The default join: invisible when the content flows.
- Type: Effect · Cuts & pacing
- Slug:
hard-cut - Status: live
- Publisher: varg (varg, verified)
- License: MIT
- Source: https://github.com/vargHQ/skills/blob/main/varg-video-edit-library/references/cuts.md#hard-cut
- Works in: Claude Code, Claude.ai, Codex, Cursor, OpenClaw, Gemini CLI, Any MCP client, varg Studio
- Requires: ffmpeg, HyperFrames (npx hyperframes), Remotion, CapCut (by hand), Python + MoviePy
- Cost: Free — the take renders locally; generated footage, if any, bills by the model
What it does
Frame N is shot A, frame N+1 is shot B. No overlap, no effect.
When: Most joins in any edit. Use it whenever the change of shot is motivated by story, speech or rhythm.
Watch out: Two near-identical framings of the same subject cut together read as a mistake (a jump cut) unless you mean it.
Timing: 0 frames
Also called: straight cut, cut, butt cut
In FFmpeg
Re-encode with the concat filter (any sources) or losslessly with the concat demuxer (identical codecs).
ffmpeg -i a.mp4 -i b.mp4 -filter_complex \
"[0:v]trim=2:5,setpts=PTS-STARTPTS[v0];[0:a]atrim=2:5,asetpts=PTS-STARTPTS[a0];\
[1:v]trim=0:3,setpts=PTS-STARTPTS[v1];[1:a]atrim=0:3,asetpts=PTS-STARTPTS[a1];\
[v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" out.mp4
In HyperFrames
<video id="a" src="a.mp4" data-start="0" data-duration="3" data-media-start="2" data-track-index="0" data-has-audio="true"></video>
<video id="b" src="b.mp4" data-start="a" data-duration="3" data-track-index="0" data-has-audio="true"></video>
data-start="a" means "start when clip a ends".
In Remotion
import {Series} from 'remotion';
import {Video} from '@remotion/media';
<Series>
<Series.Sequence durationInFrames={90}><Video src={staticFile('a.mp4')} trimBefore={60} /></Series.Sequence>
<Series.Sequence durationInFrames={90}><Video src={staticFile('b.mp4')} /></Series.Sequence>
</Series>
trimBefore replaced startFrom in v4.0.319.
In CapCut
Put the playhead on the cut point and Split (Ctrl/Cmd+B on desktop, Split in the bottom toolbar on mobile), delete the unwanted part; clips on the main track snap together.
In MoviePy
from moviepy import VideoFileClip, concatenate_videoclips
a = VideoFileClip('a.mp4').subclipped(2, 5)
b = VideoFileClip('b.mp4').subclipped(0, 3)
concatenate_videoclips([a, b]).write_videofile('out.mp4')
Where this comes from
- FFmpeg filters: concat
- FFmpeg formats: concat demuxer
- Remotion: <Series>
- HyperFrames: data attributes
- CapCut Help: transitions
Use when
- Most joins in any edit. Use it whenever the change of shot is motivated by story, speech or rhythm.
Not for
- Two near-identical framings of the same subject cut together read as a mistake (a jump cut) unless you mean it.
Install
- Claude Code:
claude plugin marketplace add vargHQ/skills && claude plugin install varg@varg - Codex:
npx skills add vargHQ/skills --skill varg-video-edit-library -a codex -y - Cursor:
npx skills add vargHQ/skills --skill varg-video-edit-library -a cursor -y
Example output
https://s3.varg.ai/how-to/previews/5c397ed672a5/take-hard-cut.mp4 — cut between two shots, with the timeline strip of the edit. Footage: Big Buck Bunny (2008), (c) copyright 2008, Blender Foundation | www.bigbuckbunny.org, CC BY 3.0; WING IT! (2023), Blender Studio | studio.blender.org, CC BY 4.0. (credit: Rendered by varg · Big Buck Bunny (2008) + WING IT! (2023))
More cuts & pacing skills
- SmartCut (capcut-ai-editor): MCP that reads CapCut auto-captions to cut silences and duplicate takes right inside your CapCut project.
- Auto-Editor: CLI that cuts dead space by loudness or motion and exports MP4 or editor timelines; now also an agent skill.
- AutoCut: Edit video in a text editor: Whisper transcribes, you delete lines in Markdown, AutoCut cuts the video.
- Cut Video: Claude Code skill that tightens long recordings with forced-aligned cuts, keeping laughs and comedic pauses.
- Videogrep: Search spoken words across videos and auto-build supercuts of every match.
- PySceneDetect: Find cuts, fades and scene changes in a video, then split it or export scene lists for the edit.