walid@portfolio:~/lab/faceless-shorts-studio$
cd../lab
02ideaSep 2026

A shorts studio that runs in the terminal

One sentence in — script, visuals, voiceover, synced captions, sound design and a rendered vertical video out

A repo that turns Claude Code into a faceless-video studio. You describe the short in plain English and it writes the script, builds the visuals, generates the voiceover, syncs captions word-for-word, adds sound design and renders the vertical file. No camera, no face, no editing software — and on the default track, no per-clip generation cost either.

Claude CodeRemotionElevenLabsFaceless videoAgent skillsthe repoElevenLabsGemini APIfal.ai
The shape of it

Seven stages, one prompt

The interesting part is that there is no hand-off. You do not approve a script, then ask for visuals.
What it is

A pipeline, not a prompt

Most “AI video” tooling gives you one step — a script, or a voice, or a caption burn-in — and leaves you to carry the file to the next tool. This wires the whole chain into one agent session: you describe the video, and it writes the script and beats, builds the composition, renders frame-by-frame previews to check its own work, generates the voiceover with word-exact synced captions, adds sound design, and outputs the finished vertical .mp4.

The captions are the detail worth noticing. They are generated against the actual voiceover audio rather than the script, which is why they land word-for-word instead of drifting — that drift is the usual tell of an automated short.

Before you start

What it actually costs to run

The split matters: only one key is needed on every track. The rest are per-track, so the cheapest path needs far less than the full list suggests.

RequirementCostNeeded for
Claude CodepaidEverything — it is the thing running the pipeline.
ElevenLabs API keypaidEvery track. Voice, sound effects and music all come from here.
Google Gemini API keypaidAI image generation.
fal.ai API keypaidThe AI-character track only. Pay-per-generation, so cost scales with how much video you make.
Node.js 18+, Python 3.10+, ffmpegfreeThe base install. ffmpeg has to be on your PATH.
pillow, rembg, playwrightfreeThe collage track only.
!
Check the pricing yourself before committing

ElevenLabs and Gemini both run limited free tiers, which is enough to see whether the output is worth anything to you, but a channel posting daily is not a free-tier workload. fal.ai has no free tier at all — it bills per generation, so the AI-character track is the one that can surprise you. Price the tracks separately rather than treating this as one subscription.

Setup

Clone, key, install, open

Step 5 is the one people get wrong: launching Claude from outside the repo folder means the skills never load, and the whole thing looks broken for no visible reason.

install.sh17 lines
# 1 — clone
git clone https://github.com/hassancs91/claude-faceless-shorts-creator
cd claude-faceless-shorts-creator

# 2 — keys. ELEVENLABS_API_KEY is required on every track;
#     GEMINI_API_KEY and FAL_KEY depend on which one you use.
cp .env.example .env

# 3 — install and generate the video project
cd remotion && npm install && npm run gen && cd ..

# 4 — collage track only. Skip it if you are starting simple.
pip install pillow rembg playwright && playwright install chromium

# 5 — open it. Run this from INSIDE the repo folder — that is
#     what loads the built-in skills from .claude/skills/
claude
First run

The smallest thing that proves it works

Paste this into Claude Code once it is open inside the repo. It routes to the code track — the cheapest one, since it is pure Remotion with no footage and no per-clip generation cost.

first-short.txt2 lines
make a short about why airplanes can fly — keep it around
30 seconds, with a strong hook in the first 2 seconds
The three tracks

One prompt, three production styles

You do not type the command. You describe the video — “make a vox-style short about coffee” — and Claude matches it to the right skill.

The three tracks

Which one to reach for

SkillHow it builds the visualsBest for
/make-shortPure code — Remotion TSX, no footage and no stock. Nothing is generated per clip, so the only variable cost is the voice.Explainers: facts, tricks, tutorials. Start here.
/make-ai-shortAnimates a locked, recurring AI character through a fal.ai video model. Cost scales with how much video you generate.Story-driven or character-led shorts.
/make-voxVox-documentary paper collage — AI-image layers, die-cuts and a moving camera. Needs the extra Python packages.Documentary-style explainers.
i
There are five skills, not three

The three above are the production tracks, and they are what a walkthrough naturally covers. The repo ships two more that do the unglamorous work: /vidtsx-2d-generator holds the TSX authoring rules the code track writes against, and /suggest-sfx handles sound design. You never invoke them directly — the tracks call them — but they are the reason output stays consistent between runs rather than drifting each time the model improvises a house style.

The reusable one

A prompt that produces a finished short in one pass

Swap the topic and paste. Worth reading as a checklist of what actually decides whether a short performs — the hook window, no dead air, a duration target — rather than as magic wording.

viral-short.txt10 lines
Make a short about [your topic]. Find the most interesting,
unexpected angle on it.

Open with a hook in the first 1-2 seconds that stops the scroll.
Keep pacing fast and retention high the whole way through — no
dead air. Target 30-45 seconds total.

Generate the visuals, add the AI voiceover, sync the captions to
the voice, add sound effects where they land hardest, and render
the final vertical video.
Where to point it

Ten channel niches to test

AIbusinessfinancehistoryscienceluxurytechnologyspaceinteresting factsmotivation
!
A niche is a starting point, not a business case

These are prompts for experiments, not evidence that any of them pays. The cost of finding out is now low enough that testing five niches is a weekend rather than a quarter — which is the actual argument for this whole setup, and a different claim from “faceless channels make money”.

When it breaks

The failures you will actually hit

SymptomFix
ffmpeg not foundInstall it and put it on your PATH. Confirm with ffmpeg -version.
npm install failsCheck the Node version first — it needs 18 or newer. node -v.
Nothing generates, or API errorsCheck .env for the exact key names — ELEVENLABS_API_KEY, GEMINI_API_KEY, FAL_KEY — with no quotes and no trailing spaces.
The collage track will not runYou skipped step 4: pip install pillow rembg playwright && playwright install chromium.
Claude cannot see the skillsYou launched it from the wrong folder. The skills live in .claude/skills/, so claude has to start from inside the repo.
You want to watch a rendercd remotion && npm run studio.
The loop

Nine steps, then repeat

installadd keysopen Claude Codepick a topicchoose a trackgeneratereviewexportupload
← previous
How I automated my entire social workflow with the OmniSocials API
next →
A Bloomberg terminal without the data feed
← all experiments