Videowright creates demo videos, explainer videos, and product walkthroughs from your coding agent. Just describe what you want and it generates your video (including audio). Iterate in chat until it's perfect.
Videowright is like rails new for video projects. It sets up all the scaffolding you need: scripts, beats, voice-over, sfx, music, rendering, audio mixing, styles, and more.
demo_with_sound.mp4
Or check out the blooper reel, directed by my son!
- Video from prompt -- generate an animated video, simply from a prompt
- Live Preview and Editing —- iterate in chat, see changes instantly
- AI voice-overs -- generate narration from a script, then auto-sync video timing to the audio
- Sound Effects and Music -- source and mix many audio sources
- Six built-in visual styles -- or create your own from a brand guide or description
- Pixel-perfect MP4 export -- deterministic frame-by-frame rendering, no dropped frames
- Works in any major coding agent -- Claude Code, Codex, opencode, etc
Paste this into your coding agent (Claude Code, Codex, or opencode):
Install Videowright using these instructions:
https://github.com/scosman/videowright/raw/refs/heads/main/packages/lib/skill/install/INSTALL.md
The agent reads the install prompt and walks you through setup.
You describe the video you want. The agent writes video segments -- self-contained web-components that each render one beat of the video. You preview in the dev server (npx videowright dev), give feedback in chat, and the agent iterates. Videowright will generate an AI voiceover, and sync the video to match. When you're happy, export with npx videowright render.
Define your visual style, and reuse it across videos. Pick one of six built-in styles, or create your own from a brand guide, reference URL, or short description.
Note: built-in styles were created with Opus 4.6. Newer models are better at design, so we suggest creating your own style.
Two demo videos: the same prompt, different styles.
demo_risograph.mp4 |
demo_editorial_mono_v2.mp4 |
Videowright supports a full voiceover pipeline: write a narration script, generate audio with text-to-speech, get precise word-level timestamps via speech-to-text, then auto-align every video beat to your narration.
The workflow:
- Write the script. Draft voiceover copy organized by segment in your video's PLAN.md (or ask videowright to).
- Generate audio. Record your own audio, or use AI text-to-speech. ElevenLabs is supported out of the box.
- Get timestamps. Run the audio through speech-to-text to get per-word timing data. This tells Videowright exactly when each line is spoken.
- Sync. The agent computes a timing object that maps each segment's advances to the audio timestamps. Video beats land on the narration automatically.
When you change the audio -- re-record a line, change pacing, swap voices -- the agent re-syncs video timing to match. Segments don't need code changes; only the timing data updates.
Videowright can mix audio tracks, fading in music, timing sound effects, remixing voice-overs, and more.
The agent can source sound effects and music. Both free downloads from Openverse, or AI generated sounds with ElevenLabs.
Just chat with videowright about edits you want to make, and it does the rest. It can be stylistic, content, order or pacing.
Two CLI commands:
npx videowright dev-- Dev server with a homepage listing all videos in the project. Click a video to open the player with hot reload. Hide the HUD for a clean screen-recording surface.npx videowright render [slug]-- Deterministic frame-by-frame MP4 export via Playwright + ffmpeg. Pixel-perfect output.
A videowright project can contain many videos. Build up your style over time, maintaning consistency in your brand. Reuse segments across videos (intros, outros, transitions, CTAs).
Run all checks (lint, typecheck, tests) locally:
./checks.shInstall the pre-commit hook (once per clone). This will replace any existing pre-commit hook:
ln -sf ../../checks.sh .git/hooks/pre-commitThis project was initially made for the Kiln AI launch video! You can read our write up on the process on our blog.
Released under the MIT license.
