← All skills
split-animated-talking-head
77 / 100 · Review before installing
Check before installing. Some of what it can do is expected: a media skill usually calls an AI service over the internet.
By kevinbadi/open-edits (GitHub) · media · 62 stars · scanned at commit 7fbd746
Turn a user-supplied talking-head clip (webcam, phone selfie, or recorded speaker) plus an optional script or source URL into a split-format vertical short — custom-generated animations in the top ~50%, the provided talking-head cropped into a taller rounded band across the bottom, kinetic captions synced to the clip's own voice, real product logos/screenshots whenever a named tool is spoken, real portraits of the notable figures behind any spoken niche (Claude/Anthropic, SpaceX, OpenAI, market…
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README.
Found in 13 places.
Show 10 more
- skills/split-animated-talking-head/SKILL.md, line 234
python3 "${CLAUDE_SKILL_DIR}/scripts/fetch_figure.py" --niche claude --top 4 - skills/split-animated-talking-head/SKILL.md, line 278
python3 "${CLAUDE_SKILL_DIR}/scripts/fetch_giphy.py" --query "mind blown" --list # look first - skills/split-animated-talking-head/SKILL.md, line 367
python3 "${CLAUDE_SKILL_DIR}/scripts/number_beats.py" # reads audio/words.json - skills/split-animated-talking-head/SKILL.md, line 581
ffmpeg -y -framerate 30 -i frames/out5/f%05d.jpg -i audio/narration.m4a \ - skills/split-animated-talking-head/SKILL.md, line 598
ffmpeg -y -framerate 30 -i frames/out5/f%05d.jpg -i "<original clip>" \ - skills/split-animated-talking-head/scripts/demo_claude_dance.py, line 139
subprocess.check_call([ - skills/split-animated-talking-head/scripts/demo_claude_dance.py, line 145
probe = subprocess.check_output([ - skills/split-animated-talking-head/scripts/fetch_brand_asset.py, line 77
subprocess.run( - skills/split-animated-talking-head/scripts/fetch_giphy.py, line 176
subprocess.run(cmd, check=True) - skills/split-animated-talking-head/scripts/prep_talking_head.py, line 37
r = subprocess.run(cmd, shell=isinstance(cmd, str), capture_output=True, text=True, **kw)
Sends data to these websites: opengraph.githubassets.com, github.com, commons.wikimedia.org, www.google.com
The author does not mention this. Expected for a media skill.
Found in 19 places.
Show 16 more
- skills/split-animated-talking-head/scripts/fetch_brand_asset.py, line 59
with urllib.request.urlopen(req, timeout=20) as r: - skills/split-animated-talking-head/scripts/fetch_brand_asset.py, line 113
if args.url and fetch(args.url, dest): - skills/split-animated-talking-head/scripts/fetch_brand_asset.py, line 118
if fetch(f"https://opengraph.githubassets.com/1/{gh}", os.path.join("assets/shots", f"{args.name}.png")): - skills/split-animated-talking-head/scripts/fetch_brand_asset.py, line 121
fetch(f"https://github.com/{owner}.png?size=240", dest) - skills/split-animated-talking-head/scripts/fetch_brand_asset.py, line 123
fetch(f"https://github.com/{gh}.png?size=240", dest) - skills/split-animated-talking-head/scripts/fetch_brand_asset.py, line 128
if fetch(f"https://commons.wikimedia.org/wiki/Special:FilePath/{name}", svg_tmp): - skills/split-animated-talking-head/scripts/fetch_brand_asset.py, line 133
if fetch(url, svg_tmp) and svg_to_png(svg_tmp, dest): - skills/split-animated-talking-head/scripts/fetch_brand_asset.py, line 136
if fetch(f"https://www.google.com/s2/favicons?domain={args.domain}&sz=256", dest): - skills/split-animated-talking-head/scripts/fetch_figure.py, line 34
import urllib.request - skills/split-animated-talking-head/scripts/fetch_figure.py, line 150
req = urllib.request.Request(url, headers={"User-Agent": UA}) - skills/split-animated-talking-head/scripts/fetch_figure.py, line 151
with urllib.request.urlopen(req, timeout=timeout) as r: - skills/split-animated-talking-head/scripts/fetch_giphy.py, line 35
import urllib.request - skills/split-animated-talking-head/scripts/fetch_giphy.py, line 63
req = urllib.request.Request(url, headers={"User-Agent": UA}) - skills/split-animated-talking-head/scripts/fetch_giphy.py, line 64
with urllib.request.urlopen(req, timeout=25) as r: - skills/split-animated-talking-head/scripts/fetch_giphy.py, line 69
req = urllib.request.Request(url, headers={"User-Agent": UA}) - skills/split-animated-talking-head/scripts/fetch_giphy.py, line 70
with urllib.request.urlopen(req, timeout=60) as r:
Downloads and installs other software
The author does not mention this.
Found in 2 places.
Safer alternatives
Low-risk skills in the same category (media) that look related. Check that one does what you need.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'split-animated-talking-head' ] || [ -L ~/.agents/skills/'split-animated-talking-head' ]; then echo 'A skill folder named split-animated-talking-head already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/kevinbadi/open-edits' "$d" && git -C "$d" checkout --quiet '7fbd74651ea945711792b207e8a9f0a167f78132' -- 'skills/split-animated-talking-head' && mkdir -p ~/.agents/skills && cp -R "$d"/'skills/split-animated-talking-head' ~/.agents/skills/'split-animated-talking-head' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'split-animated-talking-head' ~/.claude/skills/'split-animated-talking-head' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for kevinbadi/open-edits shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/kevinbadi/open-edits/)
Score history
| Date | Version | Score |
|---|
| 2026-11-07 | 7fbd746 | 77 |