lazy-frames README

The project's README from github.com/cosmicstack-labs/lazy-frames. As one markdown file: README.md.

Lazy Frames — agentic video generation, byte-stable and fully local

Lazy Frames

npm version license

Agentic video generation. Feed a skill URL to your AI agent — it captures, authors a spec, runs the gates, and renders a pixel-perfect MP4. The core runs fully locally with no keys; reviewed plugins can opt into explicitly declared external services.

Same spec + same machine = byte-identical MP4, every time.

Part of CosmicStack.AI.

Give it to your agent

Paste the raw Markdown skill URL into your AI agent:

https://lazy-frames.cosmicstack.ai/skill.md

For example: Read this skill, then make a promo video for https://example.com.


Install

From npm

npm install lazy-frames

Then run any command via npx:

npx lazy doctor
npx lazy capture https://example.com projects/acme
npx lazy render projects/acme

From source (for development or the agentic skill)

git clone https://github.com/cosmicstack-labs/lazy-frames.git
cd lazy-frames
npm install && npm run build
node packages/cli/dist/index.js doctor

Prerequisites

Dependency Required for Check
Node.js ≥ 20 CLI + engine node --version
ffmpeg + ffprobe encoding + audio ffmpeg -version
Google Chrome headless rendering lazy doctor (Windows: Chrome/Edge in Program Files, or CHROME_PATH)
Python 3 audio sidecar (music, TTS, SFX) python3 --version or python --version; override with LAZY_PYTHON
Local TTS narration (say or Windows SAPI) lazy doctor
ELEVENLABS_API_KEY Optional ElevenLabs plugin lazy doctor

Run npx lazy doctor to verify all providers and see your hardware tier.

Quick start

Website promo — from URL to MP4

npx lazy capture https://example.com projects/acme
npx lazy snapshot projects/acme --update
npx lazy check projects/acme
npx lazy preview projects/acme       # review in browser
# ... approve ...
npx lazy render projects/acme         # byte-stable MP4

lazy capture writes screenshots @2x, palette, copy blocks, fonts, logo, and a starter spec.json.

Cinematic — generated stills + depth parallax + audio

npx lazy gen image -p projects/cine --seed 21 --style ridge --name r01
npx lazy gen music -p projects/cine --mood calm --bpm 90 --seed 21 --name bgm
# write spec.json referencing assets/gen/r01.png + r01.depth.png
npx lazy render projects/cine

Plugin marketplace

The Lazy Frames Plugin Marketplace indexes folder-owned, schema-validated extensions and their exact permissions. ElevenLabs is the only plugin included by default; running install grants project-scoped approval for external access:

npx lazy plugin install elevenlabs -p projects/cine
export ELEVENLABS_API_KEY="your-key"
npx lazy script projects/cine --provider elevenlabs --voice YOUR_VOICE_ID --apply
npx lazy render projects/cine

Each narration beat is anchored with sceneId and offsetMs, so the spoken line starts on the intended screen. Generated audio is normalized to canonical WAV and cached; the API key is never written to project files. Plugin dependencies are fingerprint-locked in the project, while consent is stored separately as a user-local, project-scoped approval.

Browse 16 plugins across voice, storytelling, visuals, audio, captions, and delivery, or run npx lazy plugin search. The other integrations are installable scaffolds: their manifests and permission locks work now, while execution remains blocked until a reviewed adapter ships.

Contributors add one self-contained plugins/<id>/manifest.json folder and run npm run plugins:build; the CLI registry, machine index, marketplace card, and detail page are generated from that folder.

CLI commands

Command What it does
lazy doctor Environment + provider capability report
lazy capture <url> [project] Capture a website → screenshots, palette, copy, starter spec
lazy gen image Generate procedural still + matching depth map
lazy gen music Generate procedural music WAV
lazy gen tts Generate TTS narration WAV (macOS say or Windows SAPI)
lazy script <project> Draft editable, scene-linked narration beats
lazy plugin search Search reviewed plugins by name or capability
lazy plugin info <id> Inspect status, provider, permissions, and detail URL
lazy plugin install <id> Install a fingerprinted plugin into a project
lazy check <project> Validate spec + run snapshot & determinism gates
lazy snapshot <project> --update Establish/refresh the regression baseline
lazy render <project> Render to MP4 (byte-stable, with audio)
lazy preview <project> Scrubbable timeline preview at localhost:4173, with mixed audio when the spec has it

Scene types

Type What it does
typography Text reveals: titles, quotes, lockups (4 reveal styles)
stat-hit Count-up numbers, labels, bars
browser-frame Screenshot in a browser chrome mockup with cursor
ui-callout Screenshot with dimmed mask, hotspot spotlight, label
atmosphere Drifting gradient blobs — ambient backdrops
parallax 2.5D camera move over a still (flat or depth-map mode)
video-layer Footage playback with trim, speed, grade
three-scene Deterministic 3D: cube/ico/grid/particles (canvas 2D)

Plus: 7 transitions (cut, fade, dissolve, whip-pan, light-leak, dip-to-black, luma-wipe), stage-level CSS grade presets, output-level 3D LUT pipeline, and declarative audio (narration + music + SFX).

Agentic skill

Lazy Frames ships with a complete agent skill. Point any coding agent at skill/SKILL.md — it contains the full routing rules, agent contract, and reference docs. The agent reads the skill (not the source code) and knows how to capture, author, check, preview, and render.

skill/
  SKILL.md                    ← entry point + routing + agent contract
  references/
    spec-format.md             ← full spec schema
    scene-types.md             ← all 8 scene types
    workflows.md               ← website-promo / cinematic / edit
    cli.md                     ← every CLI command
    gates.md                   ← determinism + snapshot gates

Determinism

Same spec + same machine = byte-identical MP4 (SHA-256 verified). Enforced by:

Examples

Verify

npm run verify:demo        # byte-stability (two renders, sha256 compare)
npm run verify:cinematic   # gen assets + gates + audio determinism

Architecture

spec.json (typed JSON)
  ├─ @lazy/engine       compile spec → HTML composition + channel data
  ├─ @lazy/renderer     headless Chrome (jitless + swiftshader) → frames → ffmpeg → MP4
  ├─ @lazy/capture      site screenshots + palette/copy/font/logo extraction
  ├─ @lazy/gen-sidecar  Python: procedural music, TTS (say), SFX synthesis
  └─ @lazy/cli          lazy capture | gen | check | snapshot | render | preview | doctor

License

MIT © CosmicStack Labs

lazy-frames (cosmicstack-labs/lazy-frames)

Searching Database…

Что это?Lazy Frames — это агентский инструмент генерации видео: вы передаёте своему ИИ-кодинг-агенту URL навыка, он захватывает исходный материал, составляет спецификацию и рендерит её в попиксельно точный, байт-стабильный MP4, причём основной конвейер работает полностью локально и облако не требуется.
Это CLI-инструмент или библиотека для импорта?Это Node.js CLI (команда `lazy`, запускаемая через npx) в паре с файлом агентского навыка, который кодинг-агенты читают, чтобы управлять захватом, написанием, проверкой и рендерингом, — это не библиотека для импорта в свой код.
Как его запустить?Установите через `npm install lazy-frames` (или соберите из исходников для разработки) и запускайте команды через npx, например `npx lazy capture`, чтобы снять сайт, или `npx lazy render`, чтобы получить MP4. Сначала выполните `npx lazy doctor`, чтобы проверить окружение.
Что нужно установить, кроме npm-пакета?Node.js 20 или новее, ffmpeg + ffprobe для кодирования, Google Chrome для фонового рендеринга и Python 3 для аудио-модуля (музыка, TTS, SFX); озвучка использует macOS say или Windows SAPI, для плагина опционален API-ключ ElevenLabs.
Все ли интеграции-плагины в маркетплейсе реально работают?По умолчанию включён только плагин ElevenLabs. Остальные записи маркетплейса — устанавливаемые заготовки: их манифесты и блокировки разрешений уже работают, но выполнение остаётся заблокированным, пока не выйдет проверенный адаптер.
Покидают ли мою машину мои данные или API-ключи?Основному движку ключи не нужны, и он работает полностью локально; до внешних сервисов добираются только явно проверенные плагины вроде ElevenLabs, и даже тогда API-ключ никогда не записывается в файлы проекта.
Как гарантируется одинаковый результат при каждом запуске?Рендеринг идёт с флагом V8 --jitless, программным рендерингом через --use-angle=swiftshader, целочисленными CSS-трансформациями, putImageData для canvas-сцен и бит-в-бит точным кодированием ffmpeg, так что одна и та же спецификация на той же машине даёт MP4, идентичный по SHA-256.
Какие сцены можно строить?Восемь встроенных типов сцен: появление типографики, счётчики статистики, макеты в рамке браузера, выноски UI, атмосферные фоны, параллакс/движения глубины, кадры в видеослое и детерминированное 3D из трёх сцен, плюс 7 переходов и пресеты цветокоррекции/LUT.
Почему агента направляют на файл навыка, а не на исходный код?skill/SKILL.md кодирует все правила маршрутизации и контракт агента для захвата, написания, проверки, предпросмотра и рендеринга, так что агент следует заданному воркфлоу, а не вынужден реверс-инжинирить кодовую базу.
Сколько плагинов в маркетплейсе и что они покрывают?16 проверенных плагинов охватывают голос, сторителлинг, визуал, аудио, субтитры и доставку, а искать их можно через `npx lazy plugin search`.
Size
4 MB
Stars
165
Updated
CommitAug 19
Age
2mo
Commits · 90 Days