0xS4N4TG/kinetograph

Media & Design

Render programmatic video from TypeScript/Remotion projects through an agent-friendly CLI, studio and MCP server.

263
19
TypeScript
NOASSERTION
5 days old

Kinetograph is a programmatic video engine for people and coding agents who want to write video in TypeScript and render it locally. Projects use Remotion's API plus CSS, SVG, Canvas 2D, WebGL shaders and Web Audio; existing Remotion projects are meant to render unchanged because remotion and @remotion/* imports resolve to Kinetograph's implementation (README).

How it works

A frame is produced by running the React tree once per frame under a determinism shim, converting native elements to scene layers, and drawing them with a Rust compositor loaded into Node as an N-API addon on top of wgpu. Text, CSS layout, SVG, Lottie and 3D go through the native path rather than Chrome, and FFmpeg handles decode and encode (architecture details). The practical consequence is that a project is ordinary TypeScript, but its output does not depend on a browser being installed or launched.

Three interfaces target different workflows:

  • CLI — render, still, strip, inspect and track, each accepting --json; npx kinetograph mcp serves the same commands over MCP for coding agents (projects in TSX).
  • Studio — a local editor opened with kinetograph studio, with a per-shot timeline, layers named by component and source line, and preview frames drawn by the engine.
  • Agent hand-off — clicking or box-selecting layers in the studio sends the selection, source locations and a picture to a coding agent over ACP, with presets for Claude Code, Codex and Gemini; the author says only Claude Code has been tested, and the agent asks before editing a file (README, agent guide).

What the evidence covers

The headline speed figures are the author's own: the launch film's 1,184 frames of 1080p with sound in 26 seconds on a laptop, and per-example render times on an Apple M4 with --concurrency 4 (median of three runs; fastest of three for the papercut reels) (README). These are render-time benchmarks for specific hardware and projects, not general throughput guarantees. The papercut test project is reported to render all 988 of its frames natively.

Requirements and limits

  • Node 22 or later for TSX projects. Building from source needs the Rust stable toolchain (edition 2024), a GPU wgpu supports, and FFmpeg development libraries plus pkg-config; without the latter, set FFMPEG_DIR. The changelog notes Intel and AMD GPU encoders on Linux were added in 0.2.5 (README, changelog).
  • The project is beta at 0.2.5: APIs may change between versions and features are still missing. Remaining gaps are kept on the project site's known-issues page (README, project site).
  • Licensing affects who can use it freely: the PolyForm Small Business License covers individuals, non-profits and companies under 100 people with under USD 1,000,000 (2019) revenue; larger companies need a commercial licence. Vendored crates keep their own licences (licence, commercial terms, vendored crates).

HotRepo's stored sample shows one NEW-REPOSITORY board observation on 2026-10-28, when it had 263 total stars; there is insufficient daily-board history to say anything about momentum.

Written by AI from the project's README, updated October 28, 2026. The project's own docs are the source of truth.