vibe video editing
Currently only supported on Windows; the built-in portable auto-installation targets Windows x64. If a different operating system is detected, installation stops and no attempt is made to deploy a runtime environment for that OS.
Separate the editing workflow from the final video style. Script paths are relative to this Skill; project assets and output paths are provided by the current task. The global Skill does not store media, caches, models, keys, or absolute paths for specific projects.
For installation, official software downloads, external skill sources, and pending resources, see Installation and External Dependencies.
When the user requests installation, Codex automatically detects, downloads, configures, and verifies according to the Unified Dependency Entry. The runtime.local.json file is an automatically generated machine record; users are not required to fill it in manually. For current capability boundaries, see Validation Status.
Parent Skill and Module Directory
This directory is the vibe-video-editing parent skill. First, execute the shared production and quality conventions, then load specific modules based on the current request, without loading the entire module library at once. Directory structure:
vibe-video-editing/
├─ SKILL.md Main skill and shared rules
├─ Functional Skills/ Functional module library (each module has its own SKILL.md)
├─ Styles/ Style module library (each style has its own SKILL.md)
├─ style-list.json / style-list.md
├─ function-list.json / function-list.md
├─ scripts/ Shared scripts and module listing tools
└─ references/、assets/ Shared specifications and parameters (third-party tools are saved with functional modules)
Before the AI browses the library, run python scripts/library.py sync, then read style-list.json or function-list.json as needed. Users can read style-list.md and function-list.md. The lists are generated from the module's module.json; the list/register commands also automatically refresh them, so no separate handwritten list is maintained.
The function library is loaded only when needed:
-
Blazerior Voice-Over Editing Tool: Called when organizing recorded voice-overs, narrations, or interviews; provides word lists, pauses, and EDL tools; recognition, alignment, and quality processes follow the shared conventions below.
-
Sample Video Analysis: Called when the user requests to analyze or break down a video, or when the current production needs to extract editing practices from a reference video; reads and executes this module.
-
Local IndexTTS Voiceover: Used when TTS narration or a specific voice timbre is needed.
-
Remotion Stylized Text: Used under the stylized text trigger conditions described below.
-
Stylized Text Sound Effects: When the user requests sound effects for stylized text, this module selects, syncs, and mixes sounds from the local sound effects library based on the confirmed stylized text animation and timing.
-
Find Footage: Used to search for local animation/long video clips; does not replace the external data collection process.
-
Color Grading: Called when the user requests color grading, applying LUTs, or matching shots, or when the production requires handling color space, exposure, color cast, and lens chromatic aberration; reads and executes this module.
Calling a module means the current agent reads and executes its specifications, not that a sub-agent is created. If the user requests only one function, only that function is executed. Select the modules needed for the current task based on the function list.
Read Project Configuration Before Production
Codex reads or generates video-editing.delivery.json based on the current project and user request. The current format only stores the project directory and voice-over rhythm selection. Execute python scripts/delivery_config.py --project "absolute path to the current project folder"; when no configuration exists, the voice-over selection defaults to default. Only if a voice-over edit is confirmed and there is no voice-over reference sample or explicit voice-over request, the default voice-over preset is enabled. If there is no voice-over, skip the editing. For fields and saving methods, see Project Configuration.
According to Voice-Over Rhythm Selection, simultaneously check speech.style, the current voice-over request, and whether a voice-over reference exists. Then parse and apply the sound plan actually used for the current project; do not write global styles. Current requests, user-specified non-default selections, and samples take precedence over default presets. If the reference status is unknown, first check the materials; do not directly apply default durations. If the configuration is corrupted or the version or fields are unsupported, report an error explicitly; do not silently overwrite the original file.
The current version delivers final videos, standalone subtitles, separate tracks, production configurations, and material records as the scope. For project format requirements outside this scope, explain the current support boundaries and do not promise conversion capabilities that are not provided.
Select Style, Load Only What's Needed
First, determine if the user has explicitly specified a style name:
- Specified Style: Execute
python scripts/style.py listto locate it, and load only the corresponding specification. Any explicit additions from the user's current request and examples can override its default values. - Unspecified Style: Actively read the user-provided example documents and associated reference videos, audio, and projects. Follow the Example Learning Process to extract evidence and establish project norms. Do not first list the style library, apply existing styles, or start from the "closest" style configuration. Shared tools can be reused, but this must not inherit the rhythm, subtitle, or visual rules of old styles. If only documents are provided, adopt only their explicit descriptions. Mark unshown audiovisual features as pending verification.
- Unspecified Style and No Examples: Establish project norms based on the current footage and explicit requirements. Ask about missing key preferences when necessary. Do not default to matching existing styles. Simply mentioning "product news" or "vlog" does not count as specifying a style.
Existing styles are based on the real-time style-list.json. Do not maintain a style table or specific style specifications within the main skill. When a style is specified, only read the hit sub-skill's SKILL.md, its required references, and the style.py resolve output. When unspecified, still follow the example learning process to establish project norms; do not automatically apply the closest style.
Apply Current Request
Priority order: current explicit request > accepted conventions for this project and evidence from current examples > default values of the user-specified style (if any) > general technical suggestions. Rhythm, shot length, subtitles, transition density, music, and sound effects can be overridden. When a style is specified, parse the configuration. When unspecified, independently establish and save the configuration based on examples as the project's work/edit-settings.json. Do not override global styles for a single task. Natural language requests are converted by Codex into an override JSON; scripts do not automatically understand terms like "more relaxed."
The following command is only for explicitly specified styles; when unspecified, write the project configuration directly via the learning process.
python scripts/style.py resolve --style "user-saved style name" --overrides work/overrides.json --output work/edit-settings.json
Example override: {"rhythm":{"shot_seconds":[3,5]},"subtitles":{"mode":"full"},"transitions":{"density":"medium"}}. The scope is to arrange the start of shots; do not mechanically cut sentences, actions, or chart reading time. Only persist project selections if explicitly requested to "remember/save as a new style."
Client Script and Final Video Guidelines
First, distinguish between the client's written/video script intended for the final video and examples intended only for style learning. The content conventions of the client's script take precedence over style default values and the automatic suggestions of editing tools.
- When a Written Voice-Over Script is Clearly Provided: Retain the original script; do not change words, add, delete, polish, compress, or alter the order of content, or change opinions, figures, or conclusions on your own. Do not modify the script for duration, rhythm, style, or so-called error correction. Only when the client explicitly requests a change, save a revised copy within the authorized scope. Subtitle line breaks and timestamps can be adjusted; for TTS, save a technical copy with expanded pronunciation for model numbers, ensuring content correspondence, and do not write back to the original script.
- Visual Cues from Script or Video Script: Avoid adding unnecessary disclaimers, assumptions, or footnotes, such as "not tested," "for reference only," "hypothetical configuration," or "results are for illustration only." Do not turn internal verification processes into final video cues, or use cues as a substitute for client communication. Standard subtitles, necessary units/legends, and data labels should be presented normally per the script. Any cues already in the original script, client-requested explanations, and mandatory source attributions should be handled as requested.
- Original Graphics and Animated Explanations: For original graphics or animated explanations created under the third level of the footage sourcing mechanism below (Level 3), clearly mark them on screen with appropriate labels like "Original Graphic" or "Animated Explanation" to indicate their original or illustrative nature. This requirement overrides any style default that omits small explanatory text. Do not automatically add disclaimers like "not tested" or "for reference only" to other screens, and do not retroactively modify already approved pages. Handle client explicit requirements for alternative treatments according to the current request.
- Encountering Doubts or Script Inconsistencies: Point them out during production communication or in delivery notes. Do not unilaterally modify the client's script, and do not default to adding explanations on screen. If the client has not agreed to script changes, arrange voiceover, storyboards, and duration based on the original script.
Original Voice-Over Editing (Default)
When the video requires editing recorded voice-overs, narrations, or interviews, unless the user explicitly specifies another method, default to using Qwen3-ASR-1.7B + Qwen3-ForcedAligner-0.6B for recognition and alignment. Perform the full semantic review of the entire video, complete acoustic check covering all original recordings, independent handling of pauses and breaths, unified EDL/mapping, export review and timing according to the Qwen F Workflow. Call the Blazerior Voice-Over Editing Tool to execute the word list, pause, and EDL tool workflow, as detailed in Voice-Over Editing Specification. Do not silently fall back to CPU or Whisper-small. See Local Runtime Environment for the actual running environment.
While adhering to the client script content conventions, the goal is intra-sentence coherence and inter-sentence naturalness: tighten unnecessary pauses, hesitations, and repeated starts between words. Calibrate reference intervals according to the current voice-over selection and actual safe zones. Fully preserve word endings, plosives, and fricatives. Maintain a natural rhythm between sentences; do not uniformly shorten them. After shortening within a sentence, coordinate subsequent narration to avoid turning deleted time into new inter-sentence gaps. For the specific default preset durations and activation conditions, see Voice-Over Rhythm Selection. Check that the internal breath points and connections of the speech flow are preserved and implement specific judgments in the editing plan; simply clearing re-recordings or saving configurations does not count as application. This is a shared quality requirement for all current and future styles. Do not automatically inherit upstream subtitle, color grading, scaling, or frame rules. User explicit requests and approved editing methods take priority.
Subtitle Readability and Line Breaks
Subtitles are based on the original audio retained in the final video. Natural paraphrasing, adjusting word order, splitting, or merging lines is allowed. If necessary, to make Chinese expressions more natural or clearer, objects, tools, or referents involved in the same action can be supplemented in conjunction with the visuals. Supplementary content must have a clear visual basis and preserve the action, order, and tone of the original speech. When subtitles are too long, prioritize splitting by semantic units aligned to the original audio. Before delivery, compare the original audio of the final video with the subtitle script sentence by sentence.
When standard subtitles need to be created or re-rendered, default to Remotion, using the unified basic subtitle style of this video. Execute standard subtitles independently, following Subtitle Operations Specification. The stylized text's templates, key animations, and font switches are applied only when the conditions in the next section are triggered. Subtitles explicitly specified by the current request or already approved subtitle projects take priority.
Subtitles should be divided by complete semantic clauses, protecting phrases, proper nouns, and number units. Measure line width based on the actual font and screen safe zone. Explicitly break long lines; do not force them into a single line or split by a fixed character count. Adjust timestamps based on actual word-level timing of the voiceover, ensuring short subtitles have sufficient clear display time. Verify the body text against the client's final version; do not solve overflow by shortening sentences. Execute according to Subtitle Operations Specification.
Stylized Text and Dynamic Key Subtitles
When the user explicitly requests stylized text, dynamic key subtitles, or when actual examples clearly contain such effects, the main agent must load and execute the remotion-stylized-text skill (skill identifier remotion-flower-text), without waiting for the user to specify it again. First, analyze the actual style, and select/adapt appropriate components from the user-provided template library. If no template exists, implement the required effect within the current Remotion project. Calling the skill means reading and executing its specifications, not creating a sub-agent or opening a new conversation.
The main skill continues to be responsible for client finalization, on-camera/mixed editing requirements, audio and video timeline, footage usage, and final video inspection. The specialized skill handles fonts and colors, templates, key phrases, and text layers. The stylized text parameters recorded must be actually used for rendering; do not just write configuration without calling the components.
Standard subtitles without stylized text should maintain a unified basic subtitle scheme for this video. Only for paragraphs where stylized text is enabled, default to splitting by period/semantic clause, with every 1-2 natural sentences sharing a base font. Key points within the same sentence can have added template effects, but they should inherit the sentence's base font by default. Do not change fonts frequently based on half-sentences or subtitle page flips. Use already approved styles for standard information; do not force simplification or rework just to highlight key points. Text layers and key signboards must not duplicate overlaid text or block adjacent text.
This version does not include stylized text templates. Users can find available template libraries online and provide the link to Codex for download and adaptation. New designs are saved for the current project only; only when the user explicitly requests to save is it registered to a user-specified location. This rule does not restrict creating temporary components within the current project, nor does it automatically promote fonts, music, or rhythm from this project to other videos. The user's current explicit request takes priority.
External Visual Footage Sourcing
When external images, videos, logos, or web page screenshots are needed, read Shot Planning and Footage Sourcing, and follow the source paths, actual segment inspection, web capture, and record-keeping methods described therein.
Footage sourcing follows this priority order:
- Plan Shots First: For each sentence of the script, determine what type of visual evidence or explanation is needed. Clearly identify the subject, argument, and purpose of the shot before starting to search for footage.
- Search for Relevant Materials Based on the Plan: Find relevant videos, official promotional materials, official images, original data charts, or record relevant web pages via independent browser sources like OBS that match the current sentence. Choose the medium based on need; do not just fill the screen with brand or keyword-based clips.
- Create Originals Only When Materials Are Insufficient: If Level 2 materials still cannot meet the expression needs, create original graphics or animated explanations corresponding to the sentence, and clearly mark them on screen with appropriate labels like "Original Graphic" or "Animated Explanation." Do not pass them off as actual footage or original materials.
- Preserve Voice-Over When Neither Materials Nor Originals Are Suitable: Keep the host's voice-over and optimize the composition. Do not forcibly fill with unrelated B-roll, and do not modify the script just to fill the screen.
- Unified Execution by the Main Agent: Regardless of the model the main agent uses, the search, screening, and verification of external images, videos, logos, press releases, and product materials are all performed by the main agent, not delegated to sub-agents. When the user explicitly requests delegation, handle it according to the current task authorization and host platform rules.
- Match Specific Objects and Current Arguments First, Then General Footage: Identify brands, products, people, awards, events, and technologies sentence by sentence. Prioritize official product images, presentations, promotional videos, press materials, and original documents from research institutions and award organizers for that specific object. When introducing multiple companies, corresponding logos and names can be combined. Do not use footage that merely looks like tech, code, or math as a substitute for visuals strongly related to the voice-over. For specific brands or real people/events, prioritize real materials; do not default to using AI-generated images. Each insertion must be able to explain the sentence; passing the test based solely on the same brand or technical category is not sufficient. Verify rankings, parameters, download numbers, release events, and capability demos separately; historical materials must correspond to the voice-over's timing.
- Creation Methods: Official public presentations, product demos, physical images, brand logos, original charts, and personal photos can be used in appropriate positions to create compositions and animations. First consider the explanatory relationship between the shot and the sentence, then decide on cropping, juxtaposition, comparison, and picture-in-picture. Do not label generic clips as being from a specific company's factory, a particular person, or a specific event.
- Check Actual Segments: First, view the actual content of the selected interval; do not just look at the file name, thumbnail, or first frame. Check the integrity of the source clip. After compositing, check the transition between before and after sentences to avoid dragging the previous subject into the next sentence just to fill a time window.
- Web Pages Are Also a Source of Footage: When suitable pre-existing footage is lacking, capture the browsing process of official web pages, product pages, model repositories, or original charts. Prioritize using OBS with an independent browser source for capturing web page interfaces. Do not use a standalone Chrome screenshot/rendering pipeline without a browser source, and do not make Chrome a required dependency of this Skill. Avoid occupying the user's daily browser. Follow the relevant tool instructions and current authorization for specific recording methods.
- Scope of Visual Material Usage: Based on user preference, do not make "individually verifying explicit commercial use declarations" the only entry point for all visual materials. Consider materials publicly released by the company itself, such as presentations, product promotions, brand logos, and relevant institution public materials, for introducing and commenting on the current topic. Check the original release page and visible restrictions. Record the source, publisher, purpose, and license status. The absence of a prohibition statement does not equal authorization; do not describe such materials as "obtained commercial use authorization." Do not include materials explicitly prohibited for the intended use, paywalled previews, watermarked content, or unauthorized reprints. Avoid footage from strictly copyrighted media like CCTV and broadcast organizations. Do not remove station logos or watermarks to circumvent restrictions.
- Music and fonts are still handled according to their respective explicit license requirements. The current relaxation by the user applies only to visual material selection; it does not automatically extend to music, fonts, or other uses. Document sources and permission judgments in the production record; do not automatically turn them into small disclaimer text in the final video.
Footage Deduplication and Source Time Segment Management
All video tasks follow these defaults: the same image can be used at most once; the same source time segment from the same video can be used at most once. Multiple non-overlapping source intervals can be selected from the same long video, but an already-used interval must not be used again. Identify footage by its original source or file content; changing the filename, applying color grading, cropping, speed changing, changing the layout, or taking a screenshot does not make it a new piece of footage. Do not use short loops to supplement shot duration.
For deduplication revisions, first follow the footage sourcing priority to find new, strongly related footage to replace duplicate segments, preserving the original insertion purpose. Do not delete footage in bulk simply to pass the deduplication check, or delete already approved explanatory pages. If related materials and explicitly labeled original graphics or animated explanations are both unsuitable, keep the host's voice-over and optimize the composition. Do not forcibly fill with unrelated B-roll. Protect and retain already approved explanatory pages for data, principles, comparisons, etc. The rule "do not add ending summary pages" only restricts unsolicited ending pages; it does not mean deleting explanatory pages from the body.
Maintain a footage usage ledger, recording at minimum the source identifier, image content identifier, or video source_in/source_out, and the final video entry/exit points. Calculate intervals based on actual source consumption after speed changes. Before exporting, check for overlapping source intervals and image reuse. Full versions and previews/short versions cut from the same version share the same editing plan; do not count delivery prefixes or revision archives as in-video reuse.
Exceptions: Logos, iconic identifiers or materials, key personnel photos, and essential important promotional videos are allowed to reappear as needed by the narrative. Record the specific reason and occurrence locations, and control the frequency. Do not automatically exempt video clips just because they are from an official promotional video. When truly lacking footage and needing to repeat, proactively tell the user what was repeated, when, and why; do not repeat silently.
Display Timing for Grouped Information
Parallel information can appear sentence by sentence with the voice-over. When comparison or summarization is needed, all items should remain visible until the explanation is complete. Manage emphasis and removal uniformly according to the narrative. Do not let each element time out independently, causing one item to disappear early and breaking the parallel relationship. The specific display method is subject to user requirements and the current narrative.
Corner Subtitles (All Video Types)
Unless the user explicitly requests it, all current and future videos should not add decorative corner subtitles, chapter tags, or mottos in the top-left or other corners, such as "2026 / Chinese Technology," "Chinese Technology / Four Dimensions," "Path / Technical Logic," "02 / Hardware." This default convention takes priority over similar settings in templates, tools, and saved styles. Do not automatically add such text just because a reference video has it. When revising, only remove these corner subtitles; retain the body explanatory pages, main titles, data charts, subtitles, necessary legends, and footage content. This rule does not cancel original graphics or animated explanation labels required elsewhere.
End Screen (All Video Types)
Only create an ending summary page, account brand end card, slogan page, credits, or music/video/font acknowledgment page when the user's prompt or provided example explicitly requests it. Without an explicit request, do not add one due to style conventions, templates, tool defaults, or attribution requirements; end normally at the content conclusion. Preserve the original script's own concluding remarks; do not delete or modify the script just to remove a page.
Necessary material attributions that can typically be placed in the post description, description area, or accompanying delivery files should be saved there and not automatically turned into video end screens. If a material explicitly requires on-screen attribution but conflicts with the current no-end-screen requirement, prioritize finding compliant materials, then handle any remaining genuine conflicts.
Music Sources
All current and future styles follow this convention: Do not generate music locally, do not call local music generation models (e.g., ACE-Step), and do not compose or synthesize music through code.
When music is needed, actively search for and use external royalty-free background music suitable for the current video; do not first ask the user to go to Suno. Before use, review the track's original release page and license terms, confirm it is royalty-free for commercial use, allowed for the current video/use case, and necessary editing. Record the track name, author, source link, license basis, and acquisition date, and fulfill any attribution requirements. Do not assume it is free for commercial use based solely on "free download," "royalty-free" tags, or search labels. Do not use tracks with unclear licenses.
Existing music can be normally edited, looped, crossfaded, ducked for vocals, and mixed. If no suitable and clearly licensed royalty-free music is found, or if the user prefers to create their own, inform them of the required duration, mood/timbre, and rhythm, and have the user provide the music (can be made with Suno). Do not generate music on behalf of the user. While waiting, continue with rough cuts without music, voiceover, and subtitles.
Shared Production Workflow
-
Inspect footage, scripts, project files, latest deliveries, and revision records. First, confirm the roles of the client script and style references. Treat the written voice-over script explicitly provided by the client as locked content. Distinguish between reference videos and available footage. Reuse scripts and intermediate products; do not copy absolute paths from old projects, overwrite source footage, or re-run unnecessary voiceover/generation services.
If only modifying BGM, sound effects, voice volume, or mixing, confirm that the video, burned-in subtitles, shot timing, and lip-sync can be reused. Follow Reusing Video Stream When Only Changing Sound to remix and package a new version, directly copying the existing video stream.
-
Run
ffmpeg_ops.py doctorto confirm tools. When retaining original voiceovers, default to executing the F workflow with the Qwen base models according to Voice-Over Editing Specification, and apply the currentspeech.style. First meet the shared quality requirements, then process rhythm according to the style. When using a voiceover, first obtain the actual audio and verify pronunciation, then set the timeline. After changing the speech rate/script, recalculate subtitles, shots, chapters, and mixing. -
Accumulate entry/exit points using integer output frames. Manage visuals, subtitles, and audio separately. Default to creating a complete first draft of the final video, perform necessary checks, then hand it over to the user for revisions. Perform necessary partial test renders internally by the agent; do not default to waiting for user review of representative short segments. When the user explicitly requests a preview cut, execute accordingly. The shared project entry point for the full FFmpeg workflow receives rendered clips. For complex animations/transitions, first create them as shots, then write them into the list. Save reusable components and footage as source code within the current project.
-
Read the FFmpeg, subtitle, or Blender sections as needed from Shared Operations and List Format. Style parameters must be actually passed to scripts or implemented in shots. The existence of a config file does not mean it has been applied.
-
After final cut and export, the voiceover must undergo Word-Ending Waveform Check, covering every exit point that would cut or fade out the human voice. After export, run
qa.pyto check complete decoding, frame count, audio-video duration, subtitle boundaries, and loudness. Also extract frames and listen to the beginning/end, cut points, long charts, and subtitle-dense areas. The project file needs to be reopened, media inspected, and test rendered. The delivery notes should specify the actual verification scope and whether subtitles are burned in.
Standard delivery: final video, standalone subtitles, separate tracks and final mix, actual configuration, material list, production source code when needed, and inspection report. Maintain relative paths. Clearly indicate the latest version.
Learning and Extension
When a style is not specified, even if the user does not explicitly say "learn," actively read and execute Style Learning and Registration. Also execute when learning/updating a style is explicitly requested. Extract evidence from the current example documents and associated media, distinguishing between observations, inferences, and current overrides. When saving is not requested, only save within the current project. When the user says "summarize this experience into a style" or "save as new style," use style.py register to create a new independent sub-skill in Styles/<newID>/ (including SKILL.md, style.json, module.json), and automatically update the two style lists. Do not append this experience to the parent skill, and do not default to overwriting existing styles. Use --replace only when explicitly requested to update an existing style. When checking project references, read the source and revision records of the current project.
Module Maintenance
Maintain specific style specifications in Styles/<id>/SKILL.md, default parameters in style.json. Module name, description, aliases, and applicable cues go in module.json. For functional modules, maintain them directly in Functional Skills/<id>/. After saving, run python scripts/library.py sync and corresponding validations; the list is generated uniformly by the script.
Only update the parent skill for shared production workflows that hold across styles. Do not elevate specific products, colors, music, or shot durations from a single project to global rules. See AGENTS.md for management conventions. Machine configuration and download caches are not included in the release package. Styles is initially empty; only saves new styles explicitly requested by the user for registration.