A Claude-Code-brained, fully-autonomous video production studio. Originally
built for faceless cozy mental-health & self-improvement vertical Shorts (that
path is the most proven and still the default), but the super-editor skill
generalizes the whole thing to any YouTube/TikTok/Reels content — professional
editing craft plus this toolchain, for any niche. Give it a script (or a topic
and let Claude write one); it generates the visuals, voices it, edits it to a pro
finish, quality-gates it, honestly reviews it, and produces an upload package —
keyless, no GPU, on a Windows CPU.
script.json ─▶ generate cozy 2D visuals (free) ─▶ Kokoro voice
─▶ assemble EDL (emotion-arc grades · Ken-Burns · eased transitions)
─▶ render (finishing chain · arc-swelled music · karaoke captions · −14 LUFS)
─▶ QC gate (PROMOTE/HOLD/REROLL) ─▶ publish package (titles · tags · thumbnails)
PY="E:/vedeo repo/video-use/.venv/Scripts/python.exe"
# First-time / reconnect: verify tools and register the Codex skills.
"$PY" -m studio.doctor --register-skills
# Fully autonomous — script only, the studio makes everything (no clips, no keys):
"$PY" produce.py --beats script.json --generate -o runs/myvideo/final.mp4
# Or bring your own clips:
"$PY" produce.py --beats script.json --clips path/to/clips -o runs/myvideo/final.mp4
# Or real t2v via your own subscription (no API key) — see the t2v-prompts skill:
"$PY" -m studio.t2v_prompts build script.json -o runs/myvideo # -> prompt sheet + filenames
# ...generate each manually, save under the given filenames, hand back the folder...
"$PY" -m studio.t2v_prompts validate runs/myvideo/t2v_manifest.json --clips path/to/returned
"$PY" -m studio.layout_qc path/to/returned/* --run-dir runs/myvideo --aspect 9:16
"$PY" produce.py --beats script.json --clips path/to/returned -o runs/myvideo/final.mp4
# Or real t2v, fully automatic (needs FAL_KEY — see studio/t2v_api.py):
"$PY" produce.py --beats script.json --t2v-generate -o runs/myvideo/final.mp4script.json is the beat array Claude writes via the scriptwright skill.
The output runs/<slug>/ holds final.mp4, the editable final.edl.json,
qc.json, generated frames/ + vo/, and distribution.json.
Render core (editor/) — the deterministic FFmpeg compiler. EDL in, MP4 out:
per-scene trim/grade/motion, eased xfade transitions, slow-fill (clip shorter
than its narration), image stills looped + Ken-Burns, sidechain-ducked +
arc-swelled music, non-ducked SFX bed, Anton karaoke captions, master
finishing chain (deband/grain/vignette/LUT), two-pass −14 LUFS.
Generation (studio/) — image_gen.py (cozy 2D stills, keyless Pollinations/Flux),
character_pack.py (reusable character reference pack + bible, once per character),
flow_operator.py (autonomous t2v via Google Flow through the Kimi WebBridge browser
daemon — no API key; --pack attaches Ingredients refs), consistency_check.py
(cross-clip character-drift gate), t2v_prompts.py (manual paste-by-hand t2v bridge),
t2v_api.py (real automated t2v via fal.ai's queue API, gated behind FAL_KEY —
untested against a live key), voice_kokoro.py (local Kokoro-82M narration),
music_gen.py (license-free ambient bed), publish.py (upload package).
Brain + QC — brain/ (ingest/mood/planner/rubric — the ideation panel's
deterministic tally), editor/qc.py (the deterministic render gate). produce.py
is the one-command driver (also runs the length gate and built-in-audio detection);
make.py the folder→video path; edit.py the validate/render/qc CLI.
Skills (skills/) — the "teach Claude to be a creator" layer: super-editor
(the general master skill — start here for anything outside the cozy niche;
professional editing craft + the full tool map, reference material in
super-editor/reference/), directing-shorts (the cozy-niche specialization),
production-research, creator-taste, scriptwright (the script-phase super
skill — hooks/retention refs + character sheet + prompt-grade visual notes),
t2v-director (t2v prompt craft — dramaturgy, model dialects; adapted from
smixs/visual-skills, MIT), scene-planner, editing-craft, voice-tts,
animated-captions, quality-qc-retention, brutal-review, image-gen,
t2v-prompts, publishing-distribution.
Register with: mklink /J "%USERPROFILE%\.claude\skills\cozy-studio" "E:\vedeo repo\editor-os\skills".
The EDL (schema/edl.schema.json, doc schema/EDL_SPEC.md) is the boundary:
the brain decides → emits an EDL → the compiler renders it, making no editorial
calls. The EDL is the editable artifact — change the JSON, edit.py render, re-cut.
- Real t2v generation has an API adapter (
studio/t2v_api.py, fal.ai queue API, gated behindFAL_KEY) but no key to test it against yet — built to fal.ai's documented request/poll/fetch shape, untested live. Until a key exists, use the keylesst2v-promptsmanual bridge (same prompts, zero API risk); once a key lands,produce.py --t2v-generateis fully automatic — but dry-run ONE clip before trusting a full batch, and re-verify the model slug on fal.ai's current catalog (slugs move). - Auto-upload to YouTube/TikTok needs platform API keys (package is manual-upload-ready).
- Cross-scene character consistency is best-effort with the free generator (true consistency wants a keyed edit-from-reference model).
- AI-generated assets aren't copyrightable/Content-ID-registrable — treat as disposable.
Design rationale + the full plan: docs/COZY_STUDIO_BLUEPRINT.md.