Primitive/video3 min read

Introducing /video: Generate video from your agent in one call

Produce text-to-video and image-to-video output from a single Naïve call, routed through Naïve's model catalog models (Kling, Minimax, Wan, and more) — composed with /image, /social, and /brand.

Primitive/video
TL;DR
  • /video generate video from a prompt or image in one runtime call
  • Model layer Naïve's model catalog catalog including Kling, Minimax, Wan, and others returned by `naive video models`
  • Text-to-video and image-to-video drive the generation with a script, an image, or both
  • Async by design submit a job, poll status, hand the URL to other primitives when ready
  • Composes with /image, /social, /brand keep visual identity consistent across the content stack
  • Billing dynamic credits per model; preview from the docs and the pricing page

Today we're launching /video — the primitive that turns an AI Employee into a video producer. Generate from a prompt, generate from an image, route through the Naïve's model catalog catalog of video models, and hand the resulting URL to /social, /email, or any other primitive that takes media.

The problem: video is the most expensive primitive to skip

For an autonomous content business, video is the most-watched format on every distribution surface — YouTube, TikTok, Instagram Reels, X, LinkedIn. It's also the hardest to produce. The status quo is fragmented: raw model APIs ship clip-length output with no compose surface, DIY pipelines around FFmpeg and TTS take months to assemble, and nothing of the above is a runtime call an Employee can make in one line.

The outcome: most agent-run content businesses post static images and text, leaving the highest-engagement format on the table. Until now.

How /video works

The workflow is straightforward:

  1. Pick a modelnaive video models returns the current Naïve's model catalog catalog, including Kling, Minimax, Wan, and additional families as they're added.
  2. Generatenaive video generate with a prompt (text-to-video) and optional image (image-to-video). Naïve submits the job to fal and returns a job id.
  3. Wait / poll — the CLI --wait flag polls for you; the API surface returns the finished URL on the jobs endpoint when the model completes.
  4. Compose — hand the URL to /social for distribution, /email for embed, or pair with /image and /brand to keep visual identity consistent across the content stack.

Two ways to produce: CLI or API

1. CLI

naive video generate \
  "60-second explainer of /video in our brand voice" \
  --model fal-ai/kling-video/v3/pro/text-to-video \
  --wait

List available video models with naive video models.

2. API

const response = await fetch("https://api.usenaive.ai/v1/video/generate", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.NAIVE_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "fal-ai/kling-video/v3/pro/text-to-video",
    input: {
      prompt: "60-second explainer of /video in our brand voice",
    },
  }),
});
 
const { job_id } = await response.json();

The job is async — poll with naive video status <job_id> or the jobs endpoint until the video URL is returned.

Image-to-video

For image-to-video workflows — animate a brand still, turn a generated /image into a moving asset — pass an image URL alongside the prompt and pick a model that supports image input:

naive video generate \
  "subtle camera push-in, brand colors" \
  --model fal-ai/kling-video/v3/pro/image-to-video \
  --image-url https://cdn.usenaive.ai/.../still.png \
  --wait

Pair with /image so the same Employee that generates the brand still also drives the motion pass.

What you can build with /video

Produce short-form clips for social distribution — Compose /video with /social so the same Employee that generates the asset also publishes it across the 10 documented social platforms.

Animate brand stills into moving creative — Use /image for the still, /video for the motion, /brand for the palette and tone.

Test creative variants at scale — Batch prompts and models; route the results into /social ad surfaces and feed performance back into the next generation.

Build a research-grounded video producer — Pair /video with /research so the script behind every clip starts from citations the runtime actually fetched.

Get started

Drop this starter prompt into any coding agent to wire up Naïve:

Read https://usenaive.ai/skill.md and use it to set up Naïve in my project.

Frequently Asked Questions
What is /video?+
/video is the Naïve primitive that produces video output for an AI Employee. It wraps the Naïve's model catalog video catalog (text-to-video and image-to-video models like Kling, Minimax, and Wan) behind one runtime call, returns a job id, and exposes the finished URL when the model is done.
How does /video work?+
Call /v1/video/generate with a model id and a prompt (or an image URL for image-to-video). Naïve submits the job to Naïve's model catalog, returns a job id, and tracks status. Poll naive video status or the jobs API until the video URL is available. Hand the URL to /social, /email, or any other primitive that takes media.
Which models does Naïve support?+
The catalog covers Naïve's model catalog text-to-video and image-to-video models — Kling, Minimax, Wan, and additional families as they're added. The authoritative, always-current list is `naive video models` (CLI) or the live `/v1/video/models` endpoint.
Is /video async?+
Yes. Video generation takes longer than a request-response cycle, so jobs return a job id immediately. The CLI's --wait flag polls for you; the API exposes status via the jobs surface so an Employee can do other work and check back in.
How much does /video cost?+
Generation is billed in dynamic credits per model — different models in the fal catalog have different price points. See the pricing page and the video docs for current rates.
How do I get started with /video?+
Run `naive video generate "a 60-second explainer of /video" --model fal-ai/kling-video/v3/pro/text-to-video --wait`, or follow the API examples in usenaive.ai/docs/getting-started/video. Quickstart: usenaive.ai/docs/getting-started/quickstart.
M
MyxEngineering

Engineering at Naïve. Owns the comms primitives.

@myx_naive