open source · runs on your machine
newsreel drives your real app in a browser, narrates it in a voice that never leaves your laptop, and cuts the whole thing together. A weekly report is only one of the things it makes. Change one line and the same shot list becomes a product demo, an ad, or a launch film.
Playwright signs in once and drives your app for real. Clicks, typing, scrolling — whatever the shot needs. Generated scenes record the same way.
Your script, spoken by a local model. Three voices ship with it, and a shot can be given to any of them, so two narrators can trade sections.
Styled frames, lower thirds, a music bed and hard cuts, with every scene cut to the length of its own narration so picture and voice land together.
What a video is for decides how it should look and move. Set
video.kind and the palette, accent, bed, pacing and title card follow.
The background is rolled from the family rather than fixed, so two ads come out
siblings instead of copies.
35 of 35 run live right here. Take the embed code for your site, the shot config for a video, or the build prompt to make your own variant.
No accounts, no API keys, nothing to download twice.
newsreel voices --install puts them in your local Voicebox.
A cloned voice is a real person's — use your own, with consent.
Pick one with music.track, or bring your own file.
The same module, in a video or in your page.
// one shot in newsreel.config.json
{
"id": "opener",
"type": "generated",
"scene": "swirl",
"props": { "word": "acme" },
"duration": 10,
"narrator": "Narrator Nova",
"narration": "This week we shipped the thing."
}
// the same visual, mounted in your page
import scene from "./visuals/primitives/swirl.js";
const handle = await scene.mount(el, {
word: "acme",
ink: ["#34d399", "#818cf8"],
});
handle.start();
// handle.destroy() when the element goes away
# sign in once; the session is saved
npx newsreel login
# capture, cards, narration, music, assemble
npx newsreel run
# backgrounds, music beds, voices
npx newsreel presets
npx newsreel voices --install
One command puts a self-contained brief on your clipboard: the config shape, the two kinds of shot, how to pick a scene, how to write narration that is worth listening to, and the traps that cost real time. Paste it into any coding agent and describe the video you want.
Every shot in this config is a scene newsreel draws itself, so there is no app to run, no login and no keys. Two commands from an empty directory to a finished mp4.
# a video that needs no app at all
npx newsreel init --generated
npx newsreel run
newsreel has no runtime dependencies of its own. Playwright is a peer dependency so you pin the browser; ffmpeg comes from your system.