Video Understand
calesthio/OpenMontage
Understand video content locally using ffmpeg frame extraction and Whisper transcription.
A skill your agent uses when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling…
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add 0xsline/OpenChatCut --skill export -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install 0xsline/OpenChatCut export --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/agent/skills/export .claude/skills/export && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "export" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/export into .claude/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/exportType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add 0xsline/OpenChatCut --skill export -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install 0xsline/OpenChatCut export --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/agent/skills/export .agents/skills/export && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "export" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/export into .agents/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add 0xsline/OpenChatCut --skill export -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install 0xsline/OpenChatCut export --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/agent/skills/export .cursor/skills/export && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "export" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/export into .cursor/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/0xsline/OpenChatCut.git --path src/agent/skills/export--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add 0xsline/OpenChatCut --skill export -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install 0xsline/OpenChatCut export --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/agent/skills/export .gemini/skills/export && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "export" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/export into .gemini/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install 0xsline/OpenChatCut exportInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add 0xsline/OpenChatCut --skill export -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/agent/skills/export .github/skills/export && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "export" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/export into .github/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add 0xsline/OpenChatCut --skill export -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install 0xsline/OpenChatCut export --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0xsline/OpenChatCut.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/agent/skills/export .opencode/skills/export && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "export" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/export into .opencode/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
exportA skill your agent uses when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling…
Export is an agent skill from 0xsline/OpenChatCut. Use when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling, or export fallback explanation.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Media & Creative, covering Video production and Transcription. The repository describes itself as: Open-source, local-first conversational AI video editor with a professional multi-track timeline, Agent Skills, MCP integration, and Remotion rendering. The licence is AGPL-3.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 297b327. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Export loads about 2.2k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 1,112 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
Do not tell the user they need to understand HTML-in-Canvas, Remotion, or storage internals unless debugging. Explain atAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from 0xsline/OpenChatCut at commit 297b327, republished under its AGPL-3.0 licence (© 0xsline). 1,112 words, ~2,192 tokens.
.claude/skills/export/SKILL.md (or your agent's skills folder).Use OpenChatCut's export tools for delivery. An export request should call submit_export (or submit_render_job for async), then use track_export for status and final delivery when the result is not returned immediately.
Default policy:
submit_export when the user asks to export/share/finalize the OpenChatCut timeline.ffmpeg work as a OpenChatCut tool. Use sandbox ffmpeg for full video processing only when the user explicitly asks for a standalone local-file operation outside a OpenChatCut editing workflow. For OpenChatCut editing tasks, do not produce a pre-edited or flattened local render as the primary review/final deliverable; use OpenChatCut export.Use submit_export for the execution path:
{
"format": "video",
"codec": "h264",
"resolution": "1080p",
"fps": 30,
"name": "final-cut"
}Video codec options are h264 (MP4, default) and vp8 (WebM). Video frame-rate options match the editor UI: 24, 25, 30, 50, or 60; omit fps to match the timeline. Audio export is MP3: pass "format":"audio" and omit codec / fps unless you explicitly pass "codec":"mp3".
submit_export returns a durable renderId. Some export types, such as subtitle files, may complete immediately and return downloadUrl; video/audio usually require track_export to wait for completion.
After getting each downloadUrl:
~/Downloads on macOS/Linux, or %USERPROFILE%\Downloads on Windows..crdownload files..crdownload exists, do not trigger another download. Wait until Chrome removes the .crdownload suffix and the final file size stops changing, then use that completed file.name (1).mp4 when needed.If the project contains local-only assets, upload/register cloud-readable replacements before rendering, or use the Local CLI Export path when the user wants to stay local.
Report the returned renderId when present. The job is also visible in the editor's top-right export queue, including progress and cancellation. Use saveToMediaPool:true when the user asks to retain the result in My Media or when the active workflow explicitly defaults to automatic materialization, such as livestream-to-clips; otherwise the default remains a normal downloadable export. For long videos, call track_export once with action:"wait" and timeoutSeconds:20. If it returns waitExpired:true, report that the render continues in the background and end the turn. Check it later with action:"status"; repeated waits only hold the Agent turn open. Do not start another export for the same timeline while this render is active.
Use track_export when the user asks about export/render status, or when the current turn genuinely needs to wait for a submitted video/audio render. Completed connector exports return downloadUrl; for every completed entry, download the file to Downloads using the collision-safe rules above and show it inline in chat:
{
"action": "status",
"renderIds": "abc123"
}For the latest project export, omit renderIds and pass "latest": true. track_progress is for generation/transcription/upload jobs, not render jobs.
For NLE XML, use submit_export with format:"xml":
{
"format": "xml",
"nleFormat": "fcp_xml_resolve",
"timelineId": "abc123"
}nleFormat values are fcp_xml for Premiere XML (default) and fcp_xml_resolve for DaVinci Resolve XML. Omit timelineId for the active timeline, or pass a timeline id/prefix for a non-active timeline. Read and report warnings: captions, solids, SVG, unsupported clip attributes, and unrendered motion graphics may be dropped by the XML format. Motion graphics are only represented in XML when a transparent-ProRes MG export flow supplies motionGraphicRenderKeys; otherwise the exporter reports them as dropped.
For media-pool source download, use request_asset_download on a file-backed source asset. It returns a guarded backend download URL/path for the original source media. Do not use pull_asset for user downloads; pull_asset is sandbox-only.
For subtitle files, use submit_export with format:"subtitles":
{
"format": "subtitles",
"subtitleFormat": "srt"
}Formats are srt and txt. The export uses the captions item's actual timeline word timing, source scope, translation variants, display-text overrides, and pacing fields such as wordsPerPage / maxCharactersPerLine, and creates a durable downloadable export job. It is appropriate for downloadable subtitle files. It does not yet reuse the browser Remotion caption page planner, so visual line wrapping/page breaks are timing-correct but approximate rather than byte-identical to burned-in caption pagination. For non-active timelines, pass timelineId from manage_timelines or read_project.
For one motion graphic as transparent ProRes 4444, use export_motion_graphic_prores:
{
"itemId": "abc123",
"filenameMode": "asset"
}Prefer itemId when exporting a specific timeline instance, because the item carries live propertyOverrides such as edited text. Use assetId for a media-pool motion graphic; the backend will use the first timeline instance for that asset when present, matching the editor's media-pool export behavior. For several motion graphics, pass itemIds or assetIds in one call. Each motion graphic still becomes a separate durable render; use track_export with the returned renderIds to wait, then download through each returned render download path.
When preparing XML that should reference rendered motion graphics, pass "filenameMode":"xml" and the same timelineId to export_motion_graphic_prores, then keep the returned motionGraphicRenderKey / motionGraphicRenderKeys; after the render completes, pass those keys and the same timelineId in submit_export.motionGraphicRenderKeys with format:"xml".
All rendering is local: submit_export / submit_render_job drive the local render service (headless Chrome over the same timeline state the editor shows), reading media straight from /media/uploads/ on disk. There is no S3 requirement, no CLI, and no cloud job to wait on for disk-backed assets.
submit_export: subtitles/XML return synchronously; video/audio also render in-call in this build (long timelines can take a while — warn the user instead of polling).submit_render_job + track_export: the async route — returns a renderId immediately, poll with track_export (renderIds / latest / onlyActive), then hand the user the returned download path.blob: placeholders (upload in flight) are not renderable yet — wait for track_progress target=upload to report ready before submitting.If a render fails because an asset's bytes are missing (placeholder never relinked, file deleted from disk):
download_media to restore bytes, then resubmit.Do not tell the user they need to understand HTML-in-Canvas, Remotion, or storage internals unless debugging. Explain at product level:
For submit_export, record:
renderIdRecord uploaded asset IDs and any fallback tried when cloud export was blocked by local-only assets.
© 0xsline, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in src/agent/skills/export of 0xsline/OpenChatCut.
Open the folder on GitHubat commit 297b327
Export next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Export this skill0xsline/OpenChatCut | 2.2k | — | ~2.2k | Automated safety check: Warn | AGPL-3.0 | |
| Video Understandcalesthio/OpenMontage | 65k | — | ~841 | Automated safety check: Pass | AGPL-3.0 | |
| Capcut Editrenezander030/capcut-cli | 832 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Yt Dlp DownloaderMapleShaw/yt-dlp-downloader-skill | 208 | 1 repos | ~1.5k | Automated safety check: Pass | None | |
| Karaoke CaptionsAI-Builder-Club/skills | 1.3k | — | ~850 | Automated safety check: Pass | None | |
| Video Editorjtydhr88/ComfyTV | 1.1k | — | ~1.8k | Automated safety check: Pass | MIT |
calesthio/OpenMontage
Understand video content locally using ffmpeg frame extraction and Whisper transcription.
renezander030/capcut-cli
Edit CapCut / JianYing video projects — read and write subtitles, timing, speed, volume, templates, animations (fade/ken-burns), and cut long-form to shorts.
MapleShaw/yt-dlp-downloader-skill
Download videos from YouTube, Bilibili, Twitter, and thousands of other sites using yt-dlp.
AI-Builder-Club/skills
Generate TikTok/Shorts-style karaoke captions using MLX Whisper, ASS subtitles, and FFmpeg libass.
jtydhr88/ComfyTV
Conversation-driven video editing on the ComfyTV canvas — rough cuts, silence removal, pacing passes, montages, trims, concat assemblies, speed changes, color grades, and subtitle burns over footage…
nateherkai/hyperframes-student-kit
Turn talking-head footage into a finished reel, YouTube Short, or short advertisement with curiosity-led openings, earned payoffs, story-driven cuts, transcript-synced motion graphics, moving…
0xsline/OpenChatCut
Connects an MCP-capable agent to the local OpenChatCut video editor to inspect and edit projects through draft edit sessions, with manual approval by default.
0xsline/OpenChatCut
Generates WebGL shaders for video effects, transitions, masks and color grades in the OpenChatCut editor, trying built-in catalog effects such as zoom before making anything new.
0xsline/OpenChatCut
Generates still images through the submit_image tool, choosing among Fal.ai, gpt-image-2, nano-banana, MiniMax image-01 and Grok Imagine by configured keys.
0xsline/OpenChatCut
Cuts a livestream recording into evidence-backed, platform-ready clips by combining transcript, visual, audio and genre-specific signals.
0xsline/OpenChatCut
Generates instrumentals, songs, soundtracks and covers through Mureka, MiniMax, Atlas Cloud or Sonilo using the `submit_music` tool.
0xsline/OpenChatCut
Submits AI video generation jobs to Fal.ai, Seedance, Kling, MiniMax Hailuo, xAI Grok Imagine or OFox for text-to-video, image-to-video, transitions and clip extension.
Categories
A skill your agent uses when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling…. Export is an agent skill from 0xsline/OpenChatCut. Use when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling, or export fallback explanation.
Export fits situations like: A OpenChatCut video editing; creation workflow needs export; subtitle-file export; local-only asset handling.
Run `npx skills add 0xsline/OpenChatCut --skill export -a claude-code`. Or copy the skill folder (src/agent/skills/export in 0xsline/OpenChatCut) into .claude/skills/export in your project. Claude Code loads it when a task matches its description.
Run `npx skills add 0xsline/OpenChatCut --skill export -a codex`. Or copy the skill folder (src/agent/skills/export in 0xsline/OpenChatCut) into .agents/skills/export in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add 0xsline/OpenChatCut --skill export -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/export, .gemini/skills/export, .github/skills/export and .opencode/skills/export in your project.
SKILL.md names no scripts, command-line tools or credentials: Export is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): contains instruction-override wording (e.g. “without asking the user”). Read the flagged lines before installing; the check is not a guarantee either way.
Export is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Export: Video Understand (calesthio/OpenMontage, 65k stars), Capcut Edit (renezander030/capcut-cli, 832 stars), Yt Dlp Downloader (MapleShaw/yt-dlp-downloader-skill, 208 stars) and Karaoke Captions (AI-Builder-Club/skills, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
0xsline (a GitHub user) maintains it in 0xsline/OpenChatCut, which has 2,153 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 5, 2026.
Source: 0xsline/OpenChatCut on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.