Open video production system

v0.49.0 Exact skill/CLI compatibility · trusted npm publishing · Node 18–24 gates

From idea to a video you keep directing.

Narova is an open video production system for humans and agents. It is not a video-generation model and it has no house style: you and your agent own the creative direction, while Narova supplies the production state underneath — structured scenes, deterministic timelines, proofs, revisions, evidence, and release. Work interactively, or let an agent run unattended; the local CLI handles speech, captions, and deterministic 2D HTML/CSS, 3D Three.js/WebGL, or SVG rendering.

Install CLI on npm ★ Star on GitHub

Apache-2.0 licensed  ·  local-first by default  ·  cloud only when you register it

The missing layer

A generated clip is a moment.
A Narova project is a production.

Disposable generation

A generated clip usually throws away the production state that created it. Change one decision and you start over — and neither you nor your agent can say what changed, what was actually rendered, whether an earlier attempt was better, or which source supported a claim.

An evolving production project

Narova keeps the reviewable scene script and the measured state around it — manifest, timings, mix and delivered-audio facts, render identities, a revision ledger, proof bundles, provenance registers, and named releases. Unchanged work is reused, changed work is limited to exactly what changed, and the encoded result can be inspected against the intent that produced it.

For AI shots, continuity is authored too: name the characters, objects, or places, choose what one shot keeps or changes, and optionally attach one provider-supported image anchor. Narova records the exact recipe; it does not infer your world, choose a style or camera, rank outputs, or claim the provider followed the reference in its pixels.

Don't read about it. Watch it.

This 30-second reel was made by Narova, about Narova.

  1. idea
  2. proof
  3. scenes
  4. timeline
  5. render
  6. inspect
  7. revise
  8. release

Every step above is a real, inspectable project artifact — not a log line.

How it works

The project, not the prompt,
is the unit of work.

You and your agent direct. Narova produces.

Creative authorship is yours: the script, the visuals, the taste, the selection. What you build and publish is your choice, and you are fully answerable for it — under law, by your own ethics, values, and conscience, and by the religious or cultural commitments you hold. Narova gives you inspectable sources, reviewable creative proofs, and explicit provider choice to support that judgment; it does not verify legality, rights, or acceptability for you.

Narova owns the production machinery — timing, orchestration, rendering, caching, inspection, and delivery — and it is zero-style by default. No implicit palette, layout, chrome, or camera grammar. No taste model, and no hidden winner selection: proof choice is an explicit creative decision, not an algorithm.

Prove the direction before full production.

For ambitious work, creative-brief.md turns medium-neutral intent into 2–3 small proof branches, each with a rationale and rendered evidence. The agent renders decisive, project-bound evidence, you reject or approve deliberately, and only the selected branch is expanded. This is not "generate three complete videos" — it is testing a risky creative hypothesis cheaply, preserving the evidence, and choosing once.

"Keep everything, but change scene 4."

Structured scenes carry content identities; audio and sentence caches are keyed by what actually changed; the renderer re-renders only the scenes whose work changed and reuses the rest. narova diff and narova history show exactly what a change touches before you render. Revisions are recorded as changes in effective authored state — so "try five versions of scene 4" costs five scene renders, not five full videos, and nothing else drifts.

Inspect the encoded result — without a score.

narova judge is inspectability for creative production, not automated art criticism. It compares the creator-owned assertions with the encoded artifact, exposes timestamped evidence classified measured, inferred, or interpretive, and reports aligned, diverged, observed, or uncertain — with explicit uncertainty instead of a guessed defect. No universal quality score, no hidden taste lens, no validity effect, and no automatic creative correction. Stillness, silence, darkness, and abrupt change may be deliberate.

One production system

Made for the breadth.
Defined by the model.

Authored 3D is complete in core. For work that needs intentional subject and world representation, install the optional 3D-production companion — npx skills add ammar-hasan/narova --skill narova-3d-production -g. It adds direction, capability routing, and an optional companion-local deterministic rigid-body baker—not a core renderer, template, or default aesthetic; core Narova works identically without it.

Real product walkthrough · 83 seconds · one continuous browser take · 24 narration-timed operations · voiced click-ripple proof

Built to be inspected and automated

Infrastructure,
not a demo.

  • Local-first execution. Rendering, speech, and composition run on your machine. First use downloads what this machine is missing into Narova user storage; optional sources and providers use the network only when you select them.
  • Deterministic by identity. Scenes, audio, and sentences are content-addressed; reuse is proven, fallback is attributed, and stale frames are never served.
  • Provenance you can read. Claim grounding, media rights, AI generation, and reproducibility are graded verified, declared, or unknown — including what Narova cannot prove.
  • Evidence-bound builds. Each video's digest is bound to its timing and caption context in a build receipt, and releases publish with npm provenance.
  • Versioned machine protocol. Every operation speaks narova.result/1 — stable exit classes, diagnostic codes, and declared artifacts — with secrets redacted from protocol output.
  • Apache-2.0. Free, open source, and no per-render fee.
01 Register explicitly narova providers add …

Optional hosted speech and video providers live in companion skills. No directory scanning, no vendor SDK in core.

02 Speak a media protocol narova-tts-provider/v1 · narova-video-provider/v1

Versioned JSON Lines over a persistent worker; credentials stay in the environment.

03 Return staged media synthesize(…) · generate(…)

Narova keeps staging, caching, provenance, captions, rendering, and the machine contract.

ElevenLabs

voice library

Account voices, voice IDs, and provider-native controls.

OpenAI

speech + Sora

Steerable speech plus a separately registered Sora video worker.

Runway

video generation

Text-to-video tasks isolated in an independently installed companion.

Google

Gemini speech + Veo video

Gemini speech plus a separately registered Veo video worker.

Xiaomi MiMo

speech · voice design + cloning

Preset voices, text-described voice design, and few-second voice cloning.

Piper default XTTS studio voices Qwen instruct control Chatterbox voice cloning ElevenLabs optional companion OpenAI optional companion Runway optional companion Google optional companion

Your first video starts
with one command.

Try it with one command to a finished MP4, or install the CLI and agent skill and pick a starting point. If the CLI is missing, the skill can install its exact matching npm release.

pick an example · ask your agent · render locally
# try it first — one command to a finished MP4 (Node 18+)
$ npx @narova/narova demo
# install the CLI
$ npm install --global @narova/narova
# install the agent skill
$ npx skills add ammar-hasan/narova --skill narova -g
# update: npm i -g @narova/narova@latest · remove: npm uninstall -g @narova/narova

# idea → video
you → Make a 45-second vertical explainer about why starting
small makes habits easier to keep. Make it warm and practical,
and show me a preview before rendering.

agent → I’ll use one warm narrator, a calm visual rhythm, and
simple step-by-step scenes. I’ll keep the language practical
and show you the vertical preview first.

Want direct control? The same open project works from the CLI. See the manual workflow →

Make your first video.
Keep directing it.

Install CLI on npm ★ Star on GitHub