Hydra writes, renders, checks, and posts short-form video at a scale no single person could sustain — one script factory, one renderer, one quality gate, and one distribution layer, running the same faceless format that took rizz-class apps to millions in revenue. A campaign is a config file. The product being sold is not hard-coded — today it's an AI dating assistant, tomorrow it's anything.
A campaign config goes in one end. Videos come out the other, gated, varied, and scheduled. This is the whole machine.
campaigns/*.yaml — product, persona, hooks, CTAEvery rendered video runs this checklist before it's allowed near a real account. Any failure re-renders with a new variation — nothing ships to patch over a rejection.
New accounts start at one post a day and climb slowly toward a working ceiling — nowhere near TikTok's hard cap, which is a redline, not a target.
Posts ship through the gate onto real accounts. Views come back through Postiz's reporting. Metrics rank which hook archetypes and script styles actually got watched, per campaign.
Those rankings become script weights — the script factory leans harder on what worked last cycle. Full install attribution is a later phase; v1 only needs to bias toward what gets watched.
One CLI. A campaign is a config file. Secrets come from the vault, never the repo.
$ hydra run --campaign aura-launch → script factory 3 scripts generated (openrouter · deepseek-v4-flash) → renderer 3 videos rendered (serial · remotion) → quality gate 2 passed, 1 rejected (watermark frame @ 4.2s → re-render queued) → distribution 2 scheduled (postiz · 2 accounts · staggered) $ hydra report --campaign aura-launch --last 7d → posted 18 rejected 6 top hook: "screenshot → savage reply" (2.4x avg views)
// campaigns/aura-launch.yaml product: aura persona: confident, screenshot-savvy, mildly unhinged hooks: ["you're hooping", "screenshot this reply", "rizz check"] cta: "link in bio · 3-day trial" accounts: [tiktok:acct_07, tiktok:acct_12] daily_cap: 4 # hard TikTok ceiling is 15 — never approach it
Anti-laundering criteria — nothing here closes on a scaffold. Every line must be provable by an artifact, not a status.
End-to-end dogfood. One campaign config produces ≥3 fully rendered, gate-passing, visibly different videos and schedules them via the real Postiz API.
Golden-script render. A known script produces a valid MP4 whose overlay timing matches the script beats exactly.
Gate proven, not assumed. A video with burned-in promo text is rejected by OCR; a near-duplicate is rejected by hash distance.
Serial rendering enforced. No parallel Chrome — one render at a time, verified under load.
One boot command. Verify can launch and drive the whole pipeline without hand-holding.
Real source in the commit. Four modules and their tests land in the diff — not a config-only or scaffold-only change.