Repository navigation
v0.25.0
Highlights
- Design a video from any design source. The new
video-designskill turns a direction into scenes: colour changes only at a turn in the story, one data accent, five type sizes, two-line titles, a ground drawn from the subject. Plug in your own design skill (taste-skill is recommended, Anthropic's frontend-design works too) or use ours, which needs nothing installed./videonow sets the direction before any scene is built, and/designrefines a scene or critiques the render from acontact_sheet.pysheet. The bundled frontend-design skill is removed: install it as a design source instead. - Data charts drawn to the narration.
LineChart,BarChart,CounterandSplitBarinlib/componentsare brand-themed SVG, and each stretch of data is drawn on the word that talks about it. Seeexamples/data-chart-stars. - Choose music by watching it.
music_gen.py --variations Nnow really makes N takes.pick_music.pyrules out bad takes and recommends one with its reasons, andaudition.pyputs every take under the finished picture in seconds, so the choice is made against the video. PageTurnsturns one scene into new pages in place, each on its narration cue; synthetic UI scenes take their click frames from the narration withcue().- Also: the digital-samba brand in DS's own colours, agent video jobs that resume after a crash,
qc.py --allow-silent, Remotion 4.0.539 and Node 24 LTS.
All commits
- Release v0.25.0: video-design sets how a video looks from any design source (taste-skill recommended, or ours) and /video sets it before scenes are built; data charts drawn to the narration; music takes chosen by watching them under the picture (1d522f2)
- FIX: music_gen.py --repaint and --cover keep the input's length by default, instead of cutting it to the 30s generation default without saying so (833bcbe)
- DOCS: The roadmap adds music that follows the picture: snap flexible frames to the take's beats, choose the tempo from the act cuts, and repaint the bed at each act turn, judged by ear in audition renders (90a3a12)
- FEAT: tools/audition.py puts each music take under the finished picture in seconds, so the user chooses a take by watching the video, with pick_music.py's measured pick shown first (2c06d18)
- FEAT: tools/pick_music.py recommends one of several music takes with its reasons (no dropouts, a calm bed under voice or text, a clean ending, a note on the act cuts) for the user to listen to and confirm (c6020cb)
- FIX: music_gen.py --variations N saves N takes (name_1 ... name_N) instead of one, because the acemusic API returns one take per request whatever batch_size says, and --json now prints only the JSON on stdout (3928437)
- FEAT: video-design sets how a video looks from any design source (taste-skill recommended, or ours), /video sets the direction before scenes are built, and contact_sheet.py and PageTurns join the toolkit (#178) (85e102f)
- FIX: The digital-samba brand uses DS's own colours (wordmark coral and navy, product blue) instead of an orange that isn't a DS colour (53f8a85)
- FIX: SplitBar stacks two zero shares' labels instead of printing them on top of each other, and chart parts key by position so repeated labels don't collide (d7048ee)
- FEAT: DataChart adds a flat area fill, a bar corner radius and per-bar grow cues (b8c1a10)
- DOCS: Qwen3 pronunciation fixes for words read as acronyms (sentence case or a carrying phrase, checked against a raw transcript) (e6f2ceb)
- FEAT: DataChart adds several series with a legend, Counter and SplitBar, and CI now type-checks the shared chart and cue code (dfeccd6)
- DOCS: data-chart-stars joins the README showcase log, with its demo video linked from the registry (948463a)
- EXAMPLES: data-chart-stars, a 31s narrated chart video of the toolkit's GitHub star history drawn word by word to Lugh's voice (3a47afe)
- FEAT: LineChart and BarChart in lib/components draw brand-themed SVG charts frame by frame, with the line drawn to narration cues (77dd421)
- FIX: qc.py --layout reads SVG text colour from its fill, so chart and diagram labels are no longer judged as black text (8b55ab7)
- DOCS: easybrandkit joins the community add-ons, reading a live site's logo, colors and fonts into a BRAND.md for /brand (#173) (cc5660d)
- DOCS: qc.py --allow-silent is documented beside the other render checks in CLAUDE.md instead of a page of its own (45a4e25)
- docs(silent-qc): explain the narrow silent-output exception (8277dae)
- test(silent-qc): exercise missing audio digital silence and missing files (6e40483)
- feat(silent-qc): add explicit opt-in for intentional silence (32bf7f1)
- Sync official Remotion skills (upstream v4.0.540, c7cb2fd) (a663a87)
- CHORE: Node 24 LTS in CI and the docs (18 and 20 are end of life), verify_setup.py flags an end-of-life Node, and a JS test workflow runs the narration-cue tests (44dc551)
- DOCS: The synthetic-ui-demo skill and the ds-release-notes README show how to cue a scene from its narration; the roadmap marks narration cues done (10c5d28)
- FEAT: Synthetic UI scenes look their click frames up from the narration (cue('save') in lib/components/cues.ts), so cursor, clicks and camera follow the voice when it is regenerated or re-timed (f55dac6)
- DOCS: Release-notes videos can start from Lugh's brief (click paths and UI strings traced to code, narration split into phrases), and a spec-driven release job for agents joins the roadmap (d65ba99)
- FIX: video job captions drop words with no letters or digits, so a slash or ampersand in the narration no longer shows up as a caption on its own (d0f2148)
- FIX: video job resume never reuses a half-written file, the lock can't be stolen while a job is being set up or resumed, and generated backgrounds stop lettering the narration (77c7c53)
- FIX: a brief expanded by an LLM (e.g. VIDEO_JOB_EXPANDER='claude -p') passes the clip-prompt rules: the expander is told them, and a refused spec goes back to it once with the error (621aef2)
- DOCS: Agent video jobs document resume, prune, events, warnings, per-host ETAs, the 9.5 MB size cap, the cost event on every exit, and what is unverified on Windows (1650583)
- FIX: video job estimates match what jobs actually cost (LTX $0.10, FLUX $0.0075, from ten jobs' receipts), and a job without music no longer gets a QC warning about a missing music file (79958eb)
- FEAT: video jobs resume after a crash, prune old projects, report timestamped events and warnings, and calibrate ETAs per host (e62873e)
- FEAT: voiceover.py --progress relays Qwen3's cloud progress and cost event, so job runners book the real voice cost instead of the table price (d8e8ba9)
- PERF: concept-explainer-short builds 3.3x faster (175 s to 53 s on a 52 s video, CPU 289 s to 79 s with the job preset) and can cap the file size (7f97c0a)
- DOCS: Roadmap brought up to v0.24.0 with a Next Up list; shipped items leave the backlog (2abe58a)
- FEAT: check_versions.py fails when a project that pins Remotion is missing from dependabot.yml, and CI runs it on every package.json change (3662d1b)
- DEPS: Remotion 4.0.539 for ds-release-notes, ds-free-schedule-demo and ds-release-649, which Dependabot now watches too (2402322)
- DEPS: Bump the remotion group across 10 directories with 29 updates (7c13be5)
Full Changelog: v0.24.0...v0.25.0