sulemank137

Claude Video Skill — Design skill for Claude Code

Design community

Make a product film without recording your screen: capture the real UI offscreen (Qt / web / X11), cut real footage, compose the frames — ships as a Claude Code skill, runs standalone on Python + ffmp.

How to install Claude Video Skill

This entry records only its repository, not the path inside it, so there is no exact command to give. Open sulemank137/claude-video-skill and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Claude Video Skill does

Make a product film without recording your screen: capture the real UI offscreen (Qt / web / X11), cut real footage, compose the frames — ships as a Claude Code skill, runs standalone on Python + ffmpeg

Alternatives in Design

  • Mockup — Create a visual UX mockup for a requested feature or screen 1.6k ★
  • Clipify — Claude Code skill: turn long videos into social-ready clips 549 ★
  • Design Reel — Record naksha's design team working — turn a /design run into a share-able vertical + landscape video reel (th 309 ★

README

claude-video-skill

Make a ~60-second product film without paid tools — either by cutting an existing screen recording, or by composing the film frame by frame from **offscreen captures of the real UI** plus real camera footage.

Ships as a [Claude Code](https://claude.com/claude-code) skill (`SKILL.md`), but every script runs standalone with Python + ffmpeg.

Demo

[**Watch `examples/demo.mp4`**](examples/demo.mp4) — a 22-second film cut with Mode B from the bundled sample plates (`examples/make_sample_plates.py` + `film_example.py`), scored with `score.py` and cued to the actual beat map. No paid tools, no stock footage, no product of ours in it — it's the toolkit demonstrating itself: the effects table below (`glass`, `sheen`, `brackets`, `scanbar`, `flow_dots`, `pulse`, kinetic type, named seam transitions), both in one film. Reproduce or restyle it yourself:

python examples/make_sample_plates.py
python examples/film_example.py --plates examples/plates --out /tmp/frames
python examples/film_example.py --plates examples/plates --map      # beat times
./scripts/encode.sh /tmp/frames /tmp/demo.mp4

python scripts/score.py --seconds 21.73 --bpm 118 --energy drive \
    --cue arp=2.6,drums=9.2,hats16=13.47,riser=15.5,out=17.5 \
    --fills 2.6,9.2,13.47,18.07 --out /tmp/score.wav
ffmpeg -i /tmp/demo.mp4 -i /tmp/score.wav \
  -filter_complex "[1:a]loudnorm=I=-16:TP=-2.5:LRA=9[a]" \
  -map 0:v -map "[a]" -c:v copy -c:a aac -b:a 192k -shortest /tmp/final.mp4

Why the second mode exists

Screen recordings age badly. The app moves on, the recording doesn't, and you end up shipping a film of a product that no longer exists — or re-recording the whole thing by hand every release. Mode B builds each frame from the application itself, driven through its own entry points, so the film always shows what actually ships. As a side effect there is no cursor, no notification, no desktop, and no "please don't move the mouse for six minutes".

Install