angles.video

create-video-essay · open-source Agent Skill

Video essays your coding agent researches, writes, and draws

Ask a question — why something happened, how something works, what a book changed. The agent reads the sources, records every claim with where it came from, writes the script, draws every scene in Remotion, and renders the video on your machine. No template, no stock footage, and the last scene lists its sources.

One session, start to finish
  1. youMake a three-minute video essay: why do aeroplane windows have rounded corners?
  2. agentRead 6 sources and kept a copy of each. 23 facts recorded, each with where it came from.
  3. agentHere are the ways this could be told. Which one?You choose
  4. agentThe script: 33 lines, with the facts under every line.You approve
  5. agentFour pictures before I write the rest: the opening, a turn, a quotation, the close.You look
  6. agentout/ep01.final.mp4 — 3:26, 1920×1080 — with subtitles, chapters, sources, and a cover.

Numbers from the essay below: Why do aeroplane windows have rounded corners?

Real output

One made with it, as it came out

We made this essay twice. First in Mandarin, while testing the Skill: the agent read six sources and stopped for a throughline, for the script, and for four pictures. Then this English cut, from the same research: the script rewritten and approved again, the lettering reset, voiced and rendered again. After the first cut we asked for one change — the sources on screen at the end instead of in a description — and that is now how the Skill works.

Why do aeroplane windows have rounded corners?

3:26 · English narration · 6 sources listed in the last scene

It stops for you three times before it renders

  1. 01

    You ask a question

    “The Comet airliner” is a topic. “Why do aeroplane windows have rounded corners?” is a question, and an essay answers one. Give it only a topic and the agent proposes the question.

  2. 02

    It reads, and keeps what it read

    Every source is read today and saved as text beside the project. What the model remembers is treated as a lead to look up, never as a source.

  3. 03

    You choose how it is told

    Two or three throughlines, one sentence each — at least one of them a story about a person, not a list of reasons. Then the script, with its facts beside each line, before anything is voiced.

  4. 04

    You see four pictures first

    The opening frame, the picture one chapter turns on, a quotation, and the closing frame, rendered as stills. It is the cheap moment to say the look is wrong.

  5. 05

    It renders, looks, and fixes

    The video is rendered on your machine, in parts. The agent pulls frames for every line, looks at them against the facts, and re-renders only the part that was wrong.

  6. 06

    You get the file and what goes beside it

    The finished mp4, plus subtitles, chapter times, the source list, a description, and a cover — written from what the video was made of, so they cannot disagree with it.

Nothing is said or shown that is not in the facts file

Every line names the facts under it
A line with none is a transition. If it asserts something, the agent finds the fact or cuts the line.
Quotations are held against the copy
Exact words, in the original language, checked against the saved text of the source. A quotation that is not there has to be fixed before anything is voiced.
A “why” is marked as somebody’s reading
Dates and documents are facts. The because is an interpretation: recorded with whose it is, and worded as one. What is disputed stays disputed.
You are told what rests on one source
Whatever the video turns on is confirmed in a second source that did not copy the first. The rest is listed for you to keep or cut.
The last scene lists the sources
On screen, large enough to read on a phone. “See the description” is not a source list: a description is lost the first time the video is shared.
// src/ep01.facts.json
{
  "id": "f03",
  "kind": "quote",
  "text": "George How Jig, from George Yoke Peter, did you get my—",
  "sources": ["s02"],
  "standing": "documented"
}
// src/ep01.script.json
{
  "id": "a04",
  "text": "His last sentence stopped halfway: did you get my—",
  "facts": ["f03"]
}
$ node scripts/check.mjs src/ep01.script.json
ep01: 33 lines, 23 facts, 6 sources

Look at (2):
  No facts under — transitions, or inventions? d10 "The rounded window you…"
  Rest on one source — tell the user: f03 (a03, a04, screen.lastWords) · f07 (b04, screen.churchill) · f19 (screen.report) · f23 (a03, screen.radio)
From the essay above: one entry of its facts file, the line that rests on it, and what the check said before anything was voiced.

What it draws

A place is a map

Drawn from real geographic data, not from memory, with only the labels the line needs — and the year its borders show.

A span of time is a timeline

The distances between its dates are to scale, or visibly broken where they are not.

A quotation is its exact words

With who said it, where, and when. In another language than the narration, the original is shown with the translation beneath.

A person is a real picture, or a name

A photograph only when its licence can be pointed to, credited on screen. Never a generated face, and never a generated scene shown as a photograph.

An argument is a diagram

The stages, the forces, what led to what — built up as the voice goes through it.

A comparison shares one scale

Both sides from the same source and the same date, on the same axis.

How it sounds

A narrator, not an impression
Two narrators in each of 9 languages. A quotation is read in the narrator’s voice; the Skill does not imitate the person who said it.
Names said right
When a name comes out wrong, that one line is voiced again from a spelling the voice reads correctly. The subtitle keeps the name as it is written.
Music by the chapter
One track a chapter, chosen from one mood. The agent finds the beats, moves the cuts onto them, and lowers the music under the voice.
Or your own
Record the lines yourself, bring your own music, or have neither. The picture is cut to whatever the voice turns out to be.

Narration in English, Mandarin, Japanese, Spanish, Brazilian Portuguese, French, German, Italian, Russian.

What you are handed

ep01.final.mp4
The video, at publishing loudness.
ep01.srt
Subtitles, timed to the voice.
chapters.txt
Where each chapter starts, the way platforms read them.
sources.md
The sources the script and the screen rest on, and each picture’s credit.
description.md
The question, the chapters, and the sources together.
cover.jpg
One frame at full size: the first, or the moment you name.

Install it

  • Codex or Claude Code
  • Node.js 18 or newer
  • A way to read sources: web access for the agent, or material you hand it

Codex

$skill-installer install https://github.com/anglesvideo/angles-video-skill/tree/main/skills/create-video-essay

Claude Code

git clone --depth 1 https://github.com/anglesvideo/angles-video-skill.git ~/angles-video-skill
mkdir -p ~/.claude/skills
ln -s ~/angles-video-skill/skills/create-video-essay ~/.claude/skills/create-video-essay

Then ask

Make a four-minute video essay on why the Library of Alexandria really disappeared. Show me the sources and the throughlines first.

Review the repository before installing any Skill that runs scripts. Read the source on GitHub.

When it is not the right tool

A video about your product

This Skill has no product in it. For a repository or a product page, the launch-video Skill reads the product instead of the library.

The launch-video Skill

Stock footage, avatars, generated clips

Every scene is drawn in code from the facts: type, maps, diagrams, licensed pictures. There is no footage library and no talking head.

One click and done

It is a working session with an agent, and it stops for you three times. The sourcing is worth what your reading of the script is worth.

Questions about the video essay Skill

Do I need an Angles account?

Not to research, write, or render: that all happens in your agent and on your machine. A synthesised narrator and the library of music and sound effects come through an Angles API key, and voice lines count against a daily limit on the account. Your own recording, your own audio files, or a voice provider key of your own work without one.

How do I know it did not make things up?

You can check, at each step. Every line of the script lists the facts under it, every fact lists its sources, and a text copy of each source is kept beside the project. A check script refuses a quotation that is not in the copy of its source and lists every claim that rests on one source. What it cannot do is tell whether a sentence is true — which is why the script comes to you with its facts beside it before anything is voiced.

Which coding agents does it work with?

Codex and Claude Code. It is an ordinary Agent Skill: a directory with instructions and a few Node scripts, installed from GitHub.

How long can the video be?

The Skill asks where it will be posted: 60 to 90 seconds for Shorts, Reels, TikTok, or Douyin, and three to five minutes for YouTube or Bilibili. Past 90 seconds it is written in three to five chapters, each with its own card and its own music track.

Where do the pictures come from?

Most are drawn in code: maps, timelines, diagrams, quotations set in type. A photograph or a scan is used only when it is in the public domain or under a licence that allows reuse, as stated where it was found, and it carries its credit on screen. A picture whose licence cannot be established is not used.

Does anything leave my machine?

The video is rendered locally. Research reads public pages, and the script text goes to the voice service you chose. Nothing else leaves it. The copies of sources stay on your machine and out of git, because they are other people’s text.

Can I change the video afterwards?

Yes. The words are in one file, the pictures in another, the sources in a third, and the workspace stays with you. A changed line re-renders only the part it is in. The next episode keeps the look and the voice, and gets a question and a facts file of its own.

What does it cost?

The Skill is open source under the MIT licence. It draws the video with Remotion, which has a licence of its own — check it if you are a company. The synthesised voice and the music library need an Angles account.