NightPublishyoutube-channel-automation licence $4,997 once

It publishes before you wake up.

Research, script, visuals, voice, edit, Shorts and scheduled publishing, every day, per channel, unattended. You own the source.

252 files 11 step implementations 12 agents 8 skills one-time · no subscription CLI-first · bring your own agent

It already runs headless: a timer starts the engine you chose and the run publishes overnight. Any agent that can run a shell command drives the same CLI.

overnight run · one scripted channel7 steps
  1. researchtrend sweep, sources collected, policy gate run before a cent of generation spend
  2. scriptlong-form draft, reviewed by a second agent, Shorts cut-points marked
  3. visualsillustration set generated to the channel's brand config
  4. voiceovernarration rendered and timed against the script
  5. assemblelong-form cut, captions burned, thumbnail built
  6. shortsvertical cuts from the marked points, captioned separately
  7. publishscheduled to YouTube with the synthetic-media disclosure set
  8. you are still asleep
Step order and step names are the real ones. Clock times are illustrative: run length depends on your channel config and how busy the vendors are.

Bring your own agent

Already runs headless.
Nobody clicks anything.

A timer starts the run at the hour you pick and it finishes on its own: launchd on macOS, a systemd --user timer or cron on Linux. Which agent it starts is one line in .env. That is how the three live channels publish every morning, and the same commands work from any terminal.

AGENT 01

A CLI over typed state on disk

The yca CLI runs through tsx. Every step reads and writes a typed artifact validated with zod, so an agent asks the CLI what the next step is instead of guessing, and a run that died at voiceover resumes at voiceover. Nothing sits behind a GUI or a runtime only one vendor can start.

AGENT 02

The CLI tells your agent what to do next

yca next --json returns the next actions as typed objects: cli to run a command, role to do a job in a fresh context, done, or blocked with a reason. Your agent loops on it. yca describe prints the JSON Schema of every payload it can submit, generated from the same zod contracts the pipeline validates against, so the agent is writing against a schema rather than an example.

AGENT 03

Failures your agent can branch on

Errors come back as {ok:false, error:{category, message, retryable, hint}} and the exit code says what happened: 0 fine, 1 error, 2 the run is locked by another worker, 3 blocked and a human or a different role is needed. Roles declare abstract capabilities — files, web search, image, voice, publishing — so an agent maps them to whatever tools it actually has.

AGENT 04

Three engines, the same artifacts on disk

The pipeline does not care who is driving. YCA_ENGINE in .env picks the one the scheduler starts, and all three read and write the same typed files, so you can change your mind later without touching a run.

  • claude — Claude Code skills and subagents. This is what we run in production every day, unattended, on the three channels above. It is the only path proven across a full day.
  • ai-sdk — a Vercel AI SDK 7 reference runner in agents/ai-sdk/: a tool-loop agent, MCP clients for the image, voice and publishing vendors, per-role tool scoping and trace propagation. It ships with an end-to-end test against mock providers and passes it. It has not yet run a full production day, and we are not going to pretend otherwise.
  • api — a direct Anthropic API pipeline, for running without any agent framework at all.

Anything else that can run a shell command — Codex, Cursor, Windsurf, ChatGPT desktop, your own loop — drives the same protocol. AGENTS.md is a one-page operating guide written for exactly that, and docs/AGENT-INTEGRATION.md is the full spec. Untested end to end by us.

AGENT 05

The workers and the procedures, in Claude Code's format

Twelve role-scoped subagents, each with one job: trend scout, researcher, scriptwriter, script reviewer, policy reviewer, visuals producer, voice producer, thumbnail designer, upload editor, publisher, eval judge, eval hillclimber. Eight skills: /yca-run, /yca-monitor, /yca-prebuild, /yca-new-channel, /yca-viral-leads, /yca-upload, /yca-eval and /yca-telemetry. Seven documents, including a harness.md that explains the agents, the skills and the evals themselves.

They ship in .claude/ and Claude Code loads them on its own. Another agent can be handed the same markdown as instructions, but it will not auto-load it, because the format is Claude Code's.

Claude Code is the tested path, and swapping is not free

The kit does not ship an .mcp.json. The daily runs reach the image, voice and publishing vendors through connectors already configured in Claude Code, so on another agent you wire the equivalents yourself. The AI SDK runner brings its own MCP clients and is the shortest path off Claude Code, and it is still the one with no production day behind it. Budget setup time either way.

The daily bill

Seven jobs a day,
per channel.

Find the story, write the script, make the visuals, record the voice, cut the long-form, cut the Shorts, publish on schedule. Miss a day and the algorithm notices. What it costs to buy that labour:

ANCHOR 01 $2,900–$4,700 per month · DIY

What it costs to run three daily channels yourself with the same AI tools this pipeline uses: roughly 360 pieces a month, editors and tool subscriptions included.

ReelForgeAI, faceless channel costs 2026
ANCHOR 02 $8,550–$13,500 per month · done for you

The same volume bought at AI-native done-for-you market rates. Per channel that is somewhere between $1,000 and $4,500 a month of displaced spend.

Overseeros, YouTube agency pricing 2026
ANCHOR 03 $1,000–$10,000+ per single video · human agency

A human agency rate card, for one video. Full-service retainers run $5,000 to $25,000 a month. This is the band the market has not reconciled with the one above.

Villo Studio, channel management costs

What it does daily

Three things you do once, then it runs.

The branch is the shape that matters: visuals and voiceover are separate steps with separate artifacts, and assemble will not start until both have one. The tick at the end is the synthetic-media disclosure, which the publish step sets on every upload.
STEP 01

Describe the channel in one YAML file

Niche, tone, voice, visual style, cadence, publish targets. The schema is strict, so a key you misspelled fails loudly instead of being ignored. yca channel new creates one from five templates, covering all three kinds of channel: scripted long-form, AI clips, and uploads your own team films.

STEP 02

Install the timers and go to bed

yca schedule install writes one job per channel and edition, plus catch-up, the upload inbox watcher and the weekly evals — as launchd jobs on macOS, systemd --user timers or cron on Linux. Each run is a state machine: every step writes a typed artifact, holds a lease, and retries only on transient errors. A run that dies at the voiceover step resumes at the voiceover step.

STEP 03

Read the report over coffee

The long-form and the Shorts are scheduled, each published with the synthetic-media disclosure set. yca status and the monitor skill tell you what ran, what it spent and what the reviewer rejected.

Three kinds of channel, one state machine
Scripted channel, in orderresearch · script · visuals · voiceover · assemble · shorts · publish7 steps
Clips channel, in orderviralResearch · viralClips · viralFinish · publish4 steps
Upload channel, in orderscan the inbox · transcribe locally · plan · render Shorts · publish5 stages
Agents, each scoped to one jobtrend scout, researcher, scriptwriter, script reviewer, policy reviewer, visuals producer, voice producer, thumbnail designer, upload editor, publisher, eval judge, eval hillclimber12 agents
THE THIRD KIND

Channels where your own team films the video

Not every channel should be generated. If you already shoot real footage, an upload channel takes the finished MP4s out of an inbox folder and does the part nobody wants to do twice a week: it transcribes the video locally with whisper.cpp, which costs nothing and sends your footage to no one, then an editor agent writes the title, the description with chapters, and the tags, and picks the moments worth cutting. ffmpeg renders those into vertical Shorts with captions and a hook card, and the whole set publishes on your schedule.

The editor agent is explicitly not allowed to invent or rewrite what the video says. It describes what is there. Same state machine, same typed artifacts, same resume behaviour as the other two kinds — run it with /yca-upload or the yca upload commands.

Not a mockup

This is the output, pasted.

Everything on this page can be claimed by anyone. These three things cannot. They were taken out of the running system on 26 September 2026 and pasted in unedited, apart from shortening the scheduler's submission ids.

$ bin/status.sh
now: 2026-09-26 15:50:43 EDT
both-editions 2026-09-26-morning [done] research:done script:done visuals:done voiceover:done assemble:done shorts:done publish:done
   long  published now 716cdc21…
   short trump-rejects-iran-seven-day-ceasefire scheduled 2026-09-26T13:30:00.000Z b6995de7…
   short kyiv-drone-attack-kills-seven scheduled 2026-09-26T16:30:00.000Z 1b5a0052…
deja-viral 2026-09-26-morning [done] research:done visuals:done shorts:done publish:done
   short flyover-flinch-vs-unbothered scheduled 2026-09-26T14:00:00.000Z a302f092…
   short calm-sip-sudden-shadowbox scheduled 2026-09-26T20:00:00.000Z c2ebd50a…
   short grownup-prized-possession-scream scheduled 2026-09-27T00:00:00.000Z 76f248f2…
deja-viral 2026-09-27-morning [done] research:done visuals:done shorts:done publish:done
   short new-species-just-dropped scheduled 2026-09-27T14:00:00.000Z 1a456052…
   short fake-heirloom-portrait-prank scheduled 2026-09-27T20:00:00.000Z b3676c47…
   short oh-boy-one-then-a-hundred scheduled 2026-09-28T00:00:00.000Z 0f7054f4…
suddenly 2026-09-26-morning [done] research:done script:done visuals:done voiceover:done assemble:done shorts:done publish:done
   long  published now 3b4ea016… thumbnail rejected: Please confirm that your YouTube account is verified, then
         reconnect it in Blotato to use custom thumbnails. (posted without thumbnail)
   short nahui-ollin-aztec-52-year-cycle scheduled 2026-09-26T17:00:00.000Z 3e11c67d…
   short india-asian-games-shooting-gold-sept-25 scheduled 2026-09-26T20:00:00.000Z 65516846…
launchd:
  com.mizudev.yca.suddenly.morning        pid=- last_exit=0
  com.mizudev.yca.suddenly.catchup        pid=- last_exit=0
  com.mizudev.yca.both-editions.morning   pid=- last_exit=0
  com.mizudev.yca.both-editions.evening   pid=- last_exit=0
  com.mizudev.yca.both-editions.catchup   pid=- last_exit=0
  com.mizudev.yca.deja-viral.morning      pid=- last_exit=0
  com.mizudev.yca.deja-viral.catchup      pid=- last_exit=0

Three channels, one morning. The line in red is a real failure: YouTube would not take the custom thumbnail on an unverified account, so the run posted the video without one and said so instead of reporting success. That is the behaviour you are buying — it tells you what went wrong at 5am rather than at the end of the month.

run.json — the typed state record, one run

{
  "id": "2026-09-26-morning",
  "channel_id": "suddenly",
  "edition": "morning",
  "status": "done",  "mock": false,
  "steps": {          // artifact paths are relative to the run dir
    "research":  { "status": "done", "attempts": 1, "artifact": "research.json"  },
    "script":    { "status": "done", "attempts": 1, "artifact": "script.json"    },
    "visuals":   { "status": "done", "attempts": 1, "artifact": "visuals.json"   },
    "voiceover": { "status": "done", "attempts": 1, "artifact": "voiceover.json" },
    "assemble":  { "status": "done", "attempts": 1, "artifact": "assemble.json"  },
    "shorts":    { "status": "done", "attempts": 1, "artifact": "shorts.json"    },
    "publish":   { "status": "done", "attempts": 1, "artifact": "publish.json"   }
  }
}

Every step writes one of these before it hands over. It is what "resumes where it stopped" actually means: the run reads this file, sees which steps already have an artifact, and starts at the first one that does not. attempts is how you find out a step is flaky before it costs you a night.

timings — the same run, step by step

research   15:05:54  → 15:05:54   0s
script     15:13:20  → 15:13:20   0s
voiceover  15:16:29  → 15:18:04  1m35s
visuals    15:20:12  → 15:20:26   14s
assemble   15:20:50  → 15:28:41  7m51s
shorts     15:29:06  → 15:31:08  2m02s
publish    15:38:31  → 15:38:31   0s
───────────────────────────────────
wall clock            33 minutes

Read off the timestamps in the same run.json. Thirty-three minutes of machine time for one edition and two Shorts, of which the two ffmpeg steps are ten. The steps that print 0s finished in a prior agent call and were recorded on handoff — the number is the state write, not the work.

What the policy gate actually caught

The page above says a gate rejects real people, brands and music before any generation spend. Here is that gate's own record from one morning, including the part that is less flattering.

Rejected before a cent was spent

  • Celebrity Lookalike / Star By Faceonly works with real celebrity likeness and a named app
  • Local community dispute trendreal local community dispute — policy skip
  • flyover-flinch-vs-unbotheredalready used — cross-run dedup
  • calm-sip-sudden-shadowboxalready used; rival spin is a crypto-tied persona

The reviewer's note on the five it passed

All 5 approved as written. No real person (toy researchers,
paper grandma, anonymous people from behind, snail/teapot
duo), no brand/IP (no Nat Geo, Ancestry, DC/Lanterns,
Kardashian reference), no named music (all original score
/SFX; oh-boy audio not used), no harm, format-level only.
Sameness check: tilt-shift diorama, paper cut-out, macro
nature, handheld phone-cam street, claymation — all
visually distinct.

The honest part: the deterministic word list returned hits: [] on all five. It caught nothing. Every rejection above came from the reviewer agent reading the candidates. The word list is a cheap floor, not the gate — the architecture document in the kit says the same thing, and you should price the risk accordingly.

What we can actually show you

It is running tonight on three channels.

This is the working system we operate, sold as-is.

Live daily output, as of 26 September 2026
Scripted long-form channelfull seven-step pipeline2 long-form + 4 Shorts / day
Second scripted channelsame pipeline, different config1 long-form + 2 Shorts / day
Clips channelfour-step viral pipeline3 AI clips / day
ENGINEERING 01

A failed run resumes where it stopped

Per-run state machine. Every step emits a typed artifact validated with zod, holds a lease so two runs can never touch the same channel, and retries only on transient errors. You re-run one step instead of the whole night.

The red step is where the night died. The bar under it is the lease — while it is held, no second run can touch that channel. On relaunch the run starts at that step, not at the left.
ENGINEERING 02

The policy gate spends nothing on a bad trend

A deterministic gate rejects real people, brands, music and gore before any generation call is made. The policy reviewer agent runs on top of it. Rejections cost you nothing but the research step.

ENGINEERING 03

You can see what it did at 3am

Unattended software you cannot inspect is a liability. Every job, step, agent call, vendor request and subprocess emits an OpenTelemetry span, so a run that went wrong is something you read rather than guess at. yca telemetry show --last 1 reads the last run from disk with no backend at all; point OTEL_EXPORTER_OTLP_ENDPOINT at the bundled Grafana stack in ops/ if you want dashboards. Ten modules in src/telemetry/, its own vitest file, docs/OBSERVABILITY.md and a /yca-telemetry skill.

Spans carry structure and timing, not your scripts: content is deliberately kept out of telemetry.

ENGINEERING 04

The expensive failures are tested, not hoped for

Unit tests catch a broken function. What costs money overnight is an agent doing something reasonable-looking and wrong, so four eval cases assert the behaviour instead: a billing failure stops the run rather than retrying into a dead subscription; a trend depicting a real person or a brand is held before a single generation credit is spent; a step left running by a dead coordinator resumes from the run's own state rather than the model's account of it; and a publisher reporting in-progress is resolved against YouTube rather than treated as a missing video and posted twice.

Behind them sit thirteen regression tasks: four golden runs and nine mutations that each inject one real past failure — a wrong market figure, a drifted bookend, a real-person prompt, an unapproved clip, a silent clip, stale trends, a Shorts slot collision. They run inside npm test and spend no credits. Four capability tasks and five judge rubrics sit alongside them, calibrated against human labels.

ENGINEERING 05

It can improve its own prompts, and show its working

yca eval build assembles a suite out of your runs, preferring real production transcripts over anything synthetic, and hands you a review page before it counts. grader-check then checks the graders themselves; it found two real grader bugs in our own suite. diagnose reports the infrastructure error rate, warns when the baseline is already above 95% and there is no headroom left to measure, and derives a noise floor so you know which gains are real.

yca eval hillclimb runs the loop: a seeded train/test split whose test half the proposer never sees, one targeted patch per round to a role's instruction file, and a linter that rejects a patch for pasting case content, hardcoding a path or a date, or touching more than forty lines. A patch is kept only if the training gain clears the noise floor, the held-out set does not drop, and no case regresses. Everything else is reverted with the reason recorded. It writes an accepted.diff for you to read. It never edits your repo.

We ran it on our own scriptwriter. The baseline was already 99.6%, so nothing was accepted, which is the correct outcome and the reason we are not claiming it improved anything. An example suite ships so you can run the whole loop offline on the mock engine before spending a credit.

ENGINEERING 06

It checks the machine before it trusts it

yca setup writes .env from the example without ever overwriting one, checks the machine, and prints the next command. yca doctor is the one you run when something is wrong at 6am: node, ffmpeg, python and Pillow, free disk, the power settings, whether the machine is set to wake for the run, systemd linger on Linux, which engine is selected, whether its CLI is actually on PATH and answers a probe, every channel config, and the scheduler itself.

Most overnight failures we have had were not code. They were a machine that dozed off, an expired token, or a vendor out of credit. doctor exists because finding that out at 6am is worse than finding it out at 6pm.

There are no customer testimonials on this page, because there are no customers yet. What we can show you is the three channels above, the architecture document and the vitest suite in the kit.

Cost of ownership

$4,997 once. Then vendor bills.

Against the DIY anchor for three channels, the licence pays for itself in one to two months. After that you pay only for the stack it runs on, and that bill keeps coming.

What you keep paying, monthly
Line itemMonthly
A Mac or a Linux box that stays awake and onlinea dozing or locked machine runs nothing; yca doctor checks the power settings for youhardware you own
Claude CodePro at the low end; Max 5× is realistic for three daily channels$20–$200
Higgsfieldimage and video generation credits, Starter to Ultra$19–$129
ElevenLabsnarration, Creator to Pro depending on minutes$11–$99
Blotatoscheduling and multi-account publishing$29–$97
Typical, three daily channels$150–$400

Any one of those billing relationships can halt production

A declined card at ElevenLabs stops the voiceover step, which stops the run. So does a machine that dozed off, an expired vendor token, or a plan that ran out of credits mid-month. The pipeline logs the failure and resumes cleanly once you fix it, but nothing publishes in the meantime. If you cannot keep a machine and four accounts healthy, buy a managed service instead.

The licence

Own the pipeline. Pay once.

$4,997one time · no subscription

Instant download after checkout. A 577 KB zip, 252 files, the whole system as we run it. Every build is checked by a leak gate and self-tested from the unzipped copy — npm ci, typecheck, the full test suite — before it is published, and ships a MANIFEST.sha256 of every file.

  • src/ the yca CLI, the session engine and run state machine, zod contracts, eleven step implementations plus the four-stage upload pipeline, the provider layer, the policy gate, the viral report, cross-platform scheduling, and src/telemetry/ — ten modules of OpenTelemetry instrumentation
  • .claude/ twelve role-scoped subagents and eight skills in Claude Code's format: /yca-run, /yca-monitor, /yca-prebuild, /yca-new-channel, /yca-viral-leads, /yca-upload, /yca-eval and /yca-telemetry
  • agents/ai-sdk/ the Vercel AI SDK 7 reference runner, with its own tests, and AGENTS.md plus docs/AGENT-INTEGRATION.md — the protocol for driving the pipeline from any agent
  • channels/examples/ five channel templates you create from with yca channel new — news daily, news twice daily, viral mirror, pet duo, upload — plus bin/ the run, catch-up, upload, eval, status and YouTube-check scripts, and scripts/ the caption, text-card and font renderers
  • evals/ four behavioural cases, thirteen regression tasks, four capability tasks, five judge rubrics and an example suite for the hillclimber, and tests/ thirteen test files, 106 tests, passing on this build
  • docs/ ARCHITECTURE.md, OBSERVABILITY.md, AGENT-INTEGRATION.md, harness.md, agent conventions, viral-mirror and the generation cost notes, plus ops/otel-lgtm/ a Grafana stack and a prebuilt dashboard
  • SETUP.md a first-run guide written for this kit, LICENCE.md a single-operator commercial licence, and MANIFEST.sha256 a hash of every file in the zip

Not included, deliberately: support, our own channel configs and brand assets (they belong to those channels), any channel run data, our production eval cases, and any vendor account. The two Higgsfield helper skills and the /eval-harness skill we use in-house are not in the zip either; they are operator and third-party tooling, not part of what you are buying. You bring your own Claude Code, Higgsfield, ElevenLabs and Blotato.

30-day refund, no questions asked. Email support@mizudev.com within 30 days of purchase and we refund in full. You keep nothing you have to delete by hand: the licence simply ends.

Platform risk, stated at the point of sale. YouTube's inauthentic-content policy, updated 15 July 2025, explicitly targets templated and easily mass-produced content. This pipeline produces content daily on a template you configure. Every upload discloses synthetic media and that cannot be disabled. No monetisation, view, subscriber or revenue outcome is promised here or anywhere else on this page. What survives on YouTube is decided by YouTube.

Tier 02 · enquiry only
Managed, per channel
from $997/mo

We run the pipeline on your channel. No payment is taken here. Leave an email and we will reply with scope and a real quote.

Tier 03 · enquiry only
Licence + setup + 30 days support
$15,000

The same licence, installed and running on your machine and your channels, with 30 days of integration support. No payment is taken here.

Questions worth asking

The objections, answered.

Why not just use White Glove Content at a tenth of the price?

For a lot of people, you should. White Glove Content runs $86–$354/mo on its operator track and covers scripts, AI voice, edits, thumbnails, metadata and posting. Channel Farm starts at $49/mo. If you want a handful of videos a week and no machine to babysit, those are a better deal than this and you should take one.

The difference is cadence, volume and ownership. A five-business-day delivery window cannot put a long-form and four Shorts out every morning. A per-channel subscription scales linearly with channels; a licence does not. And at the end of a year with them you have videos, whereas here you have a system you can modify, fork into a new niche, or point at a client's channel. None of the individual steps in this pipeline are novel. What you are buying is that they run together, unattended, every day, and that the code is yours.

Will YouTube penalise channels built this way?

It can, and you need to go in knowing that. YouTube's inauthentic content policy, renamed and clarified on 15 July 2025, explicitly targets content "produced using a template with little to no variation" and content "easily replicable at scale". Mass-produced, generic or repetitive uploads do not earn ad revenue, and YouTube applies this retroactively. A pipeline that runs the same steps nightly across several channels is structurally what that policy describes.

What the kit does about it: a deterministic policy gate and a reviewer agent that reject template-like sameness before anything publishes, forced AI disclosure on every upload through containsSyntheticMedia, and instructions in SETUP.md to vary channels for real and to keep a human editorial pass on what ships. That reduces the risk. It does not remove it, and no seller can honestly tell you otherwise. If a demonetisation would sink your business, this is not a safe purchase.

Will this make me money?

We do not promise that, and the numbers in this genre are not kind. Only about 9–17% of YouTube channels ever reach 1,000 subscribers, which is the floor for the Partner Programme, and daily news and trend content sits in a sub-$5 RPM band. No view, subscriber, monetisation or revenue outcome is promised by this product, on this page or anywhere else. Anyone selling you one is worth a hard look.

What it does is displace cost. If daily production is already a line in your budget — an editor, a VA, a freelancer, your own evenings — this turns that line into a vendor bill of roughly $150 to $400 a month for three channels. Buy it for that. Do not buy it as a route to YouTube income you do not have yet.

Can I run this with ChatGPT, Codex or Cursor instead of Claude Code?

The pipeline is agent-agnostic by design, and there is a real protocol for it rather than a promise. yca next --json returns the next actions as typed objects, yca describe prints the JSON Schema of every payload an agent can submit, errors come back with a category and a hint, and the exit code distinguishes an error from a locked run from one that needs a human. AGENTS.md is a one-page operating guide written for whichever agent you bring, and docs/AGENT-INTEGRATION.md is the full spec. Anything that can run a shell command drives it.

If you want off Claude Code entirely, the kit ships a Vercel AI SDK 7 reference runner in agents/ai-sdk/, with its own MCP clients for the image, voice and publishing vendors, per-role tool scoping and trace propagation. It passes an end-to-end test against mock providers. It has not yet run a full production day, so treat it as a working starting point rather than a proven one.

Two things stay Claude-specific. The twelve subagents and eight skills in .claude/ are Claude Code's format and only Claude Code auto-loads them; they are markdown, so you can hand them to another agent as instructions, but that is your work. And the kit ships no .mcp.json, so outside Claude Code you wire the vendor connectors yourself — which is exactly what the AI SDK runner already does.

Claude Code is what the three live channels run on and the only path proven across a full day. Codex, Cursor, Windsurf and your own loop will drive the same CLI, and we have not tested them end to end.

Do I need a Mac, or will Linux do?

Either. yca schedule install renders the same job table as launchd jobs on macOS, or as systemd --user timers or cron entries on Linux, and yca doctor knows about both, down to checking systemd linger so your timers survive a logout. A Linux box is covered by the kit's own self-tests.

Being straight about the asymmetry: our three channels run on macOS, so that is the configuration with real nights behind it. Linux is supported and tested, not yet production-proven by us. Either way the machine has to be awake and online at run time, which is the part people underestimate. A Mac mini on a shelf or a small always-on Linux box is the normal setup.

Beyond the OS it needs ffmpeg, python3 with Pillow, and whichever agent engine you picked. yca doctor tells you which of those is missing before you find out at 3am.

What does it actually cost me every month?

Roughly $150 to $400 a month in vendor spend for three daily channels, on top of a machine you already own. That breaks down as Claude Code at $20–$200, Higgsfield at $19–$129, ElevenLabs at $11–$99 and Blotato at $29–$97, depending on tier and volume. Push more channels or longer videos and it goes up.

There is no licence renewal and no per-video fee from us. The full table is in the cost section.

Is support included?

No. Not at $4,997. You get the source, the architecture document, SETUP.md and the test suite, and that is the whole deal. There is no SLA, no onboarding call, no bug-fix promise and no guaranteed reply time. The only thing the support address handles at this tier is a broken download link or a refund.

If you want someone on the hook, the $15,000 tier includes setup and 30 days of integration support, or the managed tier means we run it. Both are enquiries above and neither takes payment on this page.

How do I change a prompt without quietly breaking the thing?

Run the evals. yca eval run --suite regression replays four golden runs and nine mutations, each one a real failure we have had, and it costs no credits because it grades recorded output. That is the suite to run before you merge anything. The four behavioural cases and the capability tasks cost credits, so they are meant for the weekly job the scheduler already installs.

If you want to go further, yca eval hillclimb proposes one patch at a time to a role's instruction file, scores it against a held-out split the proposer cannot see, and keeps it only if the gain is bigger than the measured noise and nothing regressed. It writes a diff for you to review and never edits your repo. You can run the whole loop offline on the mock engine with the example suite before you spend anything.

What happens when a vendor changes their API?

The pipeline stops at that step, logs the error, and resumes from that step once it is fixed. Fixing it is yours to do. Each vendor sits behind one small adapter in the provider layer, so a breaking change is usually one file, and the vitest suite tells you what broke. The design assumes breakage and aims for a fix a developer can finish in an afternoon.

We patch the system we run ourselves, but the licence carries no update entitlement. Buying it does not buy you future versions.

Can I run client channels on this?

Yes. LICENCE.md is a single-operator commercial licence: one operator, unlimited channels, including channels you run for paying clients. Agencies are an intended buyer. What it does not permit is reselling, sublicensing or redistributing the code itself, or handing the kit to a client as their own. Read LICENCE.md in full before you buy if this matters to your business model, and email us if your setup sits in a grey area.

What am I actually buying, and what is promised with it?

Source code and a setup guide, sold as-is under a single-operator commercial licence. It is software. It is not a business, not an income opportunity and not advice of any kind. You get the files listed in the licence section, you run them on your own machine with your own vendor accounts, and what the channels do after that is yours.

There are no customer testimonials on this page because there are no customers yet. The three channels are ours, and the terminal output further up was pasted out of the running system so you can judge it without taking our word for anything.

What are the refund terms?

30 days, no questions asked. Email support@mizudev.com from the address you paid with, within 30 days of purchase, and we refund in full. We do not ask you to prove you tried it, and we do not ask you to delete anything. This is source code, so we are relying on people being straight with us, and so far that has been fine.