Video Understand
calesthio/OpenMontage
Understand video content locally using ffmpeg frame extraction and Whisper transcription.
Combines GIFs and videos into composite tutorials with vertical or grid layouts via ffmpeg.
$ npx skills add athola/claude-night-market --skill media-composition -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install athola/claude-night-market media-composition --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/athola/claude-night-market.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/scry/skills/media-composition .claude/skills/media-composition && 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 "media-composition" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scry/skills/media-composition into .claude/skills/media-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "media-composition", 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/athola/claude-night-market/tree/master/plugins/scry/skills/media-compositionType 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 athola/claude-night-market --skill media-composition -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install athola/claude-night-market media-composition --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/scry/skills/media-composition .agents/skills/media-composition && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "media-composition" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scry/skills/media-composition into .agents/skills/media-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "media-composition", 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 athola/claude-night-market --skill media-composition -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install athola/claude-night-market media-composition --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/scry/skills/media-composition .cursor/skills/media-composition && 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 "media-composition" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scry/skills/media-composition into .cursor/skills/media-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "media-composition", 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/athola/claude-night-market.git --path plugins/scry/skills/media-composition--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 athola/claude-night-market --skill media-composition -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install athola/claude-night-market media-composition --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/scry/skills/media-composition .gemini/skills/media-composition && 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 "media-composition" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scry/skills/media-composition into .gemini/skills/media-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "media-composition", 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 athola/claude-night-market media-compositionInstalls 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 athola/claude-night-market --skill media-composition -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/scry/skills/media-composition .github/skills/media-composition && 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 "media-composition" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scry/skills/media-composition into .github/skills/media-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "media-composition", 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 athola/claude-night-market --skill media-composition -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install athola/claude-night-market media-composition --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/scry/skills/media-composition .opencode/skills/media-composition && 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 "media-composition" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scry/skills/media-composition into .opencode/skills/media-composition/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "media-composition", 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.
media-compositionCombines GIFs and videos into composite tutorials with vertical or grid layouts via ffmpeg.
Media Composition is an agent skill from athola/claude-night-market. Combines GIFs and videos into composite tutorials with vertical or grid layouts via ffmpeg. Use when assembling multi-part media into a single output.
Its SKILL.md is about 1.8k 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. It works with FFmpeg. The repository describes itself as: 23 Claude Code plugins: TDD enforcement hooks, git/PR workflows, spec-driven development, code review, project lifecycle, fix-from-error, maintenance automation, context… The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9f3eb00. 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.
Shell commands in SKILL.md call:
ffmpegyqFrom 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.
Media Composition loads about 1.8k tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 425 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 athola/claude-night-market at commit 9f3eb00, republished under its MIT licence (© athola). 425 words, ~1,797 tokens.
.claude/skills/media-composition/SKILL.md (or your agent's skills folder).Combine multiple media assets (GIFs, videos, images) into composite outputs for detailed tutorials and documentation.
This skill orchestrates the combination of separately generated media assets into unified outputs. It reads manifest files that define components and their composition rules, validates all inputs exist, and executes FFmpeg commands to produce the final composite media.
The following tools must be available on PATH before using this skill:
ffmpeg: media composition and encodingyq: YAML manifest parsingRun ffmpeg -version and yq --version to verify availability.
- Parse composition manifest file
- Validate all component outputs exist
- Determine composition layout and parameters
- Execute FFmpeg composition command
- Verify combined output file created
- Report composition metrics (file size, dimensions)Manifests define the components to combine and how to arrange them:
# Example manifest: tutorials/mcp.manifest.yaml
name: mcp
title: "MCP Server Integration"
components:
- type: tape
source: mcp.tape
output: assets/gifs/mcp-terminal.gif
- type: playwright
source: browser/mcp-browser.spec.ts
output: assets/gifs/mcp-browser.gif
requires:
- "skrills serve"
combine:
output: assets/gifs/mcp-combined.gif
layout: vertical
options:
padding: 10
background: "#1a1a2e"| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Identifier for the composition |
title | string | No | Human-readable title |
components | array | Yes | List of media components to combine |
components[].type | string | Yes | Source type: tape, playwright, static |
components[].source | string | Yes | Path to source file |
components[].output | string | Yes | Path to generated output |
components[].requires | array | No | Commands to run before generation |
combine.output | string | Yes | Path for combined output |
combine.layout | string | Yes | Layout mode (see table below) |
combine.options | object | No | Layout-specific options |
# Read and validate manifest structure
yq eval '.' manifest.yaml
# Extract component outputs
yq eval '.components[].output' manifest.yaml# Check all required files exist
for output in $(yq eval '.components[].output' manifest.yaml); do
if [[ ! -f "$output" ]]; then
echo "ERROR: Missing component: $output"
exit 1
fi
doneBased on the layout specified in the manifest, execute the appropriate FFmpeg command.
# Verify output exists and has content
if [[ -f "$output" && -s "$output" ]]; then
echo "Composition successful: $output"
ls -lh "$output"
else
echo "ERROR: Composition failed"
exit 1
fiStack GIFs/videos top to bottom:
ffmpeg -i top.gif -i bottom.gif \
-filter_complex "[0:v][1:v]vstack=inputs=2" \
-y output.gifWith padding between:
ffmpeg -i top.gif -i bottom.gif \
-filter_complex "[0:v]pad=iw:ih+10:0:0:color=black[top];[top][1:v]vstack=inputs=2" \
-y output.gifStack GIFs/videos side by side:
ffmpeg -i left.gif -i right.gif \
-filter_complex "[0:v][1:v]hstack=inputs=2" \
-y output.gifPlay GIFs/videos one after another:
# Create concat list file
cat > concat_list.txt << EOF
file 'first.gif'
file 'second.gif'
file 'third.gif'
EOF
# Concatenate
ffmpeg -f concat -safe 0 -i concat_list.txt \
-y output.gifffmpeg -i tl.gif -i tr.gif -i bl.gif -i br.gif \
-filter_complex "[0:v][1:v]hstack=inputs=2[top];[2:v][3:v]hstack=inputs=2[bottom];[top][bottom]vstack=inputs=2" \
-y output.gifffmpeg -i top.gif -i bottom.gif \
-filter_complex "color=c=#1a1a2e:s=800x600[bg];[bg][0:v]overlay=0:0[tmp];[tmp][1:v]overlay=0:300" \
-y output.gif| Layout | Description | Options |
|---|---|---|
vertical | Stack top to bottom | padding, background, align |
horizontal | Stack left to right | padding, background, align |
sequential | Play in order | transition, duration |
grid | N x M grid arrangement | rows, cols, padding |
overlay | Layer on top of each other | position, opacity |
pip | Picture-in-picture | corner, scale, margin |
| Option | Type | Default | Description |
|---|---|---|---|
padding | int | 0 | Pixels between components |
background | string | "black" | Background color (hex or name) |
align | string | "center" | Alignment: left, center, right |
transition | string | "none" | Transition type: fade, wipe, none |
scale | float | 0.25 | Scale factor for PiP |
corner | string | "br" | PiP corner: tl, tr, bl, br |
name: plugin-demo
components:
- type: tape
source: demo.tape
output: terminal.gif
- type: playwright
source: browser.spec.ts
output: browser.gif
combine:
output: demo-combined.gif
layout: vertical
options:
padding: 5
background: "#0d1117"name: before-after
components:
- type: static
source: before.gif
output: before.gif
- type: static
source: after.gif
output: after.gif
combine:
output: comparison.gif
layout: horizontal
options:
padding: 10name: pip-demo
components:
- type: tape
source: main.tape
output: main.gif
- type: playwright
source: overlay.spec.ts
output: overlay.gif
combine:
output: pip-demo.gif
layout: pip
options:
corner: br
scale: 0.3
margin: 20© athola, MIT. 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 plugins/scry/skills/media-composition of athola/claude-night-market.
Open the folder on GitHubat commit 9f3eb00
Media Composition 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 |
|---|---|---|---|---|---|---|
| Media Composition this skillathola/claude-night-market | 341 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Video Understandcalesthio/OpenMontage | 66k | — | ~841 | Automated safety check: Pass | AGPL-3.0 | |
| HyperFrames Video Entry Pointheygen-com/hyperframes | 59k | 3 repos | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Video Shotseternityspring/reelbench-skills | 872 | 1 repos | ~1.8k | Automated safety check: Notes | Apache-2.0 | |
| Mobile Demo Film Editorsuperset-sh/superset | 15k | — | ~1.8k | Automated safety check: Pass | Custom licence | |
| Video Editcalesthio/OpenMontage | 66k | — | ~855 | Automated safety check: Notes | AGPL-3.0 |
calesthio/OpenMontage
Understand video content locally using ffmpeg frame extraction and Whisper transcription.
heygen-com/hyperframes
Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.
eternityspring/reelbench-skills
拉片:把一条成片拆成逐镜头的分析表——每个镜头的时长、景别、类别、运镜、画面. An agent skill from eternityspring/reelbench-skills.
superset-sh/superset
Edits real mobile screen recordings into a configurable demo video with phone framing, title cards, cutaways and an end card, using a bundled renderer.
calesthio/OpenMontage
Edit videos locally using ffmpeg. An agent skill from calesthio/OpenMontage.
lemomo-ai/lemo-opuscar
Directs a short film made entirely in code in one of the Lemo-Opuscar library's named visual styles, from fetching the library through production and delivery.
athola/claude-night-market
Run and interpret repo diagnostic scripts (ratchets, validators, token stats).
athola/claude-night-market
Evaluate Claude skill quality through auditing. An agent skill from athola/claude-night-market.
athola/claude-night-market
Coordinates Claude agent teams via filesystem protocol. An agent skill from athola/claude-night-market.
athola/claude-night-market
Delegates execution to eight CLIs (Gemini, Qwen, MiniMax, GLM, Muse, Codex, OpenCode, Glimmer).
athola/claude-night-market
Guide minimal code via a decision ladder with full safety, edge, and negative-case coverage.
athola/claude-night-market
Build a project skill library in .claude/skills/ via discovery, parallel authoring, and review.
Works with
Categories
Combines GIFs and videos into composite tutorials with vertical or grid layouts via ffmpeg. Media Composition is an agent skill from athola/claude-night-market. Combines GIFs and videos into composite tutorials with vertical or grid layouts via ffmpeg.
Media Composition fits situations like: assembling multi-part media into a single output; tasks that involve Video production.
Run `npx skills add athola/claude-night-market --skill media-composition -a claude-code`. Or copy the skill folder (plugins/scry/skills/media-composition in athola/claude-night-market) into .claude/skills/media-composition in your project. Claude Code loads it when a task matches its description.
Run `npx skills add athola/claude-night-market --skill media-composition -a codex`. Or copy the skill folder (plugins/scry/skills/media-composition in athola/claude-night-market) into .agents/skills/media-composition 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 athola/claude-night-market --skill media-composition -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/media-composition, .gemini/skills/media-composition, .github/skills/media-composition and .opencode/skills/media-composition in your project.
Going by SKILL.md and its folder, Media Composition needs the command-line tools its instructions call (ffmpeg and yq).
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.
Media Composition is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.2k 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 Media Composition: Video Understand (calesthio/OpenMontage, 66k stars), HyperFrames Video Entry Point (heygen-com/hyperframes, 59k stars), Video Shots (eternityspring/reelbench-skills, 872 stars) and Mobile Demo Film Editor (superset-sh/superset, 15k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
athola (a GitHub user) maintains it in athola/claude-night-market, which has 341 GitHub stars. The repository holds 154 skills in this directory. The repository was last updated on October 6, 2026.
Source: athola/claude-night-market on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.