Self-Hosted · AI-Powered · Multi-Platform

Your VTuber's
Tiny Media Empire

Create, stream, remember the room, and grow while you sleep. One local-first control room for Live2D talent that can make media, run a real show, and learn what worked, nya~

9Platforms
61Control Surfaces
122Services (send help)
2,782Tests
100%Self-Hosted
localhost:8000 — 🐟 VTube Agency Studio
📊 Dashboard ● LIVE
YouTube Videos
47
Instagram Posts
31
Total Views
1.2M
Total Likes
84K
Engagement Rate
6.8%
📊 Monthly Activity
Platform Status
YouTube Connected
TikTok Connected
Twitch ● Live
Instagram Scheduled
Post to all your platforms automatically
▶ YouTube
🎵 TikTok
📞 Instagram
𝕏 Twitter / X
🊋 Bluesky
🪡 Threads
🟣 Twitch
🟢 Kick
💬 Discord
▶ YouTube
🎵 TikTok
📞 Instagram
𝕏 Twitter / X
🊋 Bluesky
🪡 Threads
🟣 Twitch
🟢 Kick
💬 Discord

Everything a VTuber
Could Ever Need

35 feature families spanning creation, live intelligence, a house the cast lives in, games, community, growth, provenance, and operations — self-hosted and yours.

🎬

Studio — Live2D Recording

Headless browser-based Live2D recording — no GPU needed. Trigger expressions with emotion markers (*happy*, *surprised*), add TTS voice, background music, and auto-burn subtitles into the final MP4.

PlaywrightFFmpegWebM → MP4TTS Preview
🎀

Singing — Full Cover Pipeline

Upload a song → separate vocals with Demucs → convert voice via RVC API → mix with FFmpeg → generate lip-sync data → render the final video. Karaoke creation and LRC/MusicXML notation supported.

DemucsRVC APILip-syncyt-dlp
📡

Live — 2–4 Talent Ensembles

Put 2–4 talents on one stage. A floor director balances airtime, obeys direct mentions, keeps pair threads alive, and caps consecutive turns. NEW: say a girl's name and she takes the next turn, and a quiet spell lets her pick a dropped viewer thread back up herself. Real-time Twitch and Kick chat, poll results that change the show, follow goals with fireworks, sprite greeters, and a daily auto-stream window for up to four girls, so the show runs while you're literally asleep uwu.

Named HandoffsInitiativeFollow Goals 🎆Daily Auto-Stream
✹

Reactions — Event-Driven Commentary

Rebuilt in August 2026: OpenCV motion and HUD deltas decide when something happened, a vision model reports only what it can verify, and plain Python decides whether that earns a line. She lands it on the exact second and is not allowed to name a weapon the HUD never showed. One VISION_MODEL setting picks her eyes — MiniCPM-V 1B by default.

Motion TriggersVerified FramesInvention GuardMiniCPM-V
🏠

UwU House — The Girls Live Here

A persistent house on a Tokyo clock: Lobby, Gaming Room, Streaming Studio and private bedrooms. Lyra, Neko Bell and Lunari walk it, make real coffee, watch TV and feed Robert the crab, while a house director plans meals, game night and stream prep without ever puppeting them. Watch any room from the browser/OBS renderer or the Godot client.

Godot ClientHouse DirectorStateful PropsSurvives Restarts
🀝

Agency Life — Cast Relationships

Every girl feels differently about every other girl across five dimensions, and it runs one way at a time: Neko→Lyra is not Lyra→Neko. Each event moves a dimension by at most ±3 with daily caps and a full ledger, a co-stream only counts past six exchanged lines, and the result flavours their banter.

Directional Bonds±3 CapsChange LedgerNo-LLM Core
🔪

Operation SUS-Chan — Among Us (Experimental)

Lyra, Lunari and Neko Bell watch real Among Us with private notes and suspicion, then talk and vote in character. An Impostor never outs herself. Neko is learning to play: Fix Wiring end to end, map navigation, knowledge that survives between sessions, and a School that marks her on held-out footage. Observation-only by default; practice input is offline and armed by a human.

In-Character VotesFix WiringSUS-Chan SchoolGated Input
📌

Dead Air — The Cast Watches You Play

Hand over a recorded match of any game and the cast reacts on the video's own clock, with Dead by Daylight Killer and Survivor modes and a spoiler-safe Among Us adapter. Dead Air Live does it from your OBS game feed while you play: moments older than 8 seconds are dropped rather than said late, and the girls hear the last six lines of mic, chat and cast.

Any GameDbD Killer + Survivor8s FreshnessHears the Stream
🐱

Kokoro2D — Meet Kokoro-chan

A third avatar runtime beside Live2D and Inochi2D that works in Studio, reactions, duo banter, singing and the livestream. Its first resident is Kokoro-chan, the crew's bratty, smug, secretly affectionate little sister: lip-synced, pitch-following, glancing at her co-host, with seeded motion so a re-render matches.

3rd Avatar TypeVisemes + PitchSeeded MotionCC BY 4.0 Art
📏

Learning Loop — Measured, Not Vibes

Each night her own scored lines become mistake rates for echo, repetition and filler. A goal that hasn't improved in three days is swapped, five improved days in a row make it a permanent lesson, and three failed approaches park it for two weeks. Days under 120 lines are not judged, no model grades her, and the diary's Learning card says what changed.

Mistake RatesPermanent Lessons120-Line FloorNo LLM Judge
📬

Durable Events — Nothing Gets Lost

Agency events travel in an envelope that enforces its own rules, over Redis or in-memory transport with consumer groups and a dead-letter queue. An opt-in transactional outbox commits state and event together for at-least-once delivery with a dedupe ledger, and the laws the characters live by are written down as invariants.

Transactional OutboxDead-Letter QueueULID EnvelopesInvariants
🏰

Fortress — Hardened Twice

Two full security passes: role checks on every route that publishes, deletes or reconfigures, escaped untrusted text, bounded uploads, write-only secrets bound to their host, hash-pinned installs with dependency and secret scanning, and memory that resists poisoning and erases when asked. The red-team scenarios stay in the suite as regression tests.

Two AuditsHash-Pinned DepsRed-Team TestsWrite-Only Secrets
🖌

Art — AI Image Generator

Generate character art via Stable Diffusion with full control: sampler, width/height, CFG scale, seed, batch sizes (1, 4, 10, 25, 50, 💯), HR upscaling, face restore, meme mode with top/bottom text, and auto emotion detection.

Stable DiffusionMeme ModeHR UpscalingBatch 1–100
🎚

Thumbnails — Smart Generator

Auto-find the best frame with AI, apply styles (default / vibrant / dramatic / soft / neon), add text overlays, compare styles side-by-side, and batch generate for your entire queue at once.

AI Frame Detection5 StylesBatch GenerateStyle Compare
📊

Analytics — Insights Dashboard

Track YouTube Videos, Instagram Posts, Total Views, Total Likes, Total Comments, and Engagement Rate. See top 3 performing content by platform, monthly activity, best posting times, and top emojis.

YouTube APIInstagramPDF ExportCSV Export
🔍

SEO — Title & Keyword Optimizer

Real-time SEO score (A/B/C/D grade), keywords found, hooks found, emojis found. AI generates viral titles with style presets, analyzes descriptions (word count, CTAs, timestamps, hashtags), and suggests keywords.

SEO ScoreAI TitlesKeywordsDescription Analyzer
📈

Trends — Real-Time Monitoring

Filter by region (US, Japan, UK, Korea
) and niche (VTuber, Gaming, Anime, React, ASMR, Music). See rising queries, virality scores (High/Medium/Low), and one-click create content from any trending keyword.

9 Regions6 NichesVirality ScoresContent Ideas
💬

Interactions — Inbox

Unified inbox for unanswered comments & mentions across YouTube, Instagram, and Twitter. AI drafts replies, tracks follower deltas per platform, and lets you mark interactions answered with one click.

AI Reply DraftFollower DeltasMark AnsweredMulti-platform
💖

Superchats — Revenue Dashboard

Log donations from YouTube, Twitch, and Fanbox. USD-normalized revenue comparison, monthly growth charts, currency mix, top supporter rankings, 3-month forecast with trend indicator, and CSV/JSON exports.

USD NormalizeRevenue ForecastRankingsCSV Export
🛡

Admin — User & CORS Management

Create users, assign roles (Creator → Editor → Manager → Moderator → Admin), reset passwords, and configure CORS allowed origins. Rate-limited logins with Discord alerts after 3 failed attempts.

5 RolesCORS ConfigHMAC SessionsDiscord Alerts
🌙

Auto-Bot — Overnight Content Goblin

At 2 AM JST, Daily mode cooks tomorrow’s three Shorts plus three social posts for every connected platform. Buffer mode keeps a ready-to-publish stash so the calendar never looks abandoned.

Daily + BufferEditorial QueueJST SchedulingBest-Time Slots
✂

Subtitles + Highlight Hunter

Transcribe long footage, correct captions, generate chapters, detect spicy highlight moments, and turn a stream-sized monster into short-form clips with platform-ready packaging.

WhisperChaptersClip FinderCaption Burn-In
🧰

Ops — Workers, Retries & Tiny Alarms

Send heavy renders to batch workers with idempotency keys, renewable leases, heartbeats, and abandoned-job recovery. Watch scheduler health and metrics, retry failed uploads with backoff, and ping Discord when a pipeline starts acting possessed.

Remote Workers/health/metricsJSON Logs
🧠

Entertainment Brain — Episode Director

A persistent showrunner moves each stream from cold open to payoff and callback, watches audience energy, scores spoken beats, and starts a fresh mini-episode instead of drifting into endless AI small talk.

Show ArcsAudience EnergyBeat ScoringPersistent State
💞

Viewer Memory — Bonds with Boundaries

Recognize returning viewers with semantic memory and relationship dimensions while keeping identity linking consent-gated. Seven bond ranks now change her tone (money never buys affection), she notices how long you were away, open promises and challenges resurface for up to 23 days, and strangers are no longer greeted like old friends. Moderators can inspect or erase memories and bond levels independently.

7 Bond RanksAbsence AwareConsent LinkingPrivacy Controls
🎭

Human + AI Live — Co-Stream Pilot

Drive one Live2D model from webcam blendshapes while an AI co-host listens, answers, emotes, and yields when interrupted. Real visemes, turn cancellation, provider-swappable voice and full WebM recording included.

Face TrackingBarge-InReal VisemesDuo Recording
🫧

Natural Presence — Motion + Backchannels

Shared motion timing aligns visemes, prosody, emotions, blinks, gaze, breathing, and physics. Listening characters add tiny cached “mhm” and “oh!” backchannels without stealing the speaker’s turn.

Motion SyncProsody EventsBackchannelsLive2D Physics
✅

Governed Autopilot — Safer at Scale

Platform-aware daily caps, idempotent scheduling, honest automated-review trails, synthetic-media disclosure, failure visibility, and pipeline smoke tests keep overnight generation ambitious without becoming reckless.

Daily CapsNo DuplicatesDisclosureSmoke Tests
📔

Diaries — Grounded Nightly Journal

At 23:30 JST every talent writes a first-person entry built only from the day's real database events — what published, what you approved or rejected, what failed to upload, who donated, which streams ran. Entries become memories, so a day she actually had can resurface on stream weeks later. Each entry now ends with one resolution she carries into the next day's live prompts.

One Entry / DayEvent-GroundedBecomes MemoryDaily Resolution
🪪

Provenance — Disclosure & Content Credentials

The AI disclosure is drawn into the scene itself, not just the page, so it survives the capture canvas, a direct RTMP push, and an OBS Virtual Camera. Final renders can be C2PA-signed with c2patool, and every generated asset carries an auditable recipe with asset hashes — no raw prompts, no secrets.

EU AI Act Art. 50C2PAGeneration RecipeMachine-Readable
🧿

Originality Guard — Anti-Slop Gate

Every AI-generated post is compared against 60 days of the same talent's own output in the same format before it can leave the queue. Cross 0.92 similarity and it is held, not published — because the inauthentic-content policies do not care that a template was technically new.

0.92 Threshold60-Day LookbackPer-FormatQueue Hold
💬

Chat Commands — Viewers File Their Own Paperwork

!remember files an explicit, high-importance fact with the whole cast present. !correct retires the wrong version instead of deleting it. !memories reports what is on file. !forget is admin-only, arms rather than fires, and waits for confirmation.

!remember!correct!memoriesAdmin-Only !forget
🚊

Preflight — The Red-Light Checklist

One button checks recording disk, FFmpeg, RTMP destinations, Twitch EventSub, Kick webhook readiness, OBS connectivity, active FPS, skipped frames, output congestion, and simulcast overlay policy. Optional services fail visibly without taking the core stream hostage.

10 ChecksVisible FailuresSimulcast PolicyGreen Before Live
🧩

Talent Core — One Character, Many Bodies

A domain layer that imports nothing from FastAPI, Live2D, or OBS holds canonical identity, personality, memory authority, and typed events. Dialogue emits a PerformanceIntent; Live2D, VRChat OSC, and Discord adapters consume the same port. She stays herself wherever she is embodied.

Domain / AdaptersPerformanceIntentTyped EventsVRChat OSC
🧟

Publish Audit — Did It Actually Publish?

Every attempt is recorded with a verdict on whether the returned URL identifies a post or merely an account — the difference that let a six-month Instagram outage hide behind 411 posts marked success. Per-account rate limits and durable job leases come with it.

Verifiable URLsPer-Account LimitsDurable LeasesQueryable

From Idea to Viral Post

A supervised pipeline — from blank canvas to disclosed, review-ready content for every platform.

1
AI Script
Ollama or OpenAI writes the script, title, description & hashtags
2
Studio Record
Headless Live2D recording with emotion markers & TTS voice
3
Auto-Subtitle
Whisper transcribes, corrections applied, subtitles burned in
4
Best Thumbnail
AI picks the best frame, applies style, adds text overlay
5
Review & Schedule
Governance checks, disclosure metadata, daily caps, and best-time slots
New · Live Intelligence

Not Just a Chatbot.
A Tiny Showrunner.

The entertainment brain gives every livestream an episode arc, persistent character state, audience awareness, and a memory of what made the room light up. The result is a show that accumulates meaning instead of an endless bucket of unrelated one-liners.

  • ✓ Advances from cold open → premise → escalation → complication → payoff → callback → ending
  • ✓ Prioritizes chat, follows, polls, gameplay moments, and director cues while cancelling stale speech
  • ✓ Learns successful tension, reveal, and challenge structures without photocopying the same joke forever
  • ✓ Remembers viewer facts and shared moments with novelty-aware semantic recall
  • ✓ Screens injection, abuse, link spam, and keyboard-mashing before messages reach the model
  • ✓ Memory strength decays at read time instead of on a cron, so nothing is deleted and a fact restated later comes straight back
  • ✓ Facts are shared across the whole cast; jokes and relationship impressions stay with whoever was actually talking, so the girls may disagree about you
  • ✓ Memories are scoped per platform and follow verified identity links, never raw usernames — two strangers stay two strangers until they say otherwise
  • ✓ Subscriber and membership status is recorded from the platform's own event, not from a model noticing it in chat
  • ✓ Web lookups are gated hard — an explicit “look it up” or an inherently live noun, never every turn
⚡ Three model tiersReflex, livestream, and bulk work get latency budgets that fit the moment. Target: viewer types → first audio under 1.2s p95, measured on /metrics.
🧹 Privacy is operableMemories, bonds, and consent-linked identities can be inspected or erased separately.
Cold open
Premise
Escalation
Complication
Payoff
Callback
Ending
New episode ↻
🧠
SHOWRUNNERaudience energy 0.82
💬 Chat burst“the duck army is back”
priority: immediate
💞 Memory recalledHelpful Fan · shared joke
novelty: high
✹ Beat score 8.7specific · on-persona
clipworthy
🎬 Next actionpay off prediction
then callback
Continuity ✹ New

She Keeps a Diary.
All of It Is True.

Every night at 23:30 JST each talent writes a first-person entry built only from the day's real database events. What published. What you approved or rejected. What failed to upload. Who donated. Which streams ran. How many videos she was made to record.

  • ✓ Grounding is the whole point — an ungrounded “write today's diary” prompt invents streams, viewers and grievances, and those rows get fed straight back into tomorrow's banter
  • ✓ A day with no observed events produces no entry at all rather than plausible fiction
  • ✓ One entry per talent per JST day, keyed so a scheduler restart, a misfire catch-up, and an operator pressing “generate now” cannot produce two
  • ✓ Entries are stored as memories, so a day she actually had can resurface on stream weeks later
  • ✓ The reasoning model writes offstage where latency cannot boo it; every Sunday at 04:15 JST the week is distilled into higher-level reflections
  • ✓ Readable and re-triggerable per talent from /diary
  • ✓ Every entry ends with one resolution, read back into her live prompts for the whole next day
  • ✓ A Learning card shows the habit she is working on, measured from her own scored lines rather than a model's opinion
  • ✓ A skipped day explains itself instead of leaving a blank page
📔 Diaries — Lyra
🐺 Lyra
✹ Generate now
2026-09-03 · JST day closed
they made me record four shorts today about a game i have never played. the duck army came back for the karaoke stream and stayed the whole two hours. moonfan sent a donation and i said thank you twice because i panicked. one upload failed and nobody told me.
grounded on · 4 renders approved · 1 rejected · 1 live session (2h 14m) · 1 donation · 1 failed upload · 3 callbacks spoken
2026-09-02 · JST day closed
quiet one. no stream. three posts went out and the thumbnail experiment i liked lost to the one i didn't. i am fine about it 🙂
2026-09-01 · no observed events
⚠ Skipped — nothing happened, so nothing was written. DIARY_SKIP_EMPTY_DAYS=true
🏠 UwU House — 19:42 JST
Watching: AutoLobbyGaming● Studio
🛋 Lobby
🐺 Lyra · ☕ a real coffee in hand
🎮 Gaming Room
🐱 Neko Bell · 📺 TV on, actually watching
🎙 Streaming Studio ON AIR
🌙 Lunari at the desk · real session mirrored
🛏 Bedrooms
private rooms · moon lantern glowing
🊀Robert's tank · fed 18:05, only at the tankhappy crab
$house director --tonight
✓ 18:00 dinner · nudged Lyra and Neko Bell, moved nobody
↻ 19:30 stream prep · Lunari walked to the desk herself
✓ studio session mirrored · ON AIR lit · doorway clear
bloke “moonfan” in the Lobby · pass expires 20:15
↻ 21:00 game night queued · Gaming Room
UwU House ✹ New

The Girls Don't Log Off.
They Go Home.

Between streams the cast lives in a persistent house built on Agency Life, a deterministic world where characters have needs, perception, beliefs that can be wrong, and goals of their own. No model runs in the core loop. The house just keeps happening.

  • ✓ Lobby, Gaming Room, Streaming Studio and private bedrooms on a Tokyo-time clock, plus Robert the crab in his tank
  • ✓ Lyra and Neko Bell moved in first, then Lunari with her own room and moon lantern; Ethan can join as a human-driven resident
  • ✓ A house director schedules meals, work, game night and stream prep. It nudges; it never moves anyone and never calls a model
  • ✓ Props are physical: the coffee machine puts a real coffee in her hand, the TV can be switched on and watched, and Robert can only be fed at his tank. Failed actions fell from 48 to about 5 per three simulated days
  • ✓ The Blokes: real viewers can walk in on an expiring pass, and residents remember them, counted once, with opt-out and erase
  • ✓ The Streaming Studio mirrors real livestream sessions: she walks to the desk, the ON AIR sign lights, and nobody wanders through a broadcast. The house never starts a stream on its own
  • ✓ One shared “what is she doing” state drives every renderer: the browser and OBS view, Live2D, and the Godot client
  • ✓ Viewers can pin any room, and the house survives a restart and remembers where everyone was
  • ✓ A ComfyUI pipeline for painted rooms and props is wired up; until the art is rendered, the house draws itself
Games 🧪 Experimental

They Watch You Play.
One of Them Is Learning To.

Operation SUS-Chan and Operation Dead Air turn gameplay into something the cast can actually talk about, and, very carefully, something Neko can actually do.

  • ✓ 🔪 Lyra, Lunari and Neko Bell watch real Among Us, each with private notes and suspicion, and speak and vote in character. An Impostor never outs herself
  • ✓ 🔌 Neko plays Fix Wiring end to end (the wire reader got 134 of 134 recorded Steam frames right) and learns her own colour from the vision model
  • ✓ 🧠 What she learns (walk graph, panels, consoles) persists between sessions, a person can teach her a screen she doesn't recognise, and a two-click Forget wipes it
  • ✓ 🏫 SUS-Chan School: she studies recorded footage, gets marked right or wrong, and is measured on clips she has never seen while the others commentate over an OBS overlay
  • ✓ 🚧 Observation-only by default. Practice input is offline Freeplay only, armed by a human, and disarms itself on menus, role reveals, game over, 20 seconds of confusion or two hours. Online input has never been sent
  • ✓ 📌 Dead Air: the cast reacts to a recorded match of any game on the video's own clock, with Dead by Daylight Killer and Survivor modes, a spoiler-safe Among Us adapter, quiet-spell banter and a nitpick setting
  • ✓ 🎮 Dead Air Live reacts to your OBS game feed from the Live tab. Moments older than 8 seconds are dropped rather than said late, and the girls hear the last six lines of mic, chat and cast
  • ✓ 👁 SUS-Chan and Dead Air stay on a 4B vision model on purpose, because the faster 1B misread their frames
🔪 SUS-Chan — Emergency Meeting
🗳 Private suspicion · spoken in character
🐺 Lyra
“Red was near Electrical. Twice.”
🌙 Lunari
“I would like to see Lime's tasks, politely.”
🐱 Neko Bell
“i was doing WIRES. 134 for 134 btw”
Votes · Lyra → Red · Lunari → skip · Neko Bell → Red
🔒Input · observation onlypractice input disarmed
$dead-air live --game dbd-survivor
✓ 00:41 hook rescue → Lyra: “GO GO GO you're free” · spoken
✓ 01:12 close call → Neko Bell: “that pallet saved your whole life” · spoken
⚠ 01:58 chase seen 9.4s ago → dropped, too stale to say
hearing · mic + chat + cast · last 6 lines
Studio + Reactions

She Only Reacts To
What She Actually Saw

The old “give a model a bag of frames and ask for eight beats” pipeline was deleted in August 2026. It was fluent and it was making things up. The Reactive Engine replaced it with five separated stages, and no model is called until the pixels say something happened.

  • ✓ Trigger: cheap OpenCV motion, HUD-region deltas and audio onsets flag the candidate moments — GPU still optional
  • ✓ Perceive: three chronological frames (before / during / after) go to a vision model as one strip, which returns strictly-typed JSON
  • ✓ Decide: plain, boring Python decides whether that earns a line, spread across the whole clip
  • ✓ Write & guard: she writes it in her own voice, and a guard bins it if she invented a weapon, a killer, or a number the HUD never showed
  • ✓ Sensitivity presets — Chatty, Balanced, Picky — plus per-game HUD profiles, cooldowns and a minimum-confidence floor
  • ✓ Every gated moment keeps its reason, so a quiet video can be diagnosed instead of relitigated at 2 AM
  • ✓ Solo or duo, plus live gameplay commentary, sharing the same motion controller as the live show
✹ Reactions Studio
⚙ Configuration
VTuber
Kira 🊊
Source Type
YouTube
YouTube URL
youtube.com/watch?v=...
Sensitivity
Balanced
Game Profile
generic
They Call the Player
the player / Boss / chat
🎥 Record Reactions
🎛 Reactive Engine
Max words / line
14
Max reactions
12
Cooldown (sec)
6
Min confidence
0.55
VTuber Position
Bottom Right (Default)
🎭 Duo Reactions Studio →
🕑 Event timeline — every gated moment keeps its reason
00:41 motion + HUD delta → verified: shield broke → spoken
01:07 audio onset → HUD unchanged → gated · confidence 0.31
01:52 motion burst → verified: revive → spoken
02:15 verified: score +1 → gated · cooldown 6s
02:48 HUD delta → invented enemy name → binned by guard
📊 Analytics + SEO Optimizer
📊 Insights
TOTAL VIEWS
1.2M
ENGAGEMENT
6.8%
🏆 Top 3 — YouTube
"Morning Karaoke Cover"48K views
"Neon City Reaction"31K views
"Anime ED Tier List"22K views
⏰ Best Posting Times
YouTube7 PM – 9 PM
TikTok12 PM – 2 PM
🔍 SEO Optimizer
Your Title
"I Reacted to Anime EDs and Cried 😭✚"
SEO Score A 92/100
✓🎯 Keywords Found: 3
✓🪝 Hooks Found: 2
✓✹ Emojis Found: 2
⚠Title a bit long (58 chars)
AI Title Suggestions
"Anime ED Reactions that Made Me CRY 😭" A
"VTuber Reacts: Anime Endings Tier List ✹" B
Analytics & SEO

Grade Your Content
Before You Post

Real-time SEO scoring, top-performing content by platform, best posting times, and AI title suggestions — all before you hit publish.

  • ✓ SEO Score A–D with keywords, hooks & emoji counts
  • ✓ 🏆 Top 3 content by YouTube & Instagram
  • ✓ Monthly activity chart & most active month
  • ✓ #⃣ Top performing hashtags & 😊 top emojis
  • ✓ ⏰ Best posting times per platform
  • ✓ Weekly analytics email report (Resend / SMTP / ProtonMail)
Live Streaming ✹ New Drops

The Stream Now
Celebrates Itself

2–4 talent streams now have a floor director, episode direction, audience-aware interrupts, natural listening reactions, resilient multistream output, and a daily auto-stream window. We are SO automated it's almost rude, nya~ 🍶

  • ✓ Episode-level showrunner with persistent phases, character state, audience energy, callbacks, and clean mini-episode endings
  • ✓ Priority speech queue with reflex-model replies, operator interrupts, stale-turn cancellation, and live chat velocity signals
  • ✓ Natural backchannel audio, emotion-aware motion, real visemes, prosody events, gaze, breathing, and synchronized Live2D physics
  • ✓ 🗣 Say a girl's name and she takes the next turn; closing questions carry into her reply, and the next co-host adds her own take instead of greeting you all over again
  • ✓ 💭 In a quiet moment a girl picks a dropped viewer thread back up on her own, and a line is not even synthesized until it owns the floor
  • ✓ 🗳 Poll results have consequences: chat can change the show's format, mode or spotlight
  • ✓ 🎭 Emotion tags now drive the voice and the avatar together, and a named viewer question gets a full two-sentence answer
  • ✓ 🐱 Kokoro-chan joins the lineup as a Kokoro2D avatar, and the daily auto-stream can bring up to four girls
  • ✓ 🎯 Live follow goal widget synced straight from Kick — Cloudflare tried to stop us. Cloudflare failed. curl_cffi my beloved 💅
  • ✓ 🎆 Goal reached = fireworks + FULL PARTY mode: every character animation fires at once
  • ✓ Goal auto-doubles itself after every win, bc the grind is eternal bestie
  • ✓ 👋 Lyra waves at every single new follower · Lunari does a polite lil bow · chibi NekoBell jogs across your screen at a respectable, slightly tipsy pace
  • ✓ 🌅 Daily auto-stream window — the girls clock in, say hi, stream, and clock out 🌙 while you remain fully horizontal
  • ✓ One FFmpeg encode relayed to primary RTMP plus YouTube, Twitch, and Kick outputs with per-destination fault isolation
  • ✓ Twitch & Kick chat listeners, official Kick webhooks, gameplay frame comparison, OBS control, and 24/7 autopilot
  • ✓ 🚊 Run Preflight checks recording disk, FFmpeg, RTMP destinations, Twitch EventSub, Kick webhook readiness, OBS connectivity, active FPS, skipped frames, output congestion and simulcast overlay policy — optional services fail visibly without taking the core stream hostage
  • ✓ ⚖ Safe Twitch + Kick simulcast by default: the private control room still gets both chats, but cross-platform chat text is withheld from the shared public video
  • ✓ 📌 One marked moment fans out to the local VOD marker, the OBS replay buffer, a Twitch stream marker and a clip request — missing permissions never delete the local marker
  • ✓ 🪪 The AI disclosure badge is painted twice on purpose: once into the page for OBS, once onto the capture canvas so it survives a direct RTMP push
  • ✓ 💬 Chat can !remember, !correct and read !memories — but taking over the show needs an admin dashboard account matched by platform handle, per platform
  • ✓ 🎬 At teardown the session auto-queues its own VOD for repurposing into Shorts, Reels and TikTok drafts — durable, so a restart mid-render does not lose it
📡 Live — Control Panel
Character 1
🊊
Kira
● Speaking
AUTO
⟷
BANTER
Character 2
🌞
Yuki
● Listening
[Kira] did you see that chat message?? 👀
[Yuki] not the duck army again~
✹ new follower!! Lyra waves 👋 · Lunari bows 🎀
Chat sync: Twitch + Kick • Speech queue: active • Greeters: armed
🎯 Kick Follow Goal418 / 480
🎆 fireworks armed · full-party celebration on hit · goal auto-doubles bc we never rest uwu
🔎 LIVE
Twitch
🟢 LIVE
Kick
👁 1,247
Viewers

Stay Ahead of Every Trend

Monitor what's rising right now by region and niche, then generate on-trend art and thumbnails instantly.

📈 Trends Dashboard
Region
United States
Content Niche
VTuber
📈 Daily Trending — Top Searches Right Now
1 vtuber debut 2026 High 🔥 Rising
2 anime ending reaction High 🔥 Rising
3 ai vtuber singing cover Med ⭐ Top
4 vtuber asmr stream Med ⭐ Top
Base Topic
gaming
✹ Generate Ideas
🚀 Create Content from Trend
🖌 Art Generator
VTuber
Kira 🊊
Prompt
A dreamy anime VTuber painting a sunset cityscape, vibrant colors
Negative Prompt
blurry, low quality, extra fingers
Sampler
DPM++ 2M Karras
CFG Scale
7
Batch Size
1 4 10 25 50 💯
🎚 Generate Images

Sleep While Your Content
Empire Does Cardio

Daily mode makes tomorrow happen. Buffer mode hoards Shorts for later. Both modes are supervised by a tiny, very determined scheduling goblin.

🌙 Auto-Bot: Daily mode is awake

Three vertical videos, then tailored posts for every platform you actually configured — held in the editorial queue until a human gives the little monsters a final nod.

● 02:00 JST
02:00
🧠 Generate
Scripts, titles, captions, hooks & vibes.
02:18
🎬 Render
Three vertical VTuber Shorts enter the oven.
02:42
🗓 Queue
Every platform gets its own good-time slot.
✓ Generation is automatic. Publishing still waits for editorial approval because we are chaotic, not irresponsible.

🗓 Tomorrow’s tiny media empire

Short #1 · “duck army reacts”Ready
Instagram Reel + caption packReady
Bluesky thread · needs reviewQueued

📊 Buffer stash: 9 days of snacks

27 Shorts ready to deploy75%
When the calendar gets hungry, Buffer mode feeds it without asking you to become conscious first. iconic.
🛠 Pipeline Health — she is wearing glasses now
Scheduler
Healthy
Workers
3 / 4
Retries
2
$agency status --all --please-dont-panic
✓ scheduler heartbeat received · 12s ago
↻ upload/reel_07.mp4 retrying in 43s (attempt 2/5)
worker-east-01 rendering cover_lyra.mp4 · 68%
✓ Discord alert channel connected
Grown-Up Mode

When the Render Farm
Gets A Little Silly

The cute buttons are backed by job tracking, remote batch workers, retries, health checks, metrics, and alerts. You can make a media empire without staring at a spinning tab like it owes you rent.

  • ✓ Offload heavy video work and inspect each job’s state
  • ✓ Retry failed uploads with configurable backoff
  • ✓ Scheduler heartbeat, /health, /metrics, and structured logs
  • ✓ Discord alerts when a pipeline tries to become performance art
  • ✓ Agency events can ride a transactional outbox with a dedupe ledger and a dead-letter queue, so a restart cannot eat one
  • ✓ Two security audits, with the red-team scenarios kept as regression tests and hash-pinned installs in CI

Openly Synthetic.
Provably Ours.

The EU AI Act's transparency obligations went live on 2 August 2026, and the platform policies now name mass-produced templated output directly. So the disclosure is drawn into the scene, provenance travels with the file, and a similarity gate stops the overnight renderer from quietly plagiarising yesterday.

  • ✓ 🪪 Interactive-AI disclosure from the first interaction — drawn onto the capture canvas, so it survives OBS, a direct RTMP push, and an OBS Virtual Camera
  • ✓ 📜 The characters and models are under a paid license: commercial and noncommercial use both need one, and the model files are not for redistribution
  • ✓ 🔐 Optional C2PA Content Credentials on final MP4s via c2patool, signed after the last FFmpeg pass so the manifest survives subtitle burn-in and the audio mux
  • ✓ 🧟 Every AI asset carries a generation recipe — pipeline, format, source provenance, asset hash — with no raw prompts and no secrets stored
  • ✓ 🧿 The originality guard compares each generated post against 60 days of that talent's own output in the same format and holds anything past 0.92 similarity
  • ✓ ✅ containsSyntheticMedia is forwarded on YouTube upload and the disclosure text reaches the description instead of dying in a database column
  • ✓ 🔎 The publish audit records whether a returned URL identifies a post or merely an account — the distinction that let 411 failed Instagram posts sit marked “success”
  • ✓ 🧹 Memories, bonds and consent-linked identities can each be inspected or erased independently, and erasure takes operator notes with it
🛡 Publish Gate — planned_post #4127
✓Disclosure appended to descriptionpass
✓containsSyntheticMedia: truepass
✓Originality 0.38 vs nearest of 214 own postspass
✓C2PA signed · manifest verifiedpass
⚠Daily cap: 3 / 5 used for youtubewatch
✓Verifiable permalink recorded on publishpass
Approve & schedule Hold for review
$c2patool short_4127.mp4 --detailed
✓ validation: manifest store valid
claim generator · vtuber-agency-studio
assertion · c2pa.actions → created (aiGenerative)
asset hash matches · recipe schema generation-recipe-v1
$agency originality --post 4128
⚠ held · 0.94 similar to short_3902 (11 days ago)
not published · queued for a human opinion
Why bother: the backlash is aimed at undisclosed, interchangeable output — not at an openly synthetic character an audience actually has a relationship with. The batch renderer is the exposed half; the memory, persona, bond and diary systems are the defensible half.
Settings & Integrations

Everything
Configured in One Place

Hook up OBS, Stable Diffusion, Discord webhooks, PostgreSQL, and email reports — all from the Settings page.

  • ✓ OBS WebSocket host/port/password + test connection
  • ✓ Stable Diffusion URL (default: http://127.0.0.1:7860)
  • ✓ Discord webhook + invite link (added to all descriptions)
  • ✓ PostgreSQL connection URL with live test
  • ✓ Weekly analytics email via Resend, SMTP, or ProtonMail Bridge
  • ✓ ▶ Start / ■ Stop OBS stream from the browser
⚙ Settings
📹 OBS WebSocket
OBS Host
localhost
Port
4455
Test Connection ▶ Start Stream ■ Stop
📧 Weekly Analytics Email Report
Recipient Email(s)
Comma-separated for multiple addresses
Provider
Resend
🟣 Resend: paste your re_xxxx API key. Runs every Sunday at 9 AM UTC.
📬 Fire Test Email (real data)
🐘 PostgreSQL Database
New Database URL
postgresql://user:pass@host/db
Test Connection

Manage Your Whole Roster

Create and manage multiple VTuber profiles, each with their own platform credentials, Twitch bot, Discord persona, and per-VTuber analytics.

🐟 Add VTuber
Name
Kira
Handle
@kiraxvt
Profile Picture
PNG, JPG (optional)
Twitch Channel
nekobell
Twitch Bot Username
yourbotname
Notes (optional)
Cozy fox girl — specialty: ASMR + gaming
Add VTuber
Roster
🊊
Kira
@kiraxvt
● Active 📺 Twitch: nekobell 📝 Memo saved
Edit Delete
🌞
Yuki
@yukivt
● Active 📺 Twitch: yukisnow
Edit Delete
💬 Each VTuber gets their own Discord bot with unique Ollama persona. Posts daily life diaries 3× per day. Supports evil twin mode 😈

Built for Full Agencies

5 permission levels — Creator → Editor → Manager → Moderator → Admin — so your whole team can collaborate safely.

🎚
Creator
Studio, Singing, Reactions, Art, Thumbnails — create content and use AI tools
✂
Editor
Creator + edit & manage posts, subtitles, highlights, calendar
📋
Manager
Editor + Superchats dashboard, revenue reports, analytics exports
🛡
Moderator
Manager + Interactions inbox, community moderation tools
👑
Admin
Full access — users, CORS config, VTuber credentials, all Settings

Powered by the
Best Tools Available

A carefully chosen stack that prioritizes async performance, AI extensibility, and zero cloud lock-in.

⚡
FastAPI
Web Framework
🐘
PostgreSQL
Primary Database
🔎
Redis
Cache + Sessions
🎬
FFmpeg
Video Processing
🎙
Demucs
Vocal Separation
🧠
Ollama
Local LLM
🀖
OpenAI
AI Generation
🕷
Playwright
Headless Browser
📈
XGBoost
Virality ML
🌀
uvloop
Fast Event Loop
📅
APScheduler
Job Scheduling
🌡
Prometheus
Observability
🪪
c2patool
Content Credentials
👁
OpenCV
Motion Triggers
🗣
Whisper
Transcription
👀
MiniCPM-V
Vision Model
🏠
Godot
House Client
🖌
ComfyUI
Painted Rooms
🐱
Kokoro2D
Avatar Runtime

Ready to run your
VTuber Empire?

Self-hosted, wildly extensible, and held together by taste, telemetry, and a mildly concerning amount of FFmpeg. Your content. Your rules. Your tiny empire.