An AI co-host that
knows when not to talk

Most stream bots wait for a reason to speak. CohostCast looks for a reason to stay quiet โ€” then earns the mic when it actually has something worth saying.

The core idea

It's always writing. It's almost never talking.

Generating a response is the easy part โ€” every language model can do that. The hard part is deciding the moment doesn't need one. So CohostCast never replies on demand. It keeps a running queue of things it could say, and throws most of them away unheard.

Draft ahead

Candidate responses are written continuously in the background, before any chance to speak comes up โ€” so nothing is composed under time pressure.

Wait for an opening

Nothing is spoken until a genuine gap appears: an invitation, a direct address, or silence that has gone on long enough to be worth filling.

Score the options

Every candidate is ranked on relevance, novelty, guest presence, persona fit and how stale it's gone. Only the top one is ever eligible.

Usually, say nothing

If the best candidate doesn't clear the bar, none of them are spoken. Silence isn't a failure state here โ€” it's the default the rest has to beat.

What it does

Behaves like a broadcast professional, not a chatbot

Every feature exists to make it a better guest on your stream, not a louder one.

๐ŸŽ™๏ธ

Real turn-taking

Recognises when you're mid-thought, when a guest has the floor, and when a pause is deliberate rather than awkward. Interruption tolerance and response delay are both yours to tune.

๐Ÿ’ฌ

Chat informs, it doesn't command

Messages are classified by intent, sentiment, toxicity and who they're aimed at โ€” then used to shape what it knows. A hundred people spamming the same demand still won't make it speak.

๐Ÿค

Guest etiquette

Knows when guests are on mic and changes its manners accordingly: fewer interjections, no jokes during serious segments, questions only when you've allowed them.

๐Ÿง 

Memory that compounds

Holds the running bits of tonight's stream, remembers your regulars and preferences across months, and maps how your community relates to each other.

๐ŸŽญ

Persona and mood

Define voice, humour level, and the topics that are off the table. Its mood shifts with chat sentiment, your tone, and how long you've been live โ€” and you can swap personas mid-stream.

๐Ÿ”

Shows its work

Every decision is logged with its reasoning โ€” what it nearly said, why that line won, and why it held back the other forty. Tune it against evidence instead of vibes.

Discord plugin

Your co-host, where your guests already are

Most collabs happen in a Discord voice channel long before they hit the stream. CohostCast joins that channel as a participant โ€” and you steer it from the same place, without ever alt-tabbing away from your scene.

  • Sits in voice with everyone else. Guests who never leave Discord still get a co-host that hears them and answers them directly.
  • Same restraint, same rules. Turn-taking, guest etiquette and the scoring queue all apply in voice exactly as they do on stream.
  • Host controls in the channel. Mute it, swap its persona, dial its aggressiveness up or down, or kill a queued line โ€” from Discord, mid-conversation.
  • Delegate without handing over the keys. Give your mods the panic button and nothing else.
#stream-control
/cohost mute muted ยท 0.2s
/cohost persona late-night switched
/cohost energy low applied
/cohost queue 4 pending
/cohost drop 2 discarded
/cohost speak 1 spoken
Reaction mode ยท playback cursor
cursor 14:22
"that twist at the end" blocked ยท 38:10
"he already said that" allowed ยท 12:04
confidence 0.41 โ€” below bar
action stay silent

Reaction mode

Reaction streams, without the spoiler

One careless sentence can ruin a reaction video for everyone watching. CohostCast tracks how far into the video you actually are โ€” no timestamps, no manual scrubbing โ€” and refuses to talk about anything past that point.

  • Infers position from your commentary. It matches what you're saying against the video's transcript to keep a moving cursor on where you are.
  • Never runs ahead of the cursor. Anything from later in the video is rejected outright, however relevant it seems.
  • Unsure means quiet. When confidence drops it either says nothing or asks you where you are โ€” it doesn't guess.
  • Correct it any time. "Video just started", skip ahead, jump back โ€” one click or a hotkey re-anchors it.

Control & privacy

You always have the last word

It's your stream and your voice attached to it. Every automatic behaviour has a manual override, and manual input always wins.

๐Ÿ”‡

Panic mute

One control silences it instantly, mid-sentence, from the dashboard or from Discord. No confirmation dialog standing between you and quiet.

๐Ÿ‘๏ธ

See the queue

Watch what it's considering in real time. Approve a line, drop one you don't like, or hand it the floor deliberately when you want input.

๐ŸŽš๏ธ

It hears only what you hand it

You pick the audio sources โ€” typically just the mics. Desktop audio, music and alerts stay excluded by default, and an indicator shows when it's listening.

๐Ÿ 

Runs on your hardware

Self-hosted by default, with local model inference and local databases. Your streams, your audio, and your community's history stay on machines you own.

๐Ÿ”Œ

Plugs into OBS

Audio reaches it through a browser source using standard web APIs. No driver installs, no plugin builds, nothing extra running on your machine.

๐Ÿงฉ

Swap any piece

Models, storage engines and speech backends are independent containers. Change one without touching the rest.

Status: early development. The site is live; the product isn't shipping yet. YouTube first, with Twitch and Kick to follow.

Infrastructure online