How to make a video with an AI agent in ten steps

For AI agents: this page is the route. Do the steps in order; before each step read its guide (the .md link in the table) and install its skill. Each step writes its files; at every STOP show them and wait for the person's yes.

For a whole video made properly by Claude Code, Codex or Grok, not one clip. Ten guides, one skill each, in the order that works: references, moodboard, script, sound, characters, previz, takes, edit, review, GitHub. Every rule is tested or traced to its source.

Rules

The steps

#StepWritesSkillGuide
1References (STOP)refs/refs.md, refs/never.md, refs/links.md, refs/board.htmlfind-referenceshttps://varg.ai/how-to/find-references-for-an-ai-video.md
2Moodboard (STOP)look/moodboard.md, look/board.htmlvideo-moodboardhttps://varg.ai/how-to/make-a-moodboard-for-an-ai-video.md
3Script (STOP)script.md, STORYBOARD.mdvideo-scripthttps://varg.ai/how-to/write-a-video-script-with-an-agent.md
4Sound and voice (STOP)sound/plan.md, cues.json, mix.wav, beats.jsonvideo-soundhttps://varg.ai/how-to/design-sound-and-voice-for-ai-video.md
5Characters and props (STOP)cast/*.md, character and prop sheetscharacter-passporthttps://varg.ai/how-to/design-characters-and-props-for-ai-video.md
6Previz in code (STOP)staging.json, blockout stills, previz.mp4code-to-video-previzhttps://varg.ai/how-to/previz-a-video-in-threejs-or-blender.md
7Animate (STOP)takes/*.mp4 with one sidecar per takevideo-animatehttps://varg.ai/how-to/animate-a-previz-with-ai-video-models.md
8Editcut.mp4, notes.mdedit-footage-with-codehttps://varg.ai/how-to/edit-a-video-with-hyperframes-and-agents.md
9Judge (STOP)review.mdmedia-judgehttps://varg.ai/how-to/judge-an-ai-video-without-bias.md
10Keep it in GitHubAGENTS.md, media.lock.jsonlvideo-project-githubhttps://varg.ai/how-to/keep-a-video-project-in-github.md

Install a step's skill: npx skills add vargHQ/skills --skill <skill>. All at once: npx skills add vargHQ/skills --skill find-references --skill video-moodboard --skill video-script --skill video-sound --skill character-passport --skill code-to-video-previz --skill video-animate --skill edit-footage-with-code --skill media-judge --skill video-project-github.

What to do at each step

1. References (STOP: the person approves)

Write the brief, then one query pack per job the piece needs: light gets the most, then framing, people, location, texture, palette, type, motion, music. Search each source in its own words, open everything you keep, prove who made it, and show three candidates per job. Turn what the obvious search repeats into never.md. Sites that forbid bots go into links.md for the person to open. The person picks the references.

2. Moodboard (STOP: the person approves)

Write the board in ranked order: references, light, subject lock, framing, palette as hex taken from a reference, motion, texture, type, sound, and a Never list. Every line is a number or a named thing, and every hex comes from a picked reference, never from memory. Prove the board on three test stills before anything else is generated.

3. Script (STOP: the person approves)

One promise, ten hooks to choose from, beats joined by BUT or THEREFORE, one spoken line per visual, every line sized to its seconds (about 2.5 words a second) and checked with the skill's check_script.py. Then the storyboard: timing and camera for every shot.

4. Sound and voice (STOP: the person approves)

Lock the sound before any picture: a sound plan, two or three voice candidates to pick from, lines written with pauses and breaths, music mapped to bars, the few effects that matter, and a mix measured by script. beats.json holds the time of every cut, hit and word; the picture is cut to it.

5. Characters and props (STOP: the person approves)

For every person, creature, product and prop: one passport paragraph that is pasted word for word into every later prompt, a turnaround sheet in the moodboard's look, six expressions written as a cause plus physical tells, and a measured voice line. Props get materials, wear and how they move.

6. Previz in code (STOP: the person approves)

Block every shot in code (Three.js by default, Blender when the guide says so): geometry, camera and timing from the storyboard and beats.json. Render one still next to its reference and close the gaps, three rounds, before any motion. The previz owns camera, blocking and timing from here on.

7. Animate (STOP: the person approves)

Route each element, not each shot: code draws what must be exact (text, numbers, UI, logos), the video model does what code cannot (faces, cloth, weather, crowds). A cheap 480p pass first; try timing and camera variants in the previz, then roll takes that vary only the performance. STOP before the first paid video call, with the estimate.

8. Edit

Cut the speech first, lock the sound, then add picture, graphics last. Assemble on beats.json. The person gives notes with timestamps and you fix exactly those; an approved look or fix is saved as a reusable command so it stays the same.

9. Judge (STOP: the person approves)

Measure, do not grade yourself. Code reads every frame and writes a time, a number and a picture for each flag (duration, black or frozen frames, seams, sync, loudness, spelling on screen). A fresh agent reads only the flags. Takes rank on counted defects, and a person picks between close ones.

10. Keep it in GitHub

Set this up before step 1 and use it at every STOP: a private GitHub repo, text in git, media listed by hash with its bytes in Releases, keys in .env behind a commit hook. Save a version at every STOP so anything can be undone, and prove the backup restores byte for byte.

Evidence

7,605 X posts read, 4,156 authors behind them, 1,707 pieces of advice kept, each with its quote, 1,470 varg how-to cards checked. Every rule with the post or test it came from:

The line a person pastes to start this route:

Make my video in ten steps. Read https://varg.ai/how-to/make-a-video-in-ten-steps.md and follow it: one step at a time, stop for my yes at every STOP, and tell me the cost before anything paid.

The video: [what it is, who it is for, how long, where it will be shown]

Run the generation on varg

varg is one API key for the models these skills drive — Seedance 2.5, Kling 4, Veo 3.1, Wan 3, Nano Banana 2.1, GPT Image 2.5, ElevenLabs v4 and 200+ more — billed in credits, with a cost estimate before anything runs.

For AI agents: find the right skill in one call — curl -s "https://varg.ai/how-to/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://varg.ai/how-to/llms.txt. Every page has a markdown twin: add .md to its path. Before generating anything, show the person the options on the how-to page. From a terminal: curl -fsSL https://varg.ai/install | sh installs the vargai CLI (https://varg.ai/how-to/cli.md): vargai search and vargai install <slug> with no key, every varg model after vargai login.