Video-to-Sprite Animation Generator
0x0funky/agent-sprite-forge
Turns one approved master still into a full set of animated action clips for a character, one image-to-video take per action, then packages them for a game engine.
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.
$ npx skills add 0xsline/OpenChatCut --skill video-gen -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install 0xsline/OpenChatCut video-gen --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/video-gen .claude/skills/video-gen && 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 "video-gen" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/video-gen into .claude/skills/video-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-gen", 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/video-genType 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 video-gen -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install 0xsline/OpenChatCut video-gen --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/video-gen .agents/skills/video-gen && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "video-gen" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/video-gen into .agents/skills/video-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-gen", 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 video-gen -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install 0xsline/OpenChatCut video-gen --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/video-gen .cursor/skills/video-gen && 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 "video-gen" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/video-gen into .cursor/skills/video-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-gen", 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/video-gen--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 video-gen -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install 0xsline/OpenChatCut video-gen --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/video-gen .gemini/skills/video-gen && 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 "video-gen" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/video-gen into .gemini/skills/video-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-gen", 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 video-genInstalls 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 video-gen -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/video-gen .github/skills/video-gen && 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 "video-gen" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/video-gen into .github/skills/video-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-gen", 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 video-gen -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 video-gen --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/video-gen .opencode/skills/video-gen && 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 "video-gen" agent skill from https://github.com/0xsline/OpenChatCut/tree/main/src/agent/skills/video-gen into .opencode/skills/video-gen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-gen", 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.
video-genSubmits 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.
Each call submits one video generation job and returns a jobId. Waiting and status checks belong to a separate track_progress tool, and the skill does not place the finished clip on the timeline. It covers text-to-video, image-to-video, first and last frame transitions, reference-guided generation, multi-shot storyboards and generatively editing or extending an existing clip, which means new generated footage rather than timeline trimming.
Six model routes are described, each with a reference file the agent must read before generating: Fal.ai with an explicit model name, Seedance 2.0 (the default when configured), Kling, MiniMax Hailuo, xAI Grok Imagine and the OFox gateway. Limits differ. Hailuo clips are 6s or 10s, Grok Imagine does text-to-video only for 1–15s, and Seedance runs 2–15s. The agent only calls a vendor whose key is configured and never invents parameters a reference forbids.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2e6f4a2. 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 typescript).
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.
AI Video Generation loads about 4.3k tokens when it runs, and up to ~14k if it reads all its reference files. Until then it costs about 78 tokens; SKILL.md has 2,170 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 no risky patterns in SKILL.md.
Automated 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 2e6f4a2, republished under its AGPL-3.0 licence (© 0xsline). 2,170 words, ~4,291 tokens.
.claude/skills/video-gen/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Submits one video generation job per call and returns a jobId. Job management (wait / status) belongs to track_progress; this skill does not place videos on the timeline automatically.
Any time the user wants to generate a video clip — text-to-video, image-to-video, first-last-frame transition, reference-based generation, multi-shot storyboard, or generatively editing / extending an existing video (producing new generated footage based on a source clip; not timeline trimming).
| Model | Reference | Strengths |
|---|---|---|
fal + falModel | references/fal.md | Explicit Fal catalog; see tool schema for per-model limits |
seedance2 | references/seedance2.md | Default when configured. Multimodal refs, first/last, edit/extend/bridge, 2–15s, 480p/720p/1080p/4k, audio/seed/camera/watermark/last-frame/task controls. |
kling | references/kling.md | Technical camera/performance; Omni multi-shot; images ≤7 (≤4 with one feature refVideos); std/pro; 3–15s. |
hailuo | references/hailuo.md | MiniMax 海螺. T2V / I2V / first+last; 6s or 10s; 512P (Hailuo-02), 720p→768P, 1080P (6s); no multi-ref / multi-shot. |
grok-imagine-video | references/grok-imagine-video.md | xAI Grok Imagine. Text-to-video only; 1–15s; 480p/720p/1080p; audio track included. |
ofox | references/ofox.md | OFox multi-model gateway (Seedance/Wan and more behind one key). Text/image-to-video, first+last frame, up to 9 image refs; 2–30s with per-model API limits; 480p/720p/1080p per model. |
IMPORTANT: Before generating, READ the chosen model's reference for capabilities, input channels, modes, prompt structure, and model-specific behavior. Never invent params the reference forbids.
Respect configured vendors from the capabilities prompt (only call a model whose key is on).
model, if configured.model: "fal" and the requested falModel or saved Fal default from capabilities. Ask if no Fal model is selected. Read the Fal catalog constraints in the tool schema; the native-provider limits below do not apply.seedance2 when Seedance is configured.kling. Else if only MiniMax is on → hailuo. Else if only xAI is on → grok-imagine-video. Else if only OFox is on → ofox.kling (confirm if not user-named).seedance2.hailuo with duration 6 or 10.If the required model is not configured, say so and offer: another configured video vendor, upload, or Motion Graphic — do not pretend the API exists.
Briefly tell the user what you will generate before submitting.
| Param | Values | Default |
|---|---|---|
model | seedance2, kling, hailuo, grok-imagine-video, ofox, fal | seedance2 when available |
durationSeconds | model-specific | seedance/kling ~5; hailuo 6 or 10 (1080p → 6 only); grok 1–15; ofox 2–30 (per-model API limits) |
ratio | see model docs | 16:9 (seedance/kling/grok/ofox); ignored on hailuo |
resolution | 480p, 512p, 720p, 1080p, 4k | provider-specific; hailuo adds 512p for Hailuo-02; grok: 480p/720p/1080p |
refVideoMode | feature, base | kling only, with refVideos |
promptOptimizer / fastPretreatment | boolean | hailuo only |
generateAudio, seed, cameraFixed, watermark | controls | seedance only |
returnLastFrame, executionExpiresAfter, priority | controls | seedance only; requested last frame becomes another image asset |
name | descriptive asset name | required for good pool UX |
firstFrame | project image asset ref | optional |
lastFrame | project image asset ref | seedance / kling / hailuo (requires firstFrame; not with multi-ref on seedance) |
refImages / refVideos / refAudios | asset refs | seedance full; kling: images + 1 feature video (no audio); hailuo: none (frames / S2V subject) |
mode / shotType / multiPrompts | Kling multi-shot | kling only |
Model-specific params — see the model's reference.
firstFrame / lastFrame / refImages / refVideos / refAudios all take a project asset reference. Prefer a full UUID or short prefix from read_project; asset://<id> and same-project asset URLs returned by read_project are also accepted. Per-slot type: frame slots and refImages → image; refVideos → video; refAudios → audio.
External URLs and base64 are not accepted. If the source is a public URL, download it into the project first (download_media for video/audio, submit_image for images) and pass the resulting asset id.
Four-step loop. For each new generation, restart from Step 1 if the user's intent has shifted.
Before writing any prompt, align on three dimensions:
Duration & segments — total length, how many shots, and whether they live in one clip or several.
If the user has already stated a direction ("做一段", "in one video", "分别生成", "split into N shots", etc.), follow it — don't second-guess.
Otherwise, surface the two paths and let the user pick:
Offer the trade-off; do not pick for the user.
Content — what each clip depicts. Summarize back what you understood, segment by segment. When content is vague (e.g. "generate a video of a girl dancing"), the user typically hasn't specified one or more of:
Focus on the items that matter for this specific request and can't be safely inferred — don't turn this into a blank-filling exercise. Summarize the understood parts back to the user before proceeding.
Consistency anchors — only when multiple shots reuse a character, object, or scene: identify which anchor (reference image or video) to pin across shots. For sourcing rules, see §Visual consistency across shots below.
For each dimension, check the user's words:
See the chosen model's reference for prompt structure and param combinations (e.g., Seedance's 8-element structure and modes; Kling's prompt tips). Before submitting, check:
name is a descriptive asset name — descriptive enough for the user (and you in later turns) to recognize this asset in the project library. Avoid vague names like "Untitled" or "clip 1".Submit one generation job at a time. Unless the user explicitly asked for multiple clips in parallel, do not submit the next clip until the current one completes and the user has reviewed it. Parallel submission hides problems: if the first shot has drift or wrong framing, the user would rather redo it once than have several misaligned shots to discard.
submit_video.ratio controls the generated asset only; it does not change the project timeline canvas. If the user requested a final output aspect ratio (for example "9:16 vertical" or "16:9 landscape"), set the timeline canvas to the same ratio with manage_timelines action=update (e.g. ratio:"9:16") before placing the completed asset. If the user asked for no black bars / full-bleed, pass fit:"cover" when setting the canvas or updating/adding the visual item.track_progress tool for status/wait.When the user wants a next clip, a revision, or a continuation:
Text alone cannot reliably maintain visual identity across shots; visual references constrain output far more precisely than words.
An anchor is a reference image or video pinned across every shot that shares the same character, object, or style. Any multi-shot sequence with recurring visual elements needs an anchor — don't try to reproduce them from text.
Have reference awareness. When the user's request involves a recurring character / object / scene, think about what anchor to use before writing prompts:
When no existing asset fits and one must be generated, propose it to the user first — it shapes every downstream shot. Model-specific paths — see the chosen model's ref.
@Image1 / @Video1 in the prompt — not vague phrases like "the same car as before".track_progress with action=wait) to obtain its assetId, then pass it as the anchor reference. Do not submit dependent shots in parallel.When a project has multiple named characters with distinct attributes (e.g. Faz with fire energy, Kev with ice energy), treat each character as a separate anchor — one reference asset per character. In every prompt:
Missing either explicit attribution or negation causes cross-character attribute mixing.
Multiple characters in the same frame. For shots where multiple characters appear together (especially facing the camera), the model is prone to face-swap or body-clipping. Add strong positional + outfit anchors to each character and prefer a fixed camera for that shot:
Positional words (left / right / foreground / background) + distinctive outfit colors give the model enough signal to keep the characters apart.
If a visual-identity issue (wrong character, drift, color mismatch) persists after two text-prompt adjustments on the same shot, stop adjusting text. Text is not a substitute for an anchor. Escalate to:
Do not submit a third text-only retry on the same consistency issue.
Simple, one-off, or exploratory requests do not need anchors — generate directly.
// Text-to-video (seedance2 default)
submit_video({
model: "seedance2",
prompt: "A cat walks across a sunny windowsill",
name: "Cat on windowsill",
});
// Image-to-video with seedance2 — pass the project asset id directly; the server resolves the asset's media URL
submit_video({
model: "seedance2",
prompt: "The scene comes to life, gentle breeze rustles the curtains",
firstFrame: "abc12345",
name: "Living room animation",
});
// Kling text-to-video — only after Model Selection check
submit_video({
model: "kling",
prompt: "A sports car drifts around a wet corner",
name: "Car drift shot",
});
// MiniMax Hailuo — 6s or 10s; optional firstFrame / lastFrame (with first)
submit_video({
model: "hailuo",
prompt: "A ceramic cup steams on a wooden table, soft morning light [Push in]",
durationSeconds: 6,
resolution: "720p",
name: "Coffee steam morning",
});After submission, call the track_progress tool: action=status jobIds=<jobId> to poll, action=wait jobIds=<jobId> to block until terminal.
For complex multimodal jobs, build the full args object up front and pass it in a single call:
submit_video({
model: "seedance2",
prompt: "...",
name: "...",
firstFrame: "abc12345",
refImages: ["def67890", "ghi24680"],
refVideos: ["abc99999"],
refAudios: ["jkl55555"],
durationSeconds: 8,
ratio: "9:16",
});--name with a descriptive asset name.--job, --wait, or --timeout — job management belongs to track_progress.edit_item only after the user wants them on the timeline (pool-first contract).© 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
SKILL.md and 6 other files (references) in src/agent/skills/video-gen of 0xsline/OpenChatCut.
Open the folder on GitHubat commit 2e6f4a2
AI Video Generation 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 |
|---|---|---|---|---|---|---|
| AI Video Generation this skill0xsline/OpenChatCut | 2.2k | — | ~4.3k | Automated safety check: Pass | AGPL-3.0 | |
| Video-to-Sprite Animation Generator0x0funky/agent-sprite-forge | 4.4k | — | ~3.8k | Automated safety check: Pass | MIT | |
| VideoNexus-JPF/note-companion | 870 | 3 repos | ~3.6k | Automated safety check: Pass | MIT | |
| AI Video Gencalesthio/OpenMontage | 66k | — | ~3k | Automated safety check: Pass | AGPL-3.0 | |
| AI Video Gencalesthio/OpenMontage | 66k | — | ~2.8k | Automated safety check: Pass | AGPL-3.0 | |
| Atlas Cloudcalesthio/OpenMontage | 66k | — | ~1.2k | Automated safety check: Pass | AGPL-3.0 |
0x0funky/agent-sprite-forge
Turns one approved master still into a full set of animated action clips for a character, one image-to-video take per action, then packages them for a game engine.
Nexus-JPF/note-companion
When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks.
calesthio/OpenMontage
Generate AI videos from text prompts using multiple provider gateways.
calesthio/OpenMontage
Generate AI videos from text prompts using multiple provider gateways.
calesthio/OpenMontage
Generate or edit images and videos through the Atlas Cloud gateway.
calesthio/OpenMontage
Generate cinematic clips with ByteDance Seedance 2.0 — the preferred premium video model in OpenMontage when a paid gateway is configured.
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
Generates text-to-speech narration and custom sound effects for a video timeline, keeping existing voiceover in sync after visual retiming edits.
Categories
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. Each call submits one video generation job and returns a jobId. Waiting and status checks belong to a separate track_progress tool, and the skill does not place the finished clip on the timeline.
AI Video Generation fits situations like: generating a short clip from a text prompt; animating a still image into a video clip; building a transition between a first and a last frame; extending or regenerating part of an existing clip with AI.
Run `npx skills add 0xsline/OpenChatCut --skill video-gen -a claude-code`. Or copy the skill folder (src/agent/skills/video-gen in 0xsline/OpenChatCut) into .claude/skills/video-gen in your project. Claude Code loads it when a task matches its description.
Run `npx skills add 0xsline/OpenChatCut --skill video-gen -a codex`. Or copy the skill folder (src/agent/skills/video-gen in 0xsline/OpenChatCut) into .agents/skills/video-gen 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 video-gen -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/video-gen, .gemini/skills/video-gen, .github/skills/video-gen and .opencode/skills/video-gen in your project.
SKILL.md names no scripts, command-line tools or credentials: AI Video Generation is instructions for the agent only. Our summary lists: An API key configured for at least one supported video vendor.
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 found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
AI Video Generation 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 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with AI Video Generation: Video-to-Sprite Animation Generator (0x0funky/agent-sprite-forge, 4.4k stars), Video (Nexus-JPF/note-companion, 870 stars), AI Video Gen (calesthio/OpenMontage, 66k stars) and AI Video Gen (calesthio/OpenMontage, 66k 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,235 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 7, 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.