CueFrame

Templates

One document per finished film, with its inputs, looks and brand kits, applied to your footage from the desktop, an agent, the CLI or the API.

Start from a finished film

A template is one template.cueframe document: a complete, editable composition whose replaceable parts are named {{parameters}}, plus the components it needs, optional presets (looks) and the brand kits those looks render with. Applying a template binds your media and values into that composition; every layer stays editable afterwards.

The public catalog lives in cueframe-ai/cueframe-templates and is served at https://api.cueframe.ai/catalog/templates.json, no account needed. Your org keeps its own templates under /v1/templates.

Use one

Every surface applies the same document through the same lane; pick the one you already work in.

Desktop. Open the Library (the side rail's Library entry), choose a card, and press New project. The form asks for the template's inputs: a preset prefills the rest, each media parameter takes a file or the template's own sample. The project is created on your computer, the media imported, the template applied. Save your own project as a template with the Director's save_as_template, and check it with check_template before publishing.

Agent (MCP). list_templates shows the catalog and get_template returns a document's parameters and presets. start_template creates a new project; wait_job reports when its media and prepared assets are ready:

{ "template": "yosemite-warp-text", "projectName": "Yosemite", "preset": "granite",
  "values": { "text": "GRANITE" }, "media": { "source": { "sample": true } } }

Call wait_job with { "kind": "template", "id": "<jobId>" } until it returns the ready project. apply_template remains available for an explicit edit to an existing project.

CLI. template run starts the same preparation job and renders after it is ready. template status <jobId> --wait reconnects to a running job. template validate checks a document offline.

cueframe template run yosemite-warp-text --preset granite --media source=sample --values text=CARVED -o carved.mp4
cueframe template run ./template.cueframe --media source=./clip.mp4 --no-render --json
cueframe template status <jobId> --wait --json
cueframe template validate ./template.cueframe

API. Start a project from a template with an idempotency key, then poll its job status:

POST /v1/templates/yosemite-peregrines/instantiate
Authorization: Bearer <api key>
Idempotency-Key: <stable request key>

{ "projectName": "Yosemite", "values": {}, "media": { "source": { "sample": true } } }

The 202 response carries a jobId; GET /v1/template-jobs/{jobId} returns the project id at the ready stage. Failed jobs can be retried with POST /v1/template-jobs/{jobId}/retry; preparing jobs can be cancelled with POST /v1/template-jobs/{jobId}/cancel. A media value is { "mediaId" } for something you uploaded, { "url": "https://…" } to import, or { "sample": true } for the template's own sample. POST /v1/templates/{id}/apply is the separate edit operation for an existing project. A public slug is imported into your org on first use; POST /v1/templates with a document publishes your own.

Renders without a project

POST /v1/templates/:id/renders renders a template per request, without a project: the answer carries a shareUrl that redirects to the MP4 once the render completes, and a posterUrl. Send an Idempotency-Key per row so a retry never renders twice. This is the lane for personalised video at volume.

Looks and brand kits

A preset names a set of values and, optionally, a brand kit. The catalog lists one card per look, and each look's kit under its own id: template:<slug> for the document's kit, template:<slug>:<preset> for a preset's, so two templates never merge a kit. Pass brandKitId to apply or render with one of your org's kits instead.

Write one

A template is written in the desktop app from a project you have made, or by hand: template.cueframe is JSON the kernel validates (v: 1, slug, composition, parameters, components, optional presets, brandKit and gallery). The repository's CONTRIBUTING covers the document, the validator (node tools/validate.mjs) and the catalog. A published template binds every preset with its sample media; drafts may still lack a sample.

On this page