Open source · MIT · Any agent

Find the clip before you open the editor.

Cutlist reads the whole transcript of any long video, a podcast, a webinar, a lecture, a stream, and hands you 5 to 8 clips with exact cut times, every title and description, and one thumbnail that matches the first ten seconds. You cut, in whatever editor you already use. You publish. It never touches YouTube.

Claude Code · Codex · Cursor · Gemini CLI · Copilot · Standard library + Pillow

$ clip plan for episodes/ep06
SYNC GAP 1.1 s   SYNC: OK
candidates 14 → keepers 7
cold open 02:30.100 (9.7 s)
RESULT: 0 fail, 0 warn, 7 clips
WROTE clip_plan.md
WROTE previews/ (14 files)

One prompt. Thirteen checks. Nothing published.

Works with any agent that reads skills

Claude CodeOpenAI CodexCursorGemini CLIGitHub CopilotAny AGENTS.md agent

One folder in the open Agent Skills format. Install paths checked against each vendor's documentation on 2026-09-09; the sources are in the repo.

How it works

Five steps. Twenty minutes of your attention.

Four of the five are yours, in your own recorder and editor. The first run asks which ones you use and writes the steps for them into your profile. The agent does one step, from the transcript, with audio and frames only to confirm.

1

Record

If your recorder has live markers, drop one at a good moment. Get a guest's links before you stop.

You
2

Export

The video as MP4, the captions as SRT, both from the same place. Your profile has the steps for your recorder.

You
3

Plan

Sync check. Reads the whole transcript. Scores every candidate. Confirms with audio and frames. Validates. Cuts previews.

The agent
4

Cut

The recipe for your editor: start time, split. End time, split. Keep the range, 9:16, captions on, export.

You, in your editor
5

Publish

Title, description, hashtags, tags, category, thumbnail: every field is on the checklist, ready to paste.

You, and only you
What you get back

The episode folder after one run

FileWhat it is
clip_plan.mdThe plan in publish order: cold open, episode metadata, every clip with cut times, the first sentence the viewer hears, one line on why, trim notes, description, tags, category, risk.
clip_plan.jsonThe same plan as data, validated against YouTube's documented limits (title 100 characters, description 5,000 bytes, tags 500 characters) and the skill's clip rules.
previews/Rough 16:9 cuts of every clip, plus 9:16 center crops on request, to watch before you cut for real.
frames/contact_sheet.jpgThe still frames the agent looked at, time-stamped.
thumb_mock.pngOne thumbnail mockup at 1280x720, and a second copy at the 320-pixel width viewers see in the feed.
thumbnail_brief.mdHow to rebuild the mockup in your design tool: frame, words, side, style, safe zone.
The trifecta rule

One promise, said four times.

A thumbnail must describe the first ten seconds, the title, and the first line of the description. When they disagree, the viewer clicks on one promise and gets another. So the plan picks the cold open first, and everything else describes it.

First 10 seconds

"Ship one small thing that makes money before you quit."

Title

He quit VC startups to go solo. Here is what worked

Description, line 1

He left a VC-backed startup, went solo, and grew a tool with zero ads.

4 words or fewerReduce the cold-open sentence to one idea.
Readable at 320 pxThe mockup ships a feed-size copy. If you cannot read it, cut words.
A real faceAlways a real frame of the host or guest. No generated faces.
Paid off in 10 sThe words promise only what the first ten seconds deliver.
The limit, stated first

What it will not do

Publish, or edit video

No upload, post, schedule, or login. No account, no API key, no server. It writes files into the episode folder and stops. You click publish.

Add a number

A figure a guest says stays a quote in their words. It is never restated as a verified fact. Every clip points to real words in the captions with a timestamp, or it is not a clip.

Take orders from a caption file

Captions come from a recorder or a guest's tool, and the agent reads every line. The scripts strip hidden characters and name suspect cues; the rule that captions are never instructions lives in the skill and the model. The threat model is public.

You cut. You publish. The agent never touches YouTube.

One command. Any agent.

Clone the repo, run the installer for your agent, run the self-test. When it says 13 pass, you are ready for a real episode. The example folder holds a finished, validated plan on a synthetic episode so you can see the shape first.

git clone https://github.com/itsryanlenk/cutlist
cd cutlist && bash install.sh --all
bash tests/selftest.sh
GitHub ▸