Product updates

Changelog

New capabilities, improvements, and fixes to the CueFrame API — the video-composition layer your agents build on.

v1.38.1

Template renders check your values up front and validate the delivered MP4

Improved
  • Every render is checked before it is delivered. A delivered video is an MP4 with H.264 or HEVC video and AAC audio, or no audio track when the composition is silent, with its index at the front so playback starts before the download finishes. A render that does not meet those checks fails with render_output_invalid before it reaches a share link.
  • The templates guide replaces the recipes page. The docs describe one template document, its looks and its brand kits, applied from the desktop app, an agent, the CLI or the API. Links to the recipes page redirect to it.
Fixed
  • Template renders refuse bad values when you send them. POST /v1/templates/:id/renders now binds your values and media before the render is created, so a missing required value, a value the template does not declare, a media value sent under values, an unknown preset or media of the wrong kind answers 422 (template_values_invalid, template_parameter_undeclared or template_media_kind_mismatch) with details.fields naming each parameter. Nothing is imported or charged. Before, the render was accepted and failed a few seconds later as "Activity task failed".
  • A template render that fails says why. When a render is refused after it starts, its errorCode and errorMessage carry the reason, not a generic failure.
  • A preview still past the end of the composition is refused on the cloud too. A preview_frame request for a timestamp at or past the composition's last frame answers 422 timestamp_out_of_bounds when you submit it, as the desktop app already did, instead of a still of the last frame.
v1.38.0

Templates over the API, with hosted renders and share links

New
  • Templates for your org. POST /v1/templates publishes a template document: its timeline, its parameters, its presets and its brand kit. Publishing the same slug again bumps its version. GET /v1/templates lists your templates, GET /v1/templates/:id reads one, and DELETE /v1/templates/:id removes it.
  • Apply a template to a project in one call. POST /v1/templates/:id/apply binds your values and media, adds the template's components, writes its brand kit onto the project (or the preset's, or the kit you name with brandKitId) and saves the timeline. A media value is { mediaId }, { url } (an https URL, imported once) or { sample: true } (the parameter's own sample). While an import is still running, the answer is 202 with pendingMediaIds: call again once they are complete. A successful apply sends a composition.updated webhook.
  • Render a template without a project. POST /v1/templates/:id/renders renders a template straight to an MP4 and answers with a shareUrl and a posterUrl. The share link redirects to the video once it is complete; cancelling or revoking the render closes the link. It is priced as a render. Send an Idempotency-Key per request to make retries safe: a retry with the same body returns the same render, and a changed body starts a new one.
  • The Director works with your templates. It can list your templates, read one, and apply it to the project you are editing.
Improved
  • Caption faces are stored as fonts that render. When a caption style or a brand kit names a weight or style its font family does not ship, the nearest face the family does ship is stored instead (a tie goes to the heavier weight, and italic is dropped where the family has no italic). Only a face with no match is refused with font_not_reproducible.
Fixed
  • The matrix-decode text graphic renders with its defaults. Its default and example weights are now ones its font ships, so it is no longer refused with font_not_reproducible.
v1.37.0

Component clips replace alpha layers, and component edits move their placements

Breaking
  • The alpha-layer clip kind is removed from /v1. component is now the one kind for baked graphics. Clips you already stored as alpha-layer were converted to component automatically, so existing compositions keep rendering with no action from you. A request that still sends kind: "alpha-layer" now fails validation: send kind: "component" instead.
New
  • Editing a component can move its placed clips. update_component (and PUT/PATCH /v1/components/:id) accepts an optional projectId, plus compositionId to pick a composition other than the project's active one. The placements in that composition move to the new version in the same write. The answer reports repinned (the composition, how many placements moved, and its new ETag) and placementsPinnedToPrevious, the number of placements elsewhere that still use the previous version. Without projectId, no placement moves.
  • Component clips render the exact version they were placed with. Renders, retries and preview stills use the version each clip is pinned to, so editing a component never changes a video you already composed until you move its placements.
  • Previews of unsaved drafts accept unpinned component clips. A draft whose component clips name no version is previewed with the latest version, the same one a save would pin them to, instead of being refused.
Improved
  • Older projects are upgraded in place. Compositions saved with older caption settings were upgraded to the current format automatically. Nothing to do on your side.
  • Storage usage counts only the bytes you own. Stock footage and sound-pack files shared across organizations no longer count toward your storage usage.
Fixed
  • Moving placements notifies you. A component update that moves a composition's placements now sends a composition.updated webhook.
  • Render quotes for unreadable compositions return 422. A composition that cannot be read now gets a clear validation error instead of a generic server error.
  • Render retries keep their component versions. Retrying a render uses the same pinned component versions as the original attempt.
v1.36.1

Workspace cleanup keeps shared stock and sound files

Fixed
  • Shared media stays available. When a pay-per-use workspace expires, cleanup now removes only the files that workspace uploaded or generated. Stock footage and sound-pack files shared with other workspaces are kept.
  • Pay-per-use stock and sound imports expire with the workspace. They no longer stay behind after the workspace is gone.
v1.36.0

Component clips render in the cloud, and newer clients connect

New
  • Component clips render in the cloud. A composition that places an installed component as {kind:'component', componentId, props} is baked and composited in renders and preview stills, the same way alpha layers are.
Fixed
  • Newer clients connect. The compatibility check accepts clients on any supported Studio contract version instead of refusing the newer ones.
  • Agent guidance for components. The published agent skills now tell agents to place installed components as component clips.
v1.35.0

Native captions, read any composition, and clearer API errors

New
  • Native captions in compositions: captions are now part of the composition itself, with regions, placement and depth, per-clip visibility, word layouts, italic fonts and style controls, and what you review matches what renders.
  • Read a specific composition: you can now fetch any composition in a project by target, not only the currently active one.
  • Responses name their contract: every API response and error body now identifies the API contract that produced it, so your agent knows exactly what it is talking to.
  • Browser surface discovery: the account API now reports which browser surfaces are available and says clearly when a project has none.
Fixed
  • Typed errors instead of generic 500s: 105 error conditions that previously surfaced as internal errors now return their proper typed codes, and exceeding the storage size limit returns a typed 413.
  • Images are usable in scenes: image dimensions are now read at import, and existing media has been backfilled, so scenes can place your images correctly.
  • Large compositions save: oversized composition snapshots are now stored successfully instead of failing the save.
  • WebGL components render in scenes: scene shots that include WebGL components now render instead of failing.
  • Creative keys can see job costs: a creative API key can now read what its own jobs cost.
  • Clips sign-in recovers: a failed sign-in to Clips no longer leaves you stuck.
v1.34.0

Consistent fonts, clearer usage limits, and steadier thumbnails

Fixed
  • Consistent font rendering — CSS font stacks are now evaluated the same way everywhere a font is used, so text renders consistently across your project.
  • Clear font refusal messages — when a font can't be applied, you now get a single, consistent explanation instead of conflicting messages.
  • Clip analysis respects your plan — clip analysis now checks your usage cap before running and clearly reports when it's been blocked.
  • Thumbnail links now match the rest of the media response — thumbnailUrl on GET /v1/media and GET /v1/media/:id is signed for 1 hour, the same lifetime as every other link on the row (it was 7 days). If you cache these URLs, refresh them within the hour. A thumbnail whose media is still processing now comes back null rather than an unusable value, so the field is either a working URL or nothing.
  • Accurate scene media types — scene slot bindings read the stored media type, so an image whose content type was detected from its bytes is no longer rejected as the wrong kind.
v1.33.0

Behind-subject captions, one wallet, and faster renders

New
  • Behind-subject titles and captions — place titles and captions behind your speaker using a decontaminated matte, including layouts that split text spatially around the subject.
  • One wallet for billing — generation now draws from a single wallet with a bounded free tier, and each org gets its own gateway key automatically at sign-in.
  • Stills on the timeline — bring images into your project and place them on dedicated image tracks alongside your video clips.
Improved
  • Faster account and dashboard loading — the console defers loading account and auth data until it's actually needed, so navigating between pages feels snappier.
  • Parallelized render asset preparation — the render pipeline downloads and prepares assets in parallel, shortening bake times on longer scenes.
Fixed
  • Render downloads last the full seven days — download links for finished renders now honor their entire seven-day lifetime instead of expiring early.
  • Color grade and blur effects now render — clips with color-grade or blur effects applied were visually inert and now show up correctly in output.
  • Clear error on invalid media — requests referencing an invalid media ID now return a proper 422 instead of a retryable 500.
v1.32.0

The timeline grows up: keyframes, linked audio, pro trims — and Windows

New
  • Keyframe animation — animate a clip's opacity, scale, rotation, position and volume with keyframes on the timeline. Double-click a property lane to add one at the playhead, and shape the motion with a curve editor: drag the bezier handles or pick a preset, and a hand-drawn curve near a named ease snaps to it.
  • Linked audio and video stay in sync — clips can be linked as a pair: selecting one selects both, and every move, trim and edit carries the pair together instead of silently drifting your sound from your picture.
  • Slip, roll and slide — the three pro trims. ⌥-drag a clip to slip its content without moving the clip; ⌥←/→ rolls a cut one frame at a time; ⌥⇧←/→ slides a clip between its neighbours. Each refuses cleanly when there's no room rather than doing something you didn't ask for.
  • Color grading in the editor — one click lays a grade across your composition, with presets (cinematic, warm, cool, vintage, sepia, bleach bypass) plus manual saturation, contrast, brightness, temperature and hue. The clip shows its look at a glance.
  • A real mixer — per-track volume faders, dB level and fade in/out on every clip (drawn right on the clip body), audio roles, and automatic ducking that drops music under speech.
  • Multi-select that means it — marquee or ⌘A selects many clips, and delete, copy, paste and move act on all of them. ⇧⌫ lifts a clip out leaving a gap; ⌫ still ripples.
  • Copy and paste clips — ⌘C/⌘V, pasting at the playhead with the copied shape preserved.
  • Sequences inside sequences — a composition can now embed another composition as a clip, so an intro or a reusable segment is one object, not a hand-flattened copy.
  • See the agent work — when the AI director edits your timeline, the touched clips glow and an activity strip shows what it did, where, as it happens.
  • CueFrame for Windows — the desktop app now ships as a signed native Windows installer, with Windows-specific media, proxy, and file handling.
  • Cut clips render as real segments — a cut clip now shows as separate segments with seam markers at the cut points, matching how you'd read it in a traditional editor.
  • On-canvas move, resize, and rotate — select any element directly on the canvas and transform it with snapping, rather than through a side panel.
  • GPU-accelerated local transcription — turn on optional GPU acceleration for local transcription, and get hardware-accelerated HEVC decoding on Windows.
Improved
  • An editor you can drive from the keys — J-K-L shuttle with speed ramping, frame-accurate arrow stepping, marker navigation (⇧M/⌥M), split at playhead or at every marker, and a shortcut card that can no longer advertise a key the app doesn't bind.
  • Snapping you can turn off — a lit toggle in the toolbar, and ⌥ suspends it mid-drag. Snap targets now include caption boundaries and beats.
  • Transitions are visible on the timeline — drawn at the clip seam at their real duration, alongside speed and audio-role badges on the clips themselves.
  • Faster timelines — clips outside the viewport aren't built at all, thumbnails decode in a single pass instead of many separate seeks, waveform detail follows your zoom, and zoom anchors to the playhead instead of throwing you to the start.
  • Unrenderable clips are named on open — a project that contains a clip it can't render now tells you which one, as soon as you open it.
  • Errors reach the right place — error messages are now routed to surface where you can actually see and act on them.
Fixed
  • Overlapping clips can no longer happen — every way of placing a clip (drag, drop, paste, and the AI director's edits) now resolves collisions the way you'd expect: trimming, splitting or replacing what's underneath, never silently stacking.
  • Sign-out fully closes your session — signing out on desktop now correctly ends the session everywhere instead of leaving it live.
  • Deleted media is actually removable — media the library had lost track of can now be deleted instead of lingering as an orphaned file.
  • Jump cuts no longer flash deleted content — trimmed or deleted frames at a cut boundary no longer briefly appear during playback.
  • Caption and render fixes — captions now hold for their font to load before appearing, and a clip that produces no frames no longer fails the whole export.
v1.30.0

CueFrame Desktop arrives, with restore points and a unified media library

New
  • CueFrame Desktop — a native desktop app ships with everything it needs built in (rendering, transcription, browser), plus an onboarding tour, automatic updates, and crash reporting.
  • Restore points — every turn your Director takes is saved as a version, so you can jump a project back to exactly what an earlier turn produced, on web or desktop.
  • Inspector panel and drag-to-timeline — a dedicated properties panel lets you edit clip settings directly, and you can now drag media from your library straight onto the timeline with snapping.
  • One search for all your media — search spans your cloud and local libraries together, with sorting by name, duration, or date, and full-resolution imports.
Improved
  • Live chat activity — Director chat now streams tool calls, phases, and plans as they happen instead of showing a silent wait.
  • Clearer spend limits — hitting a spend limit now opens an inline consent dialog to raise your budget, instead of just blocking the request.
Fixed
  • Staying signed in on desktop — the desktop app could report "CueFrame is out of reach" while you were signed in, switching cloud features off until you signed in again.
  • Imported clips start processing right away — media added by the agent, or from Frame.io, now transcribes and indexes on import instead of waiting for the next app launch.
  • One unavailable clip no longer blocks the whole preview — the rest of your timeline plays, and the clip that cannot load says why.
  • Removing media from your library — the Remove action now works for generated and cloud-synced media too.
  • Transitions stay put — transitions no longer slide the picture off the edge of the timeline.
  • Captions match on screen and in export — authored captions now render identically in preview and in the final render.
  • Brand kits actually apply — brand kit colors and tokens no longer get silently dropped when applied to a template.
v1.29.0

Search your own footage, sign in securely, and take full motion presets offline

New
  • Search your own footage — run semantic search over your organization's own video library, the cloud counterpart to desktop's on-device search.
  • Secure device sign-in — sign in through a proper device-authorization flow instead of a localhost redirect.
  • Full motion presets, now local — the desktop app applies the complete motion-preset set (not just fades) directly in the editor, with local catalog browsing to match.
  • Cloud export for web — trigger renders from the web editor with a dedicated export lane, plus render history and a components-library panel in the export popover.
  • Spend-consent session budget — set a session-level spending budget that gates cloud usage instead of interrupting you with a modal every time.
Improved
  • Motion presets stay alive for the whole clip — presets now carry subtle continuous drift and breathing motion throughout, instead of settling into a static hold that read as a slideshow.
  • Desktop exports fail loudly instead of hanging — MP4 export now reports the real error and exit code instead of getting stuck on "Bundling…" forever.
  • Preview stills match what you'll actually get — still frames now render captions and static card overlays correctly instead of showing blank backgrounds.
Fixed
  • Rendering a clip suggestion works again — compositions created from a clip suggestion carried captions in a shape the renderer rejected, so those renders always failed; they now render correctly.
  • Imported video files report the correct size — URL-imported videos now record their real file size instead of zero.
  • Render failures now say what went wrong — failed renders surface the actual error (with a stable error code) instead of a generic "unexpected error".
v1.28.0

MCP tools return real previews, not just links

New
  • Agents can see their work — MCP tools now return actual pixels: catalog thumbnails, authored card previews, checkpoint grading stills, media poster frames, and rendered frame previews, instead of just links or descriptions.
  • Every MCP tool is titled and safety-annotated — tool metadata now accurately flags which operations are destructive versus safe, so agents can make better decisions before calling them.
  • One-click install for Cursor and VS Code — add CueFrame to your editor from the docs with a single click, instead of copying a config block by hand.
  • Onboarding setup stays visible — the console setup guide minimizes once you've completed it but is never hidden, so you can always get back to it.
Improved
  • Faster, cheaper previews — previews are now bounded by size and cached when immutable, cutting redundant work on repeat requests.
Fixed
  • Preview generation restored — a runtime incompatibility was silently breaking preview image encoding; previews now generate reliably and failures are instrumented instead of dropping silently.
  • Billing entitlements report correct units — usage entitlements now carry their unit (minutes vs. renders) instead of a bare number, and account status now correctly reflects which features are available to each organization.
  • Invalid media references return clear errors — a malformed media ID now returns a proper 400 instead of a server error.
  • Privacy policy updated — the subprocessor list now names every vendor that processes or renders your media, and the policy carries a dedicated privacy contact.
v1.27.0

Read compositions back as JSON, job-shaped skills, and public per-operation pricing

New
  • Read your composition back — get_composition returns the full edit as JSON. It was the most-cited gap in the API: agents could write an edit but never read one back to reason about it.
  • Seven job-shaped skills — ask for the job, not the tool: make a social reel, cut a talking head, build a launch video, every format from one edit, add a music bed, rebrand a video. Each one names the standard it has to meet.
  • A definition of done — the new video-craft standard states the bar every finished video is held to: one claim, every channel carrying it, and three tests it has to survive.
  • Pricing is public, per operation — the OpenAPI spec is served at the API root and every paid operation publishes its price before you call it.
Improved
  • Audio is decided, never defaulted — a render with no audio track now returns a no_audio_track advisory. Silence has to be chosen; it can no longer happen by accident.
  • Brand graphics guidance — the agent surface now steers to authored cards for brand typography instead of generic text templates, so branded work stops looking like a template.
  • Text behind the subject renders at full fidelity — the slight dim and desaturation applied to behind-subject overlays is gone. A behind-subject title now adds the text and nothing else.
  • Brand refresh — amber, Zodiak type, and a dither treatment now run consistently across the app, landing site, console, and docs.
Fixed
  • Billing charges only for real work — no charge for URLs that can only 404, and the ledger records exactly what was charged.
  • Card layout guidance reaches your agent — the card canvas contract was being dropped before it ever reached the generated tool schemas, so agents sized cards blind. It now arrives intact.
  • Hero text is back — the heroText surface returns, with the parameter bug that shelved it fixed.
  • Published render prices match the bill — renders bill per whole output minute with a one-minute minimum, and the rate card now says so.
v1.26.0

Credits-first billing, real usage visibility, and safer API surfaces

New
  • Credits-first billing — One balance now powers generation, render, compose, and verification, replacing subscription tiers with measured, pay-per-use pricing.
  • Usage page — See every API call in your dashboard, along with what it measured and what it cost.
  • Caption content authoring — New captions.fromTranscript and setCaptions operations let your agent write and edit caption text directly instead of only styling it.
  • Overlay transforms render for real — Position, opacity, scale, and rotation set at the clip level now apply to overlays in the finished render.
Fixed
  • Hardened tenant isolation — Caller-supplied compositions are now validated through the strict schema at every ingress, and media URL signing is scoped to the owning organization.
  • Billing accuracy — Metered pricing now matches the quote on every lane, and settlement amounts are recorded exactly as charged.
  • Behind-subject rendering fixes — Full-bleed plates and background graphics placed behind your subject now honor opacity and no longer disappear.
  • Clearer API errors — Malformed project or path IDs now return a proper 404 instead of an internal server error.
v1.25.0

Brand sound kits, generated audio, and live component rendering

New
  • Brand sound kits and audio roles — brand kits now carry a sonic logo and sound identity, and every media item can declare a role (voice-over, music, sound effects, ambience) that routes ingest enrichment and drives an engine-owned default mix — voice leads, effects punctuate, music and ambience sit under.
  • Org sound palette and free pack placement — draw from your organization's own sounds plus a curated CC0 pack of 40 sound effects and 7 music beds, with pack sounds placed at no extra cost or feature-gate friction.
  • Generate sound effects and speech from text — describe a sound effect or line of dialogue and get back a captioned, envelope-matched SFX clip or a multilingual speech track with word-level timestamps.
  • Beat-synced music in context — music beat grids and word-level transcripts surface in media context, and a new composition op materializes them as timeline markers so agents can cut and caption on the beat.
  • Live component rendering — install components that render fresh on every render, or freeze them into a cached bake, with instant in-page live preview.
Improved
  • Faster multi-component renders — component bakes now run concurrently with right-sized compute, sharply cutting render latency for films with many components.
  • Stricter render validation — new automated checks catch blank renders, transparent bakes that come out opaque, incomplete delivered files, drifted sound-effect hits, and hard mid-film audio discontinuities before they're handed back.
  • Brand-bound graphics and typography — auto-generated graphics and typography now pull directly from your brand kit instead of falling back to hardcoded defaults.
Fixed
  • Caption sizing and placement — caption font size is now correctly treated as a percentage of composition height, and bottom-placed captions use their full available width instead of being capped at half.
  • Editor autosave reliability — fixed a stale-state loop that could interrupt autosave in the web editor.
v1.24.0

Brand-motif cards in the design pass, plus faster designer turns

New
  • Brand-motif cards — the compose design pass can now reproduce a brand kit's card motifs (keyword pills, interstitial title cards) as native CSS card clips, steered by the motifs observed in your inspiration exemplars.
Improved
  • Leaner design turns — the design pass carries a much smaller component catalog per turn, making design iterations faster and cheaper.
Fixed
  • Style references with JPEG exemplars — viewing a brand kit's inspiration frames no longer fails when the exemplar images are JPEGs; every image is now labeled by its real media type. Composing with an inspiration kit works reliably again.
v1.23.0

Brand kits learn to see, and every job gets a cancel button

New
  • Brand kits from uploaded exemplars — feed in example images and a new extraction skill builds a reusable brand kit from them.
  • Wider caption styling controls — new plate, entrance, and emphasis-plate knobs give captions more expressive range, including a clean plateless style.
  • Brand kit integrity enforced — a composition now fails loudly instead of silently shipping without your brand's look when the kit can't be resolved.
  • Style-reference vision for the director — the director can now see your brand kit's reference images and steer composition toward their motifs.
  • One-line agent setup — wire your agent up to CueFrame with a single install line.
  • Cancel jobs, exports, and compose runs — new cancel endpoints let you stop an in-flight job, export, or compose run at any time.
  • Refined warm palette — updated default color palette with decorative shadows removed across the catalog.
Fixed
  • Cancel now cascades fully — cancelling a render or session also stops the underlying subject-detection and generation work instead of leaving it running.
  • Brand kit resolution on the initial plan — brand kit styling is now resolved right from the first plan instead of arriving late.
  • Preview frame source resolution fixed — preview frames now correctly resolve their underlying media source.
v1.22.0

Budget ceilings, graphics mandates, and stage holds

New
  • Budget ceilings that deliver — budgetUsd on compose is now enforced end-to-end: a live spend_updated ledger streams as the job runs, and when the ceiling nears, the Director stops refining gracefully and ships the best version within budget instead of overrunning.
  • Graphics mandates on beats — a brief beat can now carry graphic: { role, items }. Mandated graphics are honored at planning time or the plan is refused with the exact fix — list items are carried verbatim into the composition.
  • Stage-by-stage hold — compositions now pause at every stage (content, layout, motion) by default for your review; auto-progression is the explicit opt-in (gates.autoApprove).
  • Session-sighted previews — preview-frame and score-composition accept a session_id, so in-session previews and scores always reflect the composition being edited, never a stale one.
  • Motion presets — apply a motion preset to any approved card to instantly mint a tenant component with the right animation and alpha-layer form.
  • Catalog-driven design briefs — designs draw from a deterministic catalog of candidates, so the same editorial role gets a consistent, on-brand selection every time.
  • Direct upload — upload footage straight to storage with a presigned PUT and finalize it through a single API call.
Fixed
  • Pinned caption emphasis is honored, not graded — if you pin emphasisPhrases, the evaluator no longer penalizes your deliberate emphasis pattern.
  • Composes fail fast and honestly — a candidate that cannot see or verify its own work fails loudly instead of silently retrying the whole pipeline from scratch; refinement rounds stop as soon as scores provably cannot improve.
  • No more self-blocked jobs — a leaked session can no longer hold a lease that blocks its own job from running.
  • Designed clips persist — card and component clips built during design now survive being saved and reloaded.
v1.21.0

Compose fails loudly, and a batch of reliability fixes

Improved
  • A stalled compose fails loudly — infrastructure failures and stalled plans now surface immediately instead of leaving a compose hanging until it times out.
  • Earlier exits on low-quality runs — a compose run now terminates as soon as output quality drops below threshold, rather than burning its remaining budget on a run that cannot recover.
  • Your content is never silently dropped — the planner can no longer remove content you supplied, and a compose that cannot see its own output is reported as a failed run instead of quietly producing something unreviewed.
Fixed
  • Media processing retries no longer report a false error — retrying a media job that was already running returned a client error, which briefly marked the item as failed even though it was processing normally. It now reports the job as already running.
  • POST /v1/media/:id/process works again — the endpoint failed with an internal validation error instead of starting processing.
  • API key organization scope is verified server-side — an API key's organization is now confirmed against the creator's membership when the key is minted.
  • Overlay geometry survives a save — an overlay clip's opacity, scale and rotation were dropped when a composition was saved and re-loaded. They now round-trip intact. (Overlay placement continues to use region.)
  • Reframe gaps caught at authoring time — a gapped reframe is now rejected immediately instead of surfacing a full turn later.
  • Cinematic titles clear the letterbox — title text no longer clips into the letterbox bars.
v1.20.0

Faster vision rendering and tighter error handling

New
  • Leaner vision payloads — every render phase now sends a shrunk vision payload to the LLM, speeding up vision-based rendering.
  • Fail-fast tool errors — infrastructure-class tool errors now fail a candidate immediately instead of quietly burning through the step budget.
Improved
  • More resilient sessions — session idle timing is tuned so an active session is never reaped before its first heartbeat lands.
  • Consistent authoring model — authoring and design agents now run on one explicitly pinned model, eliminating an unpinned fallback that could silently select a different one.
Fixed
  • Alpha clips render correctly — designer-authored alpha clips are baked before workflow evaluation, so they show up correctly in the final render.
  • Clearer errors on malformed clips — a malformed clip now surfaces its own error instead of being misrouted.
  • Visible reframes on verify — crop trajectories are now derived for reactive render and verify, so reframes actually show up.
  • Exclusions respected at plan time — graphics of an excluded kind are no longer planned in the first place.
  • Compositionless projects can author graphics — projects with no starting composition now seed correctly so the designer can add graphics.
v1.19.0

Briefs, checkpoints, and hosted review — the agent flow, rebuilt

New
  • Briefs — persist your video's intent as a first-class object: goal, audience, format, duration, beats with frame-accurate moment pinning, captions with emphasis phrases, seeded graphics carried verbatim, hard exclusions, and gate configuration. compose {briefId} honors every field or refuses loudly naming the one it can't.
  • Checkpoints — a held compose now pauses on a durable approval packet: the stage artifact, storyboard stills, critic verdicts, and a cost quote before you approve. Answer with resume — approve, revise with anchored comments (the run revises in place, with included revision cycles printed up front), or abandon. The full v1→vN history is queryable forever.
  • Hosted review pages — set gates.reviewMode: "hosted" on a Brief and every checkpoint mints a browser review link: a human approves or requests changes from the page itself — no account, no agent session — and the decision rides the same resume rail your agent uses.
  • Score packets everywhere — score_composition, Director gates, and consult now all mint the same addressable evidence object, so any verdict can be re-read later with get_checkpoint.
  • Profile — get_profile returns your org's taste in one read: brand kits, registered critics with their reference media, and the recent decision log. list_critics and delete_critic complete critic management.
  • Reference-grounded critics — register_critic accepts referenceMediaIds: the judge sees your own frames as the standard, making "consistent with our house style" a machine check in both the Director's gates and score_composition.
  • Usage ledger — get_usage lists every metered event with project and job attribution plus its list price, and job terminals stamp listUsd, so "what did this project cost this month" is a query.
  • Clip suggestions become Briefs — suggest_briefs promotes each finalized clip suggestion to a composable Brief with its source window pinned, ready for compose {briefId}.
Improved
  • Sessionless evidence — preview_frame, score_composition, and preview_component no longer need a session: the warm render box is a server detail that boots, is reused, and reaps itself, billed flat per operation. preview_component now returns a motion clip rendered with the same pipeline production uses.
  • One terminal event per job family — webhooks converge on media.completed, suggest.completed, compose.completed, and render.completed, each carrying its status (success or failure) in the payload, plus checkpoint.ready for held gates. Existing subscriptions were migrated automatically.
  • A cleaner verb surface — compose, new_composition, list_catalog, preview_frame, resume, and suggest_briefs replace their older names; retired names return a pointer to their replacement instead of an unknown-tool error. list_projects, delete_composition, and media library filters (kind, source, tag) round out steady-state workflows.
  • Quotes before spend, on both paths — Briefs carry a journey estimate at creation, checkpoints carry the cost of the next step, and validate_composition now returns the price to finish alongside its verdict.
  • Faster verification — the composition judge runs on a faster model with cached rubrics, cutting scoring latency and cost without changing the criteria.
  • Media context at a glance — get_media_context now includes a presigned thumbnail beside faces and transcript.
v1.18.0

A redesigned Guides library

Improved
  • Redesigned Guides index — /guides now presents each guide as a cover card with category filters and a featured pick, instead of a plain list.
  • Cleaner guide reading experience — every guide reads in a focused article layout with an author byline, a sticky on-page table of contents, and related guides at the end.
v1.13.0

Catalog grows to 103 primitives with a browsable gallery

New
  • Component gallery — browse the entire primitive catalog as real rendered examples at /components instead of static docs.
  • 15 new launch-video primitives — the catalog grew from 88 to 103, adding dedicated AI-launch and launch-video templates plus a luminous flow-field silk background.
Improved
  • Sharper visual taste pass — charts, kinetic typography, mesh backgrounds, and brush effects were rebuilt for cleaner, more polished output.
  • Real transition wipes — seven component-wipe effects now run as proper transition presentations for smoother A-to-B cuts.
Fixed
  • Uploads no longer cost credits — only exports and renders draw from your quota; importing footage is free.
  • Cleaner error responses — requesting a malformed document id now returns a 404 instead of a 500.
  • Primitive defects resolved — a batch of catalog issues found in audit, including preview and copy inaccuracies, has been fixed.
v1.11.0

Self-serve site refresh, public status page, and clearer usage-based pricing

New
  • Usage-based storage pricing — paid tiers now include storage overage billed at $0.03/GB-mo.
  • Public status page — check platform health anytime from a status page linked in the site footer.
  • Docs changelog timeline — browse the full release history directly on docs.cueframe.ai.
  • Self-serve site refresh — the marketing site has a new self-serve-focused design.
Fixed
  • Clearer render & generation pricing — included renders are now capped with pay-as-you-go overage, AI generation appears as its own line, and the tiers are easier to tell apart.
  • Generation billed separately from rendering — AI generation now bills on its own line instead of counting against your included renders.
  • FAQ matches the self-serve pivot — landing page FAQ copy now reflects the current self-serve plans.
  • More reliable API-key checks — read-only API-key verification no longer contends with writes, avoiding request slowdowns.
v1.10.0

Pay per tool call over hosted MCP

New
  • Pay-per-tool-call over hosted MCP — connect an agent to CueFrame's hosted MCP endpoint and list the available tools for free, then pay per data-tool call with x402 — no API key required to connect. Payment rides with each call and settles automatically; a call made without payment returns a standard payment-required response so the agent knows exactly what to pay.
  • Video-craft skill for MCP agents — agents driving CueFrame over MCP can pull a built-in composing-video skill that teaches how to produce a non-slop video in any format: ground the video in real footage, data, or UI; write kill-criteria before rendering; iterate on real rendered frames; and use composition verification as an independent second opinion before shipping.
Fixed
  • Faster self-correction on broken components — when an authored component fails with a deterministic runtime error (for example a bad animation range), the preview now returns that error immediately in a readable form so the agent can fix and re-author right away, instead of silently retrying and stalling the edit.
v1.6.0

Extract brand kits from a URL, search fonts, and edit in sessions

New
  • Extract a brand kit from a URL — point at a website and pull its colors and branding into a reusable brand kit.
  • Font search — search available fonts by name or intent and apply the result directly to your composition.
  • Session-based editing — open an editing session, stage your changes in an isolated scratch, then commit to promote them or discard to throw them away — legacy projects included.
Improved
  • Interactive playground drives real output — the font and caption-style selectors now produce real rendered output, and refreshed examples showcase text and custom graphics composited behind the subject.
Fixed
  • Custom graphics render behind the subject — custom alpha-layer graphics are now first-class in the behind-subject depth order, so they sit correctly behind your speaker.
  • Crop covers the silent lead-in — auto-reframe crop intents now start from the very beginning of a clip, covering the silent lead-in instead of leaving it unframed.
v1.5.0

Get composition advice on demand

New
  • Composition advice — a new advisory tool reviews your composition and returns grounded, actionable guidance before you spend a render.
Improved
  • Steadier compose runs — compose no longer surfaces opaque internal errors and is less prone to intermittent flakes.
Fixed
  • Reliable frame previews — still-frame capture is de-flaked with a render-time gate and automatic retry, so previews come back consistently.
v1.4.0

Search stock media and keep on-screen text perfectly fitted

New
  • Stock media search and import — search a catalog of stock video, images, and audio and import any result straight into your project, with attribution returned alongside each asset.
  • Auto-fit text — every display-text primitive (titles, lower-thirds, subtitles) now measures, shrinks, wraps, and ellipsizes automatically, so copy always fits its frame without hand-tuning length caps.
  • Runnable playground — a dedicated playground page gives you a live API console and a sandbox key to try calls in seconds.
  • More in the free tier — the free tier now includes 10 GB of storage and brand kits.
Improved
  • Sharper text behind your subject — text and captions placed behind a speaker now render with razor-sharp edges (down to individual strands of hair) and no color or quality degradation.
Fixed
  • Billing on success, not on submit — composes, renders, and generations are metered when the work actually completes, not when you enqueue it.
  • Clearer validation — invalid primitive parameters are caught at the write boundary with a typed, readable error instead of failing later during render.
v1.3.0

Brand kits, multi-format derive, and a discoverable component catalog

New
  • Brand kits — define your logo, intro/outro bookends, watermark, motion, spacing, and sizing once, and have them applied automatically at render time.
  • Multi-format derive — reframe an existing composition into a new aspect ratio to produce a matching multi-format sibling.
  • Discoverable component catalog — browse and place 87+ built-in primitives and scenes, filtered by tier, use case, and free-text intent, each with placement hints.
  • Component workspace — eject a built-in primitive as owned source and scaffold, push, and sync your own custom components.
  • Account and entitlements endpoint — see your plan, entitlements, and per-call cost ceilings up front, before hitting a payment wall.
  • Browser sign-in over hosted MCP — connect an agent by logging in through a browser consent page, with no API key required.
Improved
  • Smarter captions — pagination now respects sentence and segment boundaries, and captions clear during long pauses instead of lingering.
  • Honest render lifecycle — renders report clear, terminal states and detect stalls, so you always know whether work finished or failed.
Fixed
  • Custom graphics overlays — custom graphics now bake correctly at render time, and a fade-up animation no longer breaks with a zero distance.
  • Caption backdrop — the legibility scrim is no longer drawn on videos that have no captions.
  • Clearer import failures — failed imports now surface the underlying cause instead of an opaque error.
v1.2.0

Pay-per-use billing and agent-native discovery

New
  • Charge-on-delivery pricing — pay-per-use across composing, suggestions, media import, subject detection, and render, settled only when work is actually delivered.
  • Agent-discoverable connection — a server card and manifest published at a well-known discovery path so agents can find and connect to CueFrame automatically.
  • Standalone subject detection — trigger face and subject detection on its own, without running a full compose pass first.
Improved
  • Consistent brand chrome — shared navigation, logo, and footer across the app surfaces.
Fixed
  • Cross-tenant access closed — a session could be deleted across account boundaries; this is now blocked.
  • Clip suggestions on silent media — media with no speech now returns a clear, typed error instead of an empty result.
v1.1.0

Manage API keys and approve devices from the browser

New
  • Web console — manage your API keys and account from a browser dashboard instead of the command line.
  • Device sign-in — approve CLI and device logins through a dedicated device-authorization page (RFC 8628).
Improved
  • CLI targets production by default — the CLI no longer locks to staging; commands run against your production account out of the box.
  • Rebranded, tag-organized API reference — the reference is grouped by API tag so endpoints are easier to find.
Fixed
  • API reference now resolves — the reference index and docs root no longer return a 404 or the scaffold home page.
v1.0.0

CueFrame is live: the agent-native video API

New
  • One API, driven by your agent — a curated tool surface over MCP (plus a CLI and SDK) lets an agent run the whole workflow: create a project, bring in media, compose, render, and get results back, with webhooks for every async event.
  • Bring footage in, or generate it — import video, still images, or audio from a public URL, or generate media from a prompt (text-to-video, text-to-image, image-to-video, motion graphics, or auto), with content-addressed dedup so identical requests don't re-bill.
  • Automatic transcription and perception — uploads are transcribed in 30+ languages with speaker diarization and per-word timing, and CueFrame detects faces and subjects so your captions, crops, and timing line up with what's actually on screen.
  • Content-aware reframing — reframe any source to a new aspect ratio with a camera that smoothly follows the subject and zooms to fit, no manual keyframing.
  • Captions that read like part of the shot — sentence-aware, per-word caption pages with emphasis styling, and the option to place captions and graphics behind the subject so they never cover a face.
  • A built-in catalog to compose with — 87 primitives and ready-made scenes (lower-third, cinematic-title, color-grade, product-launch trailer, and more), filterable by use case, mood, and tier, plus the ability to author and preview your own custom components.
  • On-brand by default — create or extract a brand kit (contrast-safe colors, neutral ramps, and brand fonts) and CueFrame applies your identity across every render.
  • Render, review, and hand off — render to final video with cancel/retry and still-frame previews, or export an edit-ready timeline to Final Cut Pro (FCPXML) or Premiere.
  • Pay-per-call, agent-native billing — per-plan entitlements and cost ceilings you can check before you spend, with pay-per-use settlement built into the API.