kineto

agent
Security Audit
Fail
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Fail
  • spawnSync — Synchronous process spawning in cli/cli.test.ts
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

An agent-first video studio built on Remotion. Clone it, point your coding agent at it, get real MP4s — every video, asset and render tracked.

README.md

kineto

An agent-first video studio built on Remotion.

Describe a video in plain words. Claude Code or Codex builds it through one CLI,
and every asset and render stays on record.

kineto promo preview: Clawd flies through rings on a rainbow trail, then a quill writes kineto

▶ The preview loops without sound. Watch the full 55-second promo, made in this repository with kineto.

CI Release License: MIT Node Remotion

English · 简体中文

✨ Why kineto

  • AI-made videos are everywhere, yet the way they are made is rarely visible.
  • Coding agents already write Remotion code. Left alone, they guess outdated APIs, scatter files and lose track of what they rendered.
  • kineto gives the agent one CLI as the only way to change records. The creative work, scenes and timelines, stays in plain Remotion.
  • You ask in natural language and get a real MP4. This is vibe coding applied to video.

🚪 One door

  • Every record changes through ./kineto
  • JSON output, stable exit codes, errors with a next step
  • ./kineto check catches hand edits in CI

🏷️ Provenance for every asset

  • Content-addressed files with license, author and source; files without a license are refused
  • Generated voiceovers and captions also record how they were made

🧾 Every render on file

  • Videos, scenes, stills and GIFs
  • Git sha, codec and Remotion version per export
  • A shareable link when storage sits behind a CDN

🔌 Pluggable

  • Storage: local, or any S3-compatible service
  • Tools: voiceover and captions, each enabled in kineto.config.yaml

🚀 Quick start

git clone https://github.com/zephyr4123/kineto.git && cd kineto
npm install
./kineto setup        # install the official Remotion agent skills
./kineto doctor       # check Node, dependencies, config, storage and skills
./kineto new hello --title "Hello kineto"
./kineto studio hello # preview while the scenes are being written
./kineto render hello

With an agent, open it in the repository and ask for a video. It reads AGENTS.md and works from there.

🧭 How it works

person        "make a 30-second launch clip with a voiceover"
  ↓
agent         reads AGENTS.md and the official Remotion skills, issues CLI calls
  ↓
kineto CLI    the only door: JSON output, stable exit codes, errors with hints
  ↓
kernel        video catalog · asset library · render · sync · check
  ↓
strategies    engine: Remotion · storage: local, S3-compatible · tools: tts, transcribe
What it holds Where
🎬 Video Code, metadata and render history videos/<id>/
🖼️ Asset Content-addressed file with license, author and source assets/manifest.jsonl + storage
📦 Render Each export with git sha, codec and Remotion version videos/<id>/renders.jsonl + storage

Each render bundles only its own video, so a broken video cannot block the others.

☁️ Storage

Assets and renders stay out of git. They go to the backend set in kineto.config.yaml (start from kineto.config.example.yaml).

  • local is the default: a directory inside the repository, no setup required.
  • s3 works with Tencent COS, AWS S3, Cloudflare R2, Alibaba OSS and MinIO. Only the endpoint changes.
  • Objects are immutable and uploaded with their content type and a long-lived cache header.
  • With publicUrl set to a CDN domain, render records carry a shareable link. The promo above is served this way.
  • Secrets appear only as ${ENV} references. envFile can point to a chmod 600 file outside the repository.
  • After switching to a shared backend, ./kineto storage push uploads what this machine already has.

🧰 Tools

Tools are plugins in tools/ that produce media outside Remotion. Each one is named after its capability, and none runs until it is enabled in kineto.config.yaml.

Tool Input → output Provider
🗣️ tts Text → voiceover WAV Tencent Cloud TTS
💬 transcribe Speech in an asset → captions for @remotion/captions whisper.cpp, local and free
./kineto tool tts "Every video starts with a single line." --to hello --as voice
./kineto tool transcribe voice --to hello --as captions
  • Results enter the asset library with license and provenance, like any other asset.
  • Settings and --to / --as are checked before a paid API is called.
  • A new plugin is one file. See tools/README.md.

⌨️ CLI

./kineto help
Command Purpose
doctor Check that this machine can make videos
setup Install the official Remotion agent skills and sync generated files
new <id> --title <text> Create a video from a template and register it
list / show <id> / update <id> Browse and edit the catalog
asset add <file|url> --license <spdx> Register an asset, optionally with --to <video> --as <alias>
asset link <asset-id> --to <video> --as <alias> Reuse a registered asset in another video
asset unlink <alias> --from <video> Remove an asset from a video once its code no longer uses it
asset update <asset-id> --license <spdx> Correct a registered license or author
asset list List all assets, or those of one video
tool list / tool <name> List tool plugins, or run one and register its result
studio [id] Open Remotion Studio with every video, or with one
render <id> Render, store and record a video, a scene, a GIF or a <Still>
sync / check [--deep] Regenerate derived files / validate the whole library
storage push Upload this machine's assets and renders to the shared backend
  • Output is JSON whenever stdout is not a terminal.
  • Exit codes: 0 success, 1 error, 2 usage error.
  • Commands that change records take a repository lock, so parallel agents are safe.

🛠️ Development

npm run verify    # typecheck, lint, tests and ./kineto check --deep (the CI gate)
npm run ship      # land the current branch on main once CI is green
  • The CLI and kernel are TypeScript run directly by Node's type stripping. There is no build step.
  • main only takes commits that passed CI on a branch, fast-forwarded by npm run ship. Branch, commit and changelog rules are in AGENTS.md.
  • Releases are published by pushing a version tag such as v1.0.0. See CHANGELOG.md.

📄 License

  • kineto's own code is released under the MIT License.
  • kineto is built with Remotion, which has its own license: free for individuals and companies of up to three people, a company license otherwise. See remotion.pro/license. These terms apply to anyone using kineto.
  • Each asset's license is recorded in assets/manifest.jsonl.

Reviews (0)

No results found