Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WeftCut example project — "Aurora Ridge"

A reproducible MCP editing exercise: four video clips, the verbatim prompt behind the agent session on the weftcut.com homepage, and a checklist.

Preview of the four source clips: aurora, ridgeline, lakeside, embers

简体中文文档 →

What this verifies. An agent drives the app through MCP tools alone, with no human intervention, and in a single pass reproduces something close to the homepage session.

Contents

Path Description
footage/*.mp4 4 source clips — identical stream spec, one thing to check in each
footage/preview.webp the clip preview used in this document
prompts/aurora-ridge.md the prompt from the agent session; substitute the <REPO> placeholder
prompts/aurora-ridge.zh-CN.md the same brief, Simplified Chinese
weftcut-mcp.example.json MCP client config template
tools/scenes.html where the clips came from

Source media

Every clip: mov,mp4 container, h264 High@4.0 yuvj420p 1920×1080 @ 30/1 fps, 300 frames, 10.000 s, aac LC 48 kHz stereo ~161 kb/s. Video bitrates 0.68–2.09 Mb/s. The scenes are synthetic, and each one hides something the agent has to handle.

Clip Scene Exercises
aurora.mp4 Aurora curtains over a ridge, seeded starfield, ambient audio; a meteor streak at 6.20 s – 7.00 s source-relative precision of the in and out points
ridgeline.mp4 Sunrise behind layered ridges, drifting mist, birds, swelling warm ambient audio scale_x/scale_y param tracks (clip scaling)
lakeside.mp4 Dusk mirror-lake, full moon, moonlight path on the water, foreground reeds, calm ambient audio wipe transition
embers.mp4 Bokeh embers above an off-frame fire, crackling audio that drops below −45 dBFS from 4.010667 s to 7.210729 s (3.200063 s) silence detection and trimming

Checking the clip spec and those timestamps:

ffprobe -v error -select_streams v:0 \
  -show_entries stream=codec_name,profile,pix_fmt,width,height,r_frame_rate,nb_frames \
  -of compact=p=0 footage/aurora.mp4
# codec_name=h264|profile=High|pix_fmt=yuvj420p|width=1920|height=1080|r_frame_rate=30/1|nb_frames=300

ffmpeg -hide_banner -i footage/embers.mp4 -af silencedetect=noise=-45dB:d=0.3 -f null -
# [silencedetect] silence_start: 4.010667
# [silencedetect] silence_end: 7.210729 | silence_duration: 3.200063

Environment

Requirement Detail
WeftCut Any recent build of the app that launches.
Project state A new project with an empty timeline.
Agent client Any MCP client that speaks streamable HTTP — Codex, Claude Code, Cursor, or your own.
Paths The brief addresses clips by absolute path; replace <REPO> with the absolute path of your clone.

Connecting the agent

Settings → Agent — copy the prompt from there and let the agent connect itself, or write your client's MCP config file by hand.

Execution

Substitute <REPO> in prompts/aurora-ridge.md (or the zh-CN variant) and hand everything below the divider to the agent. Claude Code as an example:

claude -p "$(cat prompts/aurora-ridge.md)" \
  --mcp-config weftcut-mcp.json --strict-mcp-config \
  --allowedTools "mcp__weftcut" \
  --model opus --max-turns 80
Flag Effect
--strict-mcp-config Ignores user- and project-level MCP servers; only weftcut is used.
--allowedTools "mcp__weftcut" Turns off Bash/Read/Write/Web — the editor is the only thing the agent can act on, so no other tool can route around it.
--max-turns 80 The brief takes roughly 40 calls; leave more headroom if you like.

Every MCP tool call lands on the timeline live, and the app's log console records it.

Reference run

Claude Code + Opus:

Metric Value
mcp__weftcut__* tool calls 38
Resource reads (project://tracks, project://current) 5
Structured tool errors (self-corrected) 3
Output 15.000 s sequence, 3 A-roll acts + 1 B-roll accent + motif + 3 captions

Tools called: import_media, add_video_layer, trim_layer, update_layer, update_layer_params, add_transition, list_motifs, add_motif, set_keyframe, smooth_keyframes, get_param_track, set_param_track, add_effect, update_effect, detect_silences, apply_subtitles, add_marker, checkpoint.

Editorial choices differ a little from agent to agent and run to run. This run cut aurora at src_in_us = 3_000_000 → src_out_us = 8_800_000 (containing the meteor), with an 800 ms crossfade and a 700 ms wipe.

Verification checklist

# Requirement What you should see
1 Three acts, all on A roll, ~5 s each, starting at 0 A roll holds exactly 3 video layers in sequence, adjacent acts joined by a transition, total ≤ 16 s
2 embers accent on B roll: eased fade + gentle blur The clip layer on B roll has at least 3 opacity keyframes, fully transparent at both ends, eased on both ramps, and carries a blur effect
3 Crossfade first, then a directional wipe A transition badge on each of the two A-roll cuts
4 Lower third A Motif layer on the timeline, placed on an auto-created Overlay track, rendering the briefed strings in the accent colour
5 Push-in across act two That layer has X/Y scale keyframe lanes; the preview pushes in slowly
6 Three captions 3 text layers on an auto-created track, each with different content, non-overlapping spans across the 15 s
7 Scene labels on the clip layers Layer names read as scenes, not filenames or anything else
8 Marker + checkpoint A marker on the ruler at 0; a checkpoint in history
Silence Audible crackle on the embers accent — no silent gap

If anything doesn't match, you're welcome to raise it at UncleChair/WeftCut/issues with the agent transcript and the app's log console output. You can also compare against the replay and tool-call trace on the homepage.

Media provenance

Captured frame by frame from tools/scenes.html, then muxed with ffmpeg over synthesized ambient audio. No sampled footage and no third-party audio.

License

MIT; everything in the repository falls under the same license. See LICENSE.

About

Example project for showing agent session

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages