Programmable video with embedded generative intelligence.
Agents author the code. Frontier models — Grok Imagine, ElevenLabs, and Cloudflare AI Gateway (Veo, PixVerse, FLUX, Runway, and more) — generate assets on demand. The compiler delivers precise timing, effects, shaders, and reusable templates.
Structure-first video that scales like software — never like one-shot prompts.
Works in Claude, Cursor, Aider, OpenCode, and Codex. Or use the web editor.
How SceneRok works
Agents don’t prompt. They program.
Intent becomes VidScript. Generative models execute as functions inside the script. The compiler produces deterministic, reproducible video.
Intent
Describe the video or give your agent a brief. No blank timelines.
Agent authors VidScript
Your agent writes readable, versionable code using templates and brand rules.
Generative plugins at compile
Imported package functions like xai.imagine(), cf.genVideo(), cf.image(), eleven.music(), and xai.tts() run inside the script. Pick any Cloudflare Gateway model with model:.
Deterministic composition
The compiler enforces timing, shaders, overlays, and audio mixing. Output is reproducible.
import cf from "@scenerok/cloudflare"
import xai from "@scenerok/xai"
input brand = "https://cdn.scenerok.com/samples/brand-hero.mp4"
# Generative assets created at compile time — pick any Cloudflare Gateway model
[-] = video cf.imagine("minimal product shot, floating in void, soft rim light", model: "pixverse/v6", aspect_ratio: "9:16", duration: 6)
[0s .. 6.5s] = video brand
[0.8s .. 5.8s] = audio xai.tts("This is not generated. This is compiled.", voice: "jessica")
output to "launch-reel.mp4", resolution: "1080x1920"Assets from Grok Imagine, Cloudflare AI Gateway, and ElevenLabs are resolved before the timeline is even rendered.
Choose your interface
Built for three ways of working
Creators & motion designers
Web editor first
- Real-time visual preview
- Direct VidScript control when you need precision
- Start from production-grade system templates
Agent-first builders
CLI + MCP + Skills
- scenerok CLI + MCP server for Claude, Cursor, Aider
- Tell your agent what to build, it writes + renders
- Stay in your IDE. Never touch a timeline.
Teams & systems
Templates + version control
- Parameterized templates with enforced brand guardrails
- Fork, version, and reuse across campaigns
- Unified token billing + full audit trail
Inside the language
Generative calls.
Deterministic outcomes.
Call frontier models as first-class functions inside VidScript. They run at compile time. You keep full control over timing, composition, and brand rules.
import xai from "@scenerok/xai"
import motion from "@scenerok/basic-animations"
[-] = video xai.imagine("cyberpunk city at dusk, cinematic", aspect_ratio: "9:16", duration: 4.2)
[2.8s .. 7s] = text "The future is compiled", style: title, animate: motion.fadeIn(0.6s)import cf from "@scenerok/cloudflare"
import motion from "@scenerok/basic-animations"
[-] = video cf.imagine("luxury product macro, studio rim light", model: "google/veo-3.1-fast", aspect_ratio: "9:16", duration: 6)
[-] = video cf.image("matching hero still", model: "black-forest-labs/flux-2-pro-preview", aspect_ratio: "9:16")
[0.4s .. 6s] = text "One plugin. Many providers.", animate: motion.fadeIn(0.5s)import xai from "@scenerok/xai"
import eleven from "@elevenlabs/music"
let voice = xai.tts("This is not a prompt. This is a program.", voice: "jessica")
let score = eleven.music("dark electronic tension, 90bpm", duration: 18)
[0s .. 18s] = audio voice
[0s .. 18s] = audio score, volume: 0.35One plugin.
Every Cloudflare Gateway model.
The Cloudflare media plugin routes image and video generation through Cloudflare AI Gateway and Unified Billing. Use curated first-class models or pass any gateway model id with model:.
Defaults: pixverse/v6 for text-to-video and black-forest-labs/flux-2-pro-preview for stills. Call cf.listModels() from VidScript to inspect the full catalog at compile time.
Cloudflare plugin referenceVideo models
PixVerse v6 text/image-to-video, 1-15s, audio optional, up to 1080p.
PixVerse v5.6 text/image-to-video, 1-15s, audio optional, up to 1080p.
Vidu Q3 Pro text/image/start-end-frame video, 1-16s, audio optional.
Vidu Q3 Turbo lower-latency text/image/start-end-frame video, 1-16s.
Runway Gen-4.5 text/image-to-video, 2-10s, ratio-specific output sizes.
MiniMax Hailuo 2.3 text/image-to-video with realistic motion and VFX.
ByteDance Seedance 2.0 multimodal video, 4-12s, audio optional.
Google Veo 3.1 video, fixed 4s/6s/8s durations, audio optional.
Google Veo 3.1 Fast lower-latency video, fixed 4s/6s/8s durations.
Google Veo 3 Fast lower-latency video, fixed 4s/6s/8s durations, audio optional.
xAI Grok Imagine Video through Cloudflare Unified Billing.
xAI Grok Imagine Video 1.5 preview through Cloudflare Unified Billing.
Alibaba Wan 2.7 image-to-video, 2-15s, 720P/1080P.
Image models
FLUX.2 Pro Preview image generation and multi-reference editing.
OpenAI GPT Image 2 through Cloudflare, image generation and editing.
OpenAI GPT Image 1.5 through Cloudflare, supports transparent PNG workflows.
xAI Grok Imagine image quality model through Cloudflare.
xAI Grok Imagine image model through Cloudflare.
Recraft V4 Pro production image generation.
Templates with teeth.
Real placeholder semantics. Versioned. Forkable. Parameterized.
Dynamic slots can be filled by generative calls, external data feeds, or human input — while brand rules, timing structures, and visual systems remain enforced by the template.
Browse system templatesDrop in new assets or let cf.imagine(), xai.imagine(), and eleven.music() populate the slots.
Drop in new assets or let cf.imagine(), xai.imagine(), and eleven.music() populate the slots.
Drop in new assets or let cf.imagine(), xai.imagine(), and eleven.music() populate the slots.
Drop in new assets or let cf.imagine(), xai.imagine(), and eleven.music() populate the slots.
Built for production
Your video is now source code.
Hybrid execution
Local preview + Vast.ai / Jarvis Labs GPU for final renders. Same source, different targets.
Unified token wallet
One balance for traditional renders and generative plugin calls (Grok Imagine, Cloudflare Gateway models, ElevenLabs). Transparent pricing.
Source of truth
Every video is code. Diff it. Version it. Reproduce it. No more "final_v7_reallyfinal.mp4".
Every render and every generative call is logged against your token wallet. Full reproducibility. No black boxes.
Agents don’t prompt.
They program.
Install the SceneRok CLI and skills once. Then work entirely through Claude, Cursor, Aider, or Codex.
One command in your agent: Read the SceneRok skill and create a launch reel