Skip to the content

Search the docs

Find a doc, a guide or a theme

Background

Research notes

What we looked at before and while building this kit, and what we decided. Dated October 2026. Licences and prices change: check the source before relying on any row.

The first version of these notes is the page OWL Video Plan, kept in this folder. Open it in a browser. This file keeps its content as Markdown and adds what we learned afterwards.

The question

Can an AI coding agent make a product demo video that looks edited, with no paid tools and nobody recording a screen?

The answer we reached: an agent does not generate video the way an image model generates a picture. It writes code, and a renderer turns the code into an MP4. For a product video that is the better fit, because the code can drive the real product.

Ways to render video from code

ApproachWhat the author writesLicenceOur view
Playwright + FFmpeg (this kit)A browser script against the real app, plus HTML overlaysApache-2.0 / LGPL or GPLChosen. Films the real product; every tool is free.
HyperFrames (HeyGen)HTML scenes that render straight to MP4Apache-2.0Good for a fully animated intro or explainer with no app in it. Could feed clips to this kit later.
RemotionReact componentsCompany licence above a small team sizeAvoided because of the licence terms. Read them before using it in a company.
Playwright recordVideoNothing extraApache-2.0Too soft for a product video: low bitrate WebM. The screencast API with per-frame capture is what we use instead.
OBS driven by a scriptA script plus a visible desktopGPL-2.0Takes over the machine while recording. Only needed for windows a page capture cannot see.

Similar open-source projects

Found in a search on 2026-10-10. We have not used them; activity and licence were not checked.

ProjectShapeDifference from this kit
codevid (Python)Turns existing Playwright tests into narrated tutorials, with an LLM writing the scriptVoice through OpenAI or Edge TTS
demodsl (Python)YAML steps with narration, spotlight, music duckingYAML instead of code; Remotion renderer option
demo-dev (npm)A prompt drives the browser; capture, voice and render stagesElevenLabs, OpenAI or local voice
demos-not-memos (TypeScript)A NarratedDemo class; narrate() between Playwright actionsElevenLabs by default
demofly (npm)Playwright spec plus a narration file per scene; built for Claude CodeClosest in idea

What this kit adds to that field: a fully local voice, dissolves that hide loading states at encode time, a take that can be remixed, checks after every render, and a skill that carries an editor's standard.

Skills an agent can use alongside

A skill is a folder of instructions that teaches an agent a tool or a craft. A third-party skill runs with the agent's permissions, so read it before installing.

Skill setTeachesLicenceFit
GSAP skills (official, GreenSock)Tweens, easing, timelines, staggering, performanceMITHigh, for richer custom cards. We installed gsap-core, gsap-timeline and gsap-performance and read them: documentation only.
HyperFrames skillsWriting HTML-to-video scenesApache-2.0Medium, for standalone animated clips
Community motion skillsEasing, springs, timing judgementVariesUnreviewed by us
claude-code-video-toolkit (digitalsamba)FFmpeg, Playwright recording, MoviePy, AI music, RemotionMITUseful reference; its core is Remotion and its voice path is paid
OpenMontageA full production system with a screen-demo pipeline and style playbooksAGPL-3.0Reference only. Do not copy AGPL code into an Apache project.

Sound

SourceWhatLicenceUse
soundcn700+ short interface sounds, each shipped as base64 in a small moduleMostly CC0; one game-derived set is notThe click. The kit refuses any sound the registry does not mark CC0.
Generated with FFmpegCallout tap, dissolve breath, music bedNone neededEverything else

Voice

EngineCostNotes
Kokoro-82M via kokoro-onnxFree, localChosen. About 3 seconds per line on a laptop; 54 voices; Apache-2.0 model, MIT package. Works on Windows.
Cloud voices (ElevenLabs, OpenAI, Gemini)Paid or rate-limitedBetter range of voices. A free tier is easy to use up in an afternoon of iteration.

What three rounds of feedback taught us

The kit comes from one real project: three cuts of the same demo in two days.

CutFeedbackWhat changed in the kit
1Correct, but it looked like a careful screen recordingCamera zoom, callout labels, hook and end cards, sound effects, music, loudness levelling
2"The squeak sound when a new section is highlighted"Effects made low and soft; a rule to measure any repeating sound
2Typography was weakA type system: display, text and mono faces; captions limited to two balanced lines
2White flashes between screensDissolves at encode time; chapter cards; pre-lap; the holds check
3Aim for about three minutesChapters, so a longer video has structure

Two bugs worth remembering:

  • A font stack with double quotes, placed inside a style="..." attribute, silently cut the style short. Captions and labels lost their padding and their font for a whole render. Theme font stacks use single quotes for this reason.
  • A single-pass loudness filter is automatic gain. It raised the music in every pause to within 5 dB of the voice. The encoder now measures once and applies one fixed gain.

Sources