3-act script, voice or avatar, real b-roll, vertical editing, quality gate and social scheduling β locally with a GPU or on a VPS with just APIs.

MakeShorts is a skill (/makeshorts) with supporting scripts. You hand it a topic, a link or a recorded clip; it gives you back the short edited, checked and ready to schedule.
Calls what already works: HyperFrames for editing, inemavox for voice and transcription, HeyGen for the avatar, Metricool for scheduling.
Every short follows hook β secondary hook β 3 steps β CTA. Three script versions for you to choose from.
Nothing ships without passing qa_short.py: duration, 1080x1920 format, loudness, visual hook, hashtags and CTA.
Each stage can run on its own (the 5 modes) or in sequence. The ones that cost money or publish always ask for your confirmation.
~75 words, hook within 3 s, facts only from official sources, 3 versions.
Human recording, synthetic voice (local or API) or HeyGen avatar.
Visual on top, face below, word-by-word captions, punch-in and SFX.
Caption with a benefit, up to 5 hashtags, AI label, Metricool.
The basics run on any Linux or Mac. GPU and inemavox are optional: without them, switch the backends to APIs (see VPS).
Via subscription. It's where the skill runs.
npm i -g @anthropic-ai/claude-codeEditing, QA and the HyperFrames engine.
sudo apt install -y ffmpeg python3 nodejsHTML β MP4 editing engine, runs on CPU.
npx hyperframes skills update general-videoFive steps. The commands are the repository's own, ready to copy.
The installer checks dependencies, links the skill at ~/.claude/skills/makeshorts (symlink) and creates the .env.
git clone https://github.com/inematds/makeshorts.git && cd makeshorts bash scripts/instalar.sh --check # check only bash scripts/instalar.sh # install the skill + create .env
.envOne line per stage. On the GPU machine everything stays local; elsewhere, switch to APIs.
MS_VOZ=inemavox # inemavox | edge | openai | elevenlabs MS_TRANSCRICAO=inemavox # inemavox | groq | openai MS_IMAGEM=flux-local # flux-local | nenhuma MS_AVATAR=nenhum # heygen | nenhum MS_PUBLICAR=metricool # metricool | manual
In Claude Code, call the skill or just talk naturally. It figures out the mode from your request.
/makeshorts 3 scripts about Claude Code on your phone # script mode /makeshorts edit ~/Downloads/clip.mp4 # human mode /makeshorts short about https://tool-site, no recording # AI mode /makeshorts 5 shorts on this week's free AI tools, one a day at 6pm # batch mode
The skill runs it automatically, but you can run it by hand. Exit 1 fails and tells you what to fix.
python3 .claude/skills/makeshorts/scripts/qa_short.py final.mp4 --caption legenda.txt β duraΓ§Γ£o 31.2s β formato 1080x1920 β loudness -14.1 LUFS β gancho visual sem tela preta no inΓcio β hashtags 4: #claudecode #ia #automacao #shorts RESULTADO: APROVADO
The skill builds the caption and hashtags, shows you everything and only schedules on Metricool after your "go ahead". The "Comment AI" CTA becomes an automatic DM with the link (ManyChat, set up once).
/makeshorts publish final.mp4 to Instagram, TikTok and Shorts at the best time
.env changesNo code changes. The voz.py and transcreve.py scripts read the backend from .env and call the right API.
Voice: inemavox (chatterbox, local cloned voice) Β· Transcription: inemavox (Whisper large-v3) Β· Image: flux-local.
Voice: edge (free), openai or elevenlabs (your cloned voice) Β· Transcription: groq or openai Β· Image: nenhuma (real b-roll).
# typical VPS .env MS_VOZ=edge EDGE_VOZ=pt-BR-AntonioNeural MS_TRANSCRICAO=groq GROQ_API_KEY=gsk_... MS_IMAGEM=nenhuma # test each piece python3 scripts/voz.py --texto "Voice test." --out /tmp/t.mp3 python3 scripts/transcreve.py --in /tmp/t.mp3 --outdir /tmp/tr
Full Ubuntu install, reference costs and use with tmux: docs/vps.md (in Portuguese).
A 30-second short, act by act. Same backbone, any topic.
"There's a new AI that edits your videos on its own."
"And it's not CapCut. Not Premiere either."
"Step 1β¦ step 2β¦ step 3β¦" β straight to the point, no fluff.
"Comment AI and I'll send you the step by step."
We only describe what's in the repository; the rest is a plan.