Video Compose

Builds video-gen prompts and generate_video.js flags for the pai-pro filmmaking canvas

Works with setup

Test report

Verdict
Works with setup
Score
7.6/10
Tested
Jul 31, 2026
Environment
Claude Code 2.x (agent harness)
Upstream re-checked
Aug 10, 2026 · 867f6b8

I cloned the repo, confirmed skills/video-compose/SKILL.md plus all four references/*.md fetch at HTTP 200 (and server/cli/generate_video.js and agent-templates/PROJECT_AGENT.md at 200), and installed the folder into a throwaway HOME=$(mktemp -d) — SKILL.md and references/ landed correctly. I could NOT execute the skill end to end: generate_video.js needs PAI_KEY, the running pai-pro viewer, a cloudflared tunnel and canvas node ids, so no video artifact exists and outputMeasured is false. What I did measure: two prompt+argv artifacts for the same task, a baseline written from the CLI's parseArgs flags alone and one built strictly from Pattern 6 plus references/video-single-shot.md, both run through the repo's own server/cli/_ref_guard.js — both passed the guard, but the baseline (376 chars) re-described the character in prose with no @Image1 binding, stacked conflicting camera moves ("slowly orbits her while pushing in"), and had no once/no-echo dialogue guard and no negative line, while the skill artifact (678 chars) bound identity via "The character in @Image1", added "Speak the quoted line exactly once, no echo, no repeated reads" and closed with "no captions, watermarks, distortion, stretching"; whether that yields a better clip is unverified. SKILL.md claims check out against source — ref caps (9 image / 3 audio / 3 video, 1.8-15.2s, 15s aggregate video), defaults (15s, 16:9, 720p, audio on) and the quoted bad_args strings all match server/cli/_limits.js and model_registry.js exactly. Trigger phrasings I judged: SHOULD fire — "Animate this character image into a 6-second rooftop clip where she says 'It's over'" (yes), "Continue the last clip on the canvas — what happens after she walks out?" (yes), "Make a 15-second product promo using the character and location refs on the canvas" (yes); should NOT fire — "Trim the first 3 seconds off /Users/me/clip.mp4 and re-encode to h264" (no: nothing is generated, though the description's bare word "edit" makes this the one genuinely close call), "Make a storyboard mosaic for scene 2" (no: that is image-compose). No security smells in skills/ (no curl|sh, no base64, no exfiltration or injection text); repo-level .env.example does document that the embedded project agent launches with --dangerously-skip-permissions by default, which is a pai-pro product property rather than this skill's.

Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works

  • Installs cleanly 5/5
  • Triggers reliably 5/5
  • Output vs. baseline 5/10
  • Docs & honesty 4/5

What Video Compose does

Dispatcher skill for the pai-pro filmmaking canvas that turns a video request into a generate_video.js invocation: it picks one of seven patterns (text-to-video, image-to-video, character/location composition, clip extension, clip editing, voice-driven clip, multi-shot ad/MV), builds the prompt with @Image/@Video/@Audio reference binding, and sets duration, resolution, audio and reference flags. Triggers when the user asks to generate, animate, continue, restyle or compose a video clip on the canvas, or to render a script shot or storyboard as video. Requires the pai-pro app itself — a PAI_KEY, the local viewer server and a canvas project — so the CLI it wraps cannot run standalone.

How to install Video Compose

git clone --depth 1 https://github.com/Utopai-Research/pai-pro.git /tmp/video-compose-src
mkdir -p ~/.claude/skills
cp -R /tmp/video-compose-src/skills/video-compose ~/.claude/skills/video-compose
# Verified: places SKILL.md + references/ (4 files) at ~/.claude/skills/video-compose/ in a clean HOME.
# NOT USABLE STANDALONE. The skill only writes flags for /tmp/video-compose-src/server/cli/generate_video.js,
# which needs the full pai-pro product running:
#   1. cp /tmp/video-compose-src/.env.example /tmp/video-compose-src/.env
#   2. set PAI_KEY=... (paid media API key from https://pai-pro.utopaistudios.com/keys)
#   3. cd /tmp/video-compose-src && ./scripts/setup --agent claude && ./scripts/start.sh
#      (start.sh also launches a cloudflared quick tunnel so the provider can fetch reference assets)
#   4. create a project in the viewer; the skill reads canvas node ids from that project's workflow.json
# Plugin-marketplace alternative: the repo ships .claude-plugin/marketplace.json (plugin name "pai-pro",
# installs all skills at once). Two of its listed skills (add-note, show-dag) point at directories that
# do not exist in the repo tree.
# Each generated clip costs real money; the skill's own text says to stage before firing.

Skills live in ~/.claude/skills/ (global) or .claude/skills/ (per-project). Restart Claude Code after installing.

Commands — how to trigger Video Compose

  • /video-compose Builds video-gen prompts and generate_video.js flags for the pai-pro filmmaking canvas

It also activates on plain-language prompts like these:

  • Generate a video clip from this storyboard frame
  • Animate this character reference into a shot
  • Compose a product promo video sequence

Frequently asked questions

Is the Video Compose skill free?
Yes. The skill itself is free from Utopai-Research/pai-pro. SkillProof publishes the install command and an independent test verdict at no cost.
Does Video Compose work with Claude Code?
We tested it with Claude Code 2.x (agent harness) on Jul 31, 2026. Verdict: Works with setup. I cloned the repo, confirmed skills/video-compose/SKILL.md plus all four references/*.md fetch at HTTP 200 (and server/cli/generate_video.js and agent-templates/PROJECT_AGENT.md at 200), and installed the folder into a throwaway HOME=$(mktemp -d) — SKILL.md and references/ landed correctly. I could NOT execute the skill end to end: generate_video.js needs PAI_KEY, the running pai-pro viewer, a cloudflared tunnel and canvas node ids, so no video artifact exists and outputMeasured is false. What I did measure: two prompt+argv artifacts for the same task, a baseline written from the CLI's parseArgs flags alone and one built strictly from Pattern 6 plus references/video-single-shot.md, both run through the repo's own server/cli/_ref_guard.js — both passed the guard, but the baseline (376 chars) re-described the character in prose with no @Image1 binding, stacked conflicting camera moves ("slowly orbits her while pushing in"), and had no once/no-echo dialogue guard and no negative line, while the skill artifact (678 chars) bound identity via "The character in @Image1", added "Speak the quoted line exactly once, no echo, no repeated reads" and closed with "no captions, watermarks, distortion, stretching"; whether that yields a better clip is unverified. SKILL.md claims check out against source — ref caps (9 image / 3 audio / 3 video, 1.8-15.2s, 15s aggregate video), defaults (15s, 16:9, 720p, audio on) and the quoted bad_args strings all match server/cli/_limits.js and model_registry.js exactly. Trigger phrasings I judged: SHOULD fire — "Animate this character image into a 6-second rooftop clip where she says 'It's over'" (yes), "Continue the last clip on the canvas — what happens after she walks out?" (yes), "Make a 15-second product promo using the character and location refs on the canvas" (yes); should NOT fire — "Trim the first 3 seconds off /Users/me/clip.mp4 and re-encode to h264" (no: nothing is generated, though the description's bare word "edit" makes this the one genuinely close call), "Make a storyboard mosaic for scene 2" (no: that is image-compose). No security smells in skills/ (no curl|sh, no base64, no exfiltration or injection text); repo-level .env.example does document that the embedded project agent launches with --dangerously-skip-permissions by default, which is a pai-pro product property rather than this skill's.
What is the Video Compose SkillProof Score?
7.6/10 — installs cleanly 5/5, triggers reliably 5/5, output vs. baseline 5/10, docs & honesty 4/5.
How do I install Video Compose?
Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
Can I use Video Compose with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.