Release Video
huytieu/COG-second-brain
Turn a product release (the list of shipped items plus real screen recordings) into a motion recap video and one explained demo per feature, with sound effects tied to on-screen motion and a…
Builds a roughly 40-second vertical short end to end from a topic, scripting beats, rendering TSX compositions and layering voice and captions.
$ npx skills add hassancs91/claude-faceless-shorts-creator --skill make-short -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hassancs91/claude-faceless-shorts-creator make-short --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/hassancs91/claude-faceless-shorts-creator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/make-short .claude/skills/make-short && 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 "make-short" agent skill from https://github.com/hassancs91/claude-faceless-shorts-creator/tree/main/.claude/skills/make-short into .claude/skills/make-short/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-short", 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/hassancs91/claude-faceless-shorts-creator/tree/main/.claude/skills/make-shortType 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 hassancs91/claude-faceless-shorts-creator --skill make-short -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hassancs91/claude-faceless-shorts-creator make-short --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hassancs91/claude-faceless-shorts-creator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/make-short .agents/skills/make-short && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "make-short" agent skill from https://github.com/hassancs91/claude-faceless-shorts-creator/tree/main/.claude/skills/make-short into .agents/skills/make-short/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-short", 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 hassancs91/claude-faceless-shorts-creator --skill make-short -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hassancs91/claude-faceless-shorts-creator make-short --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hassancs91/claude-faceless-shorts-creator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/make-short .cursor/skills/make-short && 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 "make-short" agent skill from https://github.com/hassancs91/claude-faceless-shorts-creator/tree/main/.claude/skills/make-short into .cursor/skills/make-short/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-short", 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/hassancs91/claude-faceless-shorts-creator.git --path .claude/skills/make-short--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 hassancs91/claude-faceless-shorts-creator --skill make-short -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hassancs91/claude-faceless-shorts-creator make-short --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hassancs91/claude-faceless-shorts-creator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/make-short .gemini/skills/make-short && 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 "make-short" agent skill from https://github.com/hassancs91/claude-faceless-shorts-creator/tree/main/.claude/skills/make-short into .gemini/skills/make-short/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-short", 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 hassancs91/claude-faceless-shorts-creator make-shortInstalls 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 hassancs91/claude-faceless-shorts-creator --skill make-short -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hassancs91/claude-faceless-shorts-creator.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/make-short .github/skills/make-short && 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 "make-short" agent skill from https://github.com/hassancs91/claude-faceless-shorts-creator/tree/main/.claude/skills/make-short into .github/skills/make-short/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-short", 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 hassancs91/claude-faceless-shorts-creator --skill make-short -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hassancs91/claude-faceless-shorts-creator make-short --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hassancs91/claude-faceless-shorts-creator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/make-short .opencode/skills/make-short && 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 "make-short" agent skill from https://github.com/hassancs91/claude-faceless-shorts-creator/tree/main/.claude/skills/make-short into .opencode/skills/make-short/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-short", 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.
make-shortBuilds a roughly 40-second vertical short end to end from a topic, scripting beats, rendering TSX compositions and layering voice and captions.
Each short gets its own folder with a `script.md` (hook, beat sheet, production notes) and a machine-readable `beats.json` contract covering format, voiceover timing and beat timeline. A shared component kit supplies captions, titles and other recurring pieces, and niche-specific libraries exist for topics like chess, math, algorithms and spreadsheets, with the rule of adding at most one new niche library per short so it stays generic enough for a series. An idea bank in IDEAS.md is read when picking a topic and grown while brainstorming.
The beat grammar runs about 38 to 42 seconds: a fully composed hook in the first few seconds, a setup, an optional quiz card, a reveal synced word by word to the voiceover, a twist, and a loop whose last frame matches the first so it replays as one continuous cycle. Voiceover is paced at roughly 2.7 words per second, and outros are told to skip old engagement calls to action and end on the payoff instead, trimming any dead air at the tail. Everything runs from the repo root with stdlib-only Python plus ffmpeg and Node.js on PATH.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 773054b. 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:
pythonnodenpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
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.
TSX Vertical Shorts Builder loads about 1.9k tokens when it runs. Until then it costs about 175 tokens; SKILL.md has 774 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 noted patterns worth knowing about, such as sudo or a known installer.
must be on PATH; API keys live in `.env` (see `.env.example`).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 hassancs91/claude-faceless-shorts-creator at commit 773054b, republished under its MIT licence (© hassancs91). 774 words, ~1,922 tokens.
.claude/skills/make-short/SKILL.md (or your agent's skills folder).Everything is code: no footage, no stock. One short = one Remotion composition fed by a
beats contract, with voice and SFX layered on after render. Proven across the 12 example
shorts in shorts/. The idea bank + niche ranking lives in IDEAS.md — read it when
picking a topic, and grow it when brainstorming.
Run everything from the repo root. Tools are stdlib-only Python 3.10+; ffmpeg/node
must be on PATH; API keys live in .env (see .env.example).
shorts/short-N-<niche>/
script.md — hook, beat sheet table (time | on screen | VO), production notes
beats.json — machine contract: format, vo[] (text+start/end+words), beats[], niche timeline
voice/ — per-line TTS clips + voice.wav (gen_voice.py) [gitignored]
sfx-plan.json — cue sheet on the global timeline (mix_sfx.py)
output/ — short-N-sfx.mp4 (+ music auditions) [gitignored]
remotion/src/shots/short-N/
ShortN<Name>.tsx — THE composition (registered by npm run gen)
vo.gen.ts — AUTO-GENERATED VO with exact word times (never hand-edit)Shared kit: remotion/src/lib/shorts.tsx (Captions, Kicker, BigTitle, Stamp, PauseCard,
StatChip, ProgressBar, ShortsBackdrop, SAFE areas, prog helper). Niche libs so far: lib/chess.tsx,
lib/math.tsx, lib/algo.tsx, lib/sheet.tsx, lib/piano.tsx, lib/prob.tsx, lib/map.tsx,
lib/orbit.tsx, lib/chart.tsx, lib/story.tsx… Add at most ONE new niche lib per short,
generic enough for a series.
Beat grammar (~38–42s): HOOK (0–3.4s, frame 0 FULLY composed — the payoff already visible, no fade from black) → SETUP → optional QUIZ (PauseCard, ~2.5s — drives comments) → REVEAL in 2–4 steps, each synced to a VO word → TWIST → LOOP (last frame == frame 0, dissolving the payoff back into the intro so it replays seamlessly).
Outros — no fluff. NEVER end on an old-school engagement-CTA — no "what should I do next?", no "comment below", no "which one should I break down". They read as dated. End on the PAYOFF line, and let the visual LOOP blend back into the intro — the loop-into-intro is the ending. Prefer a clean visual dissolve/reset that lands the last frame exactly on frame 0. If a seamless loop genuinely isn't possible for a topic, just end on the payoff with no filler. Don't pad the tail: trim the composition so it ends shortly after the payoff, not seconds of dead air.
VO rules: ~100 words total, estimate line windows at ~2.7 words/sec with slack to the next
line's start (tighter forces audible atempo squeeze — 3.3wps needed a 1.3× squeeze; 2.7wps
peaked at 1.11×). Facts must be verified before scripting. Write script.md + beats.json
(vo lines with estimated start/end; niche timeline in global SECONDS).
.tsx under remotion/src/shots/short-N/, compositionConfig 1080×1920 @30, ~42s.
Follow vidtsx-2d-generator's hard rules (frame-based only, monotonic ranges, Easing.bezier).<Sequence> scenes over ONE persistent canvas (the board/equation/array is the
continuity — rewinds and evolutions happen in a single component's timeline, not cuts).Captions lines={VO} + ProgressBar mounted at the ROOT (global time), scenes beneath.<Sequence> are LOCAL. Converting a global beat
second to a scene cue is local_f = global_s*fps − sequence_from. Check every cue twice.warm props (BigTitle/EqRow) and negative ats so highlights/
stamps are already on at f0. Loop scene reverses the hook's punch-in (settle 1.06→1 vs grow
1→1.06) so the video loops seamlessly.cd remotion && npm run gen # frames.mjs does NOT run gen-registry itself
node scripts/frames.mjs ShortNName 0,<beat-boundaries+hero-frames>,<last> --scale=0.5READ every PNG (phone scale). Checklist: frame 0 composed & thumbnail-grade · every reveal synced to its beat · nothing covering the payoff element · kickers swap with the narration · captions clear of UI zones · loop frame ≈ frame 0. Fix, re-render frames, only then:
node scripts/render-all.mjs ShortNName --scale=1 # -> remotion/out/ShortNName.mp4python tools/gen_voice.py --beats shorts/short-N-<niche>/beats.json \
--voice TX3LPaxmHKxFdv7VOQHJ --emit-ts remotion/src/shots/short-N/vo.gen.ts/with-timestamps → REAL per-word times (tempo-scaled, global) written
into beats.json AND vo.gen.ts. The shot imports { VO } from './vo.gen' — captions then
highlight on the exact spoken word. Never estimate when a voice track exists.TX3LPaxmHKxFdv7VOQHJ); swap in any voice
(including your own clone) with the --voice flag + regen.ffmpeg -i remotion/out/<Id>.mp4 -i shorts/.../voice/voice.wav -map 0:v -map 1:a -c:v copy -c:a aac -b:a 192k -t 42 remotion/out/<Id>-voiced.mp4Read brand.md §7 + media/library/sfx/catalog.json. Library-first; add generic recipes to
palette.json + python tools/gen_sfx.py only for genuine misses. Author
shorts/short-N-<niche>/sfx-plan.json (preview = the -voiced.mp4, out = output/short-N-sfx.mp4).
Shorts taste adaptations: diegetic action sounds are the content (piece thocks, digit
pops) and may exceed long-form density; decorative cues stay optional: true; layer the 2–3
hero moments (capture+stamp, carry flight+landing+chime). Cue times from EXACT landing frames:
at_s = (move.at + move.dur + sequence_from) / fps.
PYTHONIOENCODING=utf-8 python tools/mix_sfx.py shorts/short-N-<niche>/sfx-plan.json --print
PYTHONIOENCODING=utf-8 python tools/mix_sfx.py shorts/short-N-<niche>/sfx-plan.jsonThe mix is an AUDITION — the user's ear is the audit gate before anything is called final.
Update catalog used_in afterwards.
Library beds in media/library/music/ (gen_music.py to grow). Audition over the SFX mix:
python tools/mix_music.py --all --base shorts/short-N-<niche>/output/short-N-sfx.mp4
(or --bed <id>). Hard-ducked under voice.
script.md + beats.json authored (facts verified) · composition QA'd frame-by-frame · rendered at scale 1 · voice generated with word-exact captions and muxed · SFX plan authored + audition mixed (~−15.5 LUFS, awaiting the user's ear) · library used_in updated · IDEAS.md queue updated.
© hassancs91, 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 .claude/skills/make-short of hassancs91/claude-faceless-shorts-creator.
Open the folder on GitHubat commit 773054b
TSX Vertical Shorts Builder 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 |
|---|---|---|---|---|---|---|
| TSX Vertical Shorts Builder this skillhassancs91/claude-faceless-shorts-creator | 271 | — | ~1.9k | Automated safety check: Notes | MIT | |
| Release Videohuytieu/COG-second-brain | 1.3k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Video Productionspeechlab0210/video-production-skill | 105 | — | ~4.1k | Automated safety check: Notes | MIT | |
| ShowtimeFavioVazquez/showtime | 206 | — | ~3k | Automated safety check: Pass | MIT | |
| Super Video MakerBomx/super-video-maker-skill | 309 | — | ~11k | Automated safety check: Notes | None | |
| Hearyourvoicekillernay/HearYourVOICE | 140 | — | ~10k | Automated safety check: Notes | MIT |
huytieu/COG-second-brain
Turn a product release (the list of shipped items plus real screen recordings) into a motion recap video and one explained demo per feature, with sound effects tied to on-screen motion and a…
speechlab0210/video-production-skill
AI educational video production pipeline. An agent skill from speechlab0210/video-production-skill.
FavioVazquez/showtime
A skill your agent uses when the user wants a video made, edited or finished: a launch or promo, product demo, explainer, trailer or teaser, tutorial or walkthrough, a screen recording turned into a…
Bomx/super-video-maker-skill
End-to-end AI video production skill for agentic frameworks.
killernay/HearYourVOICE
The repeatable workflow for short Thai documentary/explainer videos — one topic in, one finished MP4 out.
gooseworks-ai/goose-skills
Render a 'brand identity reveal' video from a config — a single poster frame in a real, softly-lit space (real wall, soft-focus plant in the corner, dappled leaf shadow, illuminated poster) whose…
hassancs91/claude-faceless-shorts-creator
Generates 2D Remotion-based TSX video files for VidTSX from a shot or scene description, with style presets and rules that keep renders from crashing.
hassancs91/claude-faceless-shorts-creator
Produces a vertical generative-video short end to end: a locked recurring character animated by a fal video model, ElevenLabs voice, Remotion captions and a clean loop.
hassancs91/claude-faceless-shorts-creator
Builds a vertical collage-style documentary short from script to render: scene dissection into image layers, layer production, TSX assembly on a collage kit, frame checks and voice.
hassancs91/claude-faceless-shorts-creator
Proposes beat-synced sound effects for a rendered short from a reusable library, then mixes an audition preview under the voice once you approve the plan.
Works with
Categories
Builds a roughly 40-second vertical short end to end from a topic, scripting beats, rendering TSX compositions and layering voice and captions. json` contract covering format, voiceover timing and beat timeline. A shared component kit supplies captions, titles and other recurring pieces, and niche-specific libraries exist for topics like chess, math, algorithms and spreadsheets, with the rule of adding at most one new niche library per short so it stays generic enough for a series.
TSX Vertical Shorts Builder fits situations like: making a new faceless short-video for a niche topic; adding narration and word-synced captions to an existing short; continuing an existing short-N series in this repository.
Run `npx skills add hassancs91/claude-faceless-shorts-creator --skill make-short -a claude-code`. Or copy the skill folder (.claude/skills/make-short in hassancs91/claude-faceless-shorts-creator) into .claude/skills/make-short in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hassancs91/claude-faceless-shorts-creator --skill make-short -a codex`. Or copy the skill folder (.claude/skills/make-short in hassancs91/claude-faceless-shorts-creator) into .agents/skills/make-short 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 hassancs91/claude-faceless-shorts-creator --skill make-short -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/make-short, .gemini/skills/make-short, .github/skills/make-short and .opencode/skills/make-short in your project.
Going by SKILL.md and its folder, TSX Vertical Shorts Builder needs the command-line tools its instructions call (python, node and npm). Our summary lists: Python 3.10+ (standard library only); ffmpeg and Node.js on PATH; API keys set in `.env`.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
TSX Vertical Shorts Builder 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.9k tokens (SKILL.md is roughly 7.7k 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 TSX Vertical Shorts Builder: Release Video (huytieu/COG-second-brain, 1.3k stars), Video Production (speechlab0210/video-production-skill, 105 stars), Showtime (FavioVazquez/showtime, 206 stars) and Super Video Maker (Bomx/super-video-maker-skill, 309 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hassancs91 (a GitHub user) maintains it in hassancs91/claude-faceless-shorts-creator, which has 271 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on August 18, 2026.
Source: hassancs91/claude-faceless-shorts-creator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.