AI Workflow

FrameCue: building a video workflow that keeps getting more useful

The decisions behind FrameCue: isolated video projects, reusable assets and effects, shared local tools, targeted revisions, and recoverable production records.

What should remain after a video is finished?

I want AI-assisted video production to leave behind useful assets, animation code, and working methods, as well as a finished video. Changing a title, making a landscape version, or reusing an effect for another event should have a clear starting point.

That led me to consider several questions together: how to separate video projects, how to accumulate reusable effects, where to install the tools, and what will still be available when a project is opened again later.

FrameCue combines a workspace structure, a Skill, and local command wrappers. Codex coordinates existing editing tools while retaining the information needed to continue the work.

Give each tool a clear responsibility

The entry point is $framecue. The user describes the task in natural language, and the agent identifies the project and production stage before choosing tools.

ComponentResponsibilityWhy it belongs here
FrameCue SkillProject selection, briefs, tool routing, and delivery recordsKeep different tasks within one production workflow
ChatCut DesktopAsset import, the main timeline, preview, and local exportInspect editing decisions in a visual editor
HyperFramesTitles, lower thirds, information graphics, and end cardsRetain HTML, CSS, and JavaScript for later changes
FFmpeg / ffprobeConversion, frame extraction, probing, and decodingCheck the actual output files

This division also determines what to test first. A complete Skill document cannot establish whether the editor connection works. Reading a project, editing its timeline, and exporting a short sample need early verification before expanding the workflow.

Install the tools once, organize each video separately

One practical concern was repeated setup. Starting another video should not require downloading another browser, locating FFmpeg again, or reinstalling the same dependencies.

FrameCue keeps tools together under tools/, with separate locations for Node, FFmpeg, HyperFrames, the rendering browser, and ChatCut. A configuration file records their paths, and a common launcher calls them across video projects.

Software, application state, and cache have different roles. Executables provide the runtime; application data holds persistent editor state; downloads, extracted frames, and temporary renders can be rebuilt. Cleaning disk space needs to respect those differences.

This layout does not make the entire workspace automatically portable. Moving it may require updating host connections, shortcuts, and media references. The public repository includes source and dependency manifests; a new computer still needs tool setup.

One project per video, with revisions inside it

Project isolation keeps the context explicit. When the user asks to continue a video, the agent should find its brief, assets, edit plan, and current revision without reconstructing everything from an earlier conversation.

New projects receive an independent ID and a directory containing a date, name, and random identifier. Duplicate names do not overwrite existing work. Before editing, the agent also checks the actual ChatCut project rather than choosing the most recently modified directory.

Isolation should not fragment one video unnecessarily. Caption changes, pacing revisions, aspect-ratio variants, and translations remain in the same project. A different event or independent narrative becomes a new project.

For example, a campus recap could share its material and story between a landscape presentation and a portrait release. Each delivery would still record its own dimensions, frame rate, language, and identifier.

Within the project, originals, caches, motion source, editor references, snapshots, and exports are separate. Large source files can stay in their original location with an explicit reference, avoiding a full copy for every video. Those references must be checked at handoff.

Reuse the method as well as the media

The library is intended to accumulate animation templates, effects, processing recipes, and common functions alongside media. Once a title treatment has been refined, another project should be able to change its parameters and use it again.

That requires keeping more than a rendered clip. Source code, text parameters, fonts, asset references, and tool versions determine whether an animation can be rebuilt. Effects likewise need a recipe, not only a visual preview.

Reuse caseWhat can be retainedWhat still needs checking
The same media assetThe existing fileSource, specifications, and permitted use
The same animation with different text or colorsCode and designUpdated parameters and a new render of the affected segment
Identical inputs, parameters, and output specificationsA previously checked renderMatching fonts, tool versions, and other dependencies

Reuse does not automatically remove the need to render. Matching filenames are not evidence of matching content. Automatic cache hits are not implemented, so the agent currently performs these checks.

Library references are versioned. A template already used by a project is not overwritten; an update creates a new version. Older videos retain their original references, preventing an unrelated improvement from changing a later rerender.

Technical reusability also differs from permission to publish. Music, fonts, logos, and event photographs need source and usage records. A file being available to another project does not establish that it belongs in every public video.

Keep the request natural; let the agent maintain the structure

These records could easily become a system that constantly asks users to fill out forms. I want everyday requests to remain simple: use the previous end card, change this title, or continue this video.

The agent therefore maintains directories, asset lists, library versions, and usage records. It should organize information already supplied and ask for missing decisions only when they materially affect production.

The same principle applies to implementation. Search the library before rebuilding an animation and inspect tools/ before rewriting a shared function. Names, dates, and copy specific to a video stay in that project’s parameters.

Make revisions precise and delivery reproducible

“The twelfth second is wrong” is ambiguous once several drafts exist. FrameCue ties feedback to a revision and output timecode. Revision numbers increase, and reviewed files are preserved.

Small changes should have a small scope. Ordinary captions should remain editable text where possible; complex animations can be rendered as video. Once text is baked into a clip, changing it requires returning to its source and rendering again.

Transparency needs its own compatibility check. An animation with alpha can still behave differently in the editor preview and final export. If necessary, it can be composited locally with the target shot while retaining the original source for revisions.

Delivery therefore needs a checklist: the video, required captions and covers, motion source, asset versions, editor references, and recovery instructions. An MP4 alone cannot preserve all of those editing options.

Check what archiving, backup, and local execution actually do

An archive/ directory helps organize finished work, but another folder on the same disk is not an independent backup. Moving files can also break media references. Marking a project as archived in place may be preferable; a real move requires reopening and checking it.

Cache boundaries need similar care. An automatic transcript can be recreated, but a manually corrected subtitle file may be the only authoritative version. It belongs in a retained source directory. Whether a file is disposable depends on recoverability, not simply on which tool produced it.

I also treat local production, account connectivity, and optional cloud features separately. FrameCue prioritizes local media processing and rendering, while cost records distinguish host inference, editing, and optional hosted generation. A file ending up on the computer does not establish a completely offline or free workflow.

Publication follows the same separation. GitHub contains the workflow, Skill, scripts, and empty templates. Actual video, audio, image assets, login state, and editing projects stay local. This article describes the design and progress without hosting those media files.

Current progress and the remaining work

As of September 12, 2026, development records include project creation checks, a two-second local Chinese animation, ChatCut tool discovery, and timeline editing. A roughly 15-second portrait video was exported locally through ChatCut with 1080×1920 video and an audio stream.

The development workspace has also begun registering a portrait motion template, original electronic music, and AI illustrations. The public version provides the empty library structure and registration rules without those project assets.

AreaCurrent status
Project directories, templates, and SkillPresent, with project creation and isolation checks
Local animation, editor connection, and sample exportExercised in the development environment
Asset registration, version references, briefs, and state recordsMaintained by the agent using the workflow rules
Automatic deduplication, cache hits, and revision allocationNot implemented
Complete backup, native-project recovery, and broader editing scenariosStill require implementation or acceptance testing

The next priorities are consistency between production records and the actual editor project, plus verification of targeted changes and reopening. Asset ingestion and caching can then build on that foundation to reduce work on later videos.

Source files and setup instructions are available in the FrameCue repository. Creating a project directory only requires an existing Node.js installation:

node tools/new-project.mjs "Campus recap"

The full media workflow currently targets Windows. Configure the tools and verify availability and Skill discovery in the current environment. No open-source license has been specified for the repository; third-party tools retain their own licensing and service terms.